HTTP协议

什么是http

超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信。

用户通过客户端,如浏览器打开一个连接以发出请求,服务器端收到请求并发回响应。

http请求

http请求包括以下几个部分。

  1. 方法(GET/POST/PUT/PATCH/DELETE) 路径(包括查询参数但不包括锚点) 协议/版本
  2. Host:url
    User-Agent:curl/7.54.0
    Content-Type:application/x-www-form-urlencoded
    ....
  3. 一个换行
  4. 上传的数据(并不总是有)

可通过chrome浏览器查看相关信息。点击F12,找到Network,此时请求一个网页,就能看到相应的请求,点击一个请求,找到Request Headers,点击view source即可看到相应的http请求。


HTTP协议_第1张图片

http响应

  1. 协议/版本号 状态码 状态解释
  2. Accept-Ranges: bytes
    Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
    Connection: Keep-Alive
    Content-Length: 2381
    Content-Type: text/html
    ...
  3. 一个换行。
  4. 下载的内容。

依然可通过用chrome浏览器查看相关信息。方法同上,唯一不同的是要通过Response Headers查看相应信息。


HTTP协议_第2张图片

需要注意的是,Content-Type决定了第四部分的内容类型。
关于状态码的一些信息。

  • 2xx 表示成功响应。
  • 3xx 表示重定向。
  • 4xx 表示客户端错误。
  • 5xx 表示服务器错误。
    具体细节可查看 状态码

除了通过chrome查看,也可使用gitbash查看请求响应信息。在命令行输入curl -s -v -H "xxx:yyy" -- "http://www.baidu.com",即可查看返回的内容。

HTTP协议_第3张图片

使用POST方法curl -X POST -s -v -H "xxx:yyy" -- "https://www.baidu.com"

HTTP协议_第4张图片

使用POST方法并发送一些数据curl -X POST -d"123456xxxx" -s -v -H "xxx:yyy" -- "https://www.baidu.com"

HTTP协议_第5张图片

你可能感兴趣的:(HTTP协议)