同步操作将从 infraboard/go-course 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本–HTTP 1.1
下图是HTTP协议格式:
HTTP的请求分为:请求行、请求头和请求体。
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体 |
HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容 |
DELETE | 请求服务器删除指定的页面 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名
protocol :// hostname[:port] / path / [?parameters]#fragment
比如: https://baijiahao.baidu.com/s?id=1603848351636567407&wfr=spider&for=pc
更多的请求头字段参考:HTTP响应头和请求头信息对照表
在整个报文中,请求头之后,隔一行空格,以下部分就是HTTP的请求体了。请求体是我们发送请求的时候需要传给接收端的内容。其格式需要和请求头中的Content-Type对应,不然会导致接受无法识别
HTTP的响应同样分为:响应行、响应头和响应体。和请求报文有点类似
响应行中包含了HTTP的版本和本次请求的状态,状态码见HTTP Status Code
响应头用于描述服务器的基本信息、数据的描述,这些信息将告知客户端如何处理响应头中的内容。
响应实体中包含的就是客户端从服务器中获取的数据了。数据的格式和长度都会在响应体中描述
基于标准库写个简单的http 接口服务
package main
import (
"fmt"
"net/http"
)
func IndexHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "hello, world")
}
func main() {
http.HandleFunc("/", IndexHandler)
http.ListenAndServe(":8080", nil)
}
启动后使用telent来进行验证
$telnet localhost 8080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
HOST:localhost
HTTP/1.1 200 OK
Date: Sun, 29 Aug 2021 05:58:49 GMT
Content-Length: 13
Content-Type: text/plain; charset=utf-8
hello, world
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。