HTTP请求报文和响应报文

时间:2022-04-18 18:50:12

HTTP请求报文

HTTP请求报文和响应报文

GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: BAIDUID=4082549DEE5E64678FC46642E185D98C:

请求行:

  由3部分组成,分别为:请求方法、URL、协议版本,之间由空格分隔。例如,GET /index.html HTTP/1.1。

请求头部:

  Host:接受请求的服务器地址,可以是IP:端口号,也可以是域名

  Connection:指定与连接相关的属性,如Connection:Keep-Alive

  User-Agent:发起请求的应用程序名称

  Accept:它们为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据。例子中接收html,xhtml,xml等数据。

  Accept-Encoding:通知服务端可以发送的数据压缩格式

  Accept-Language:通知服务端可以发送的语言

  Cookie:Cookie信息,客户端用它向服务器传送一个令牌——它并不是真正的安全首部,但确实隐含了安全功能

  请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文

请求正文:

  可选部分,比如GET请求就没有请求正文。

  POST方法将请求参数封装在HTTP请求正文中,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

HTTP响应报文

HTTP请求报文和响应报文

HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Tue, 20 Nov 2018 03:10:19 GMT
Expires: Tue, 20 Nov 2018 03:10:29 GMT
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Content-Length: 277
Last-Modified: Mon, 13 Jun 2016 02:50:03 GMT
Connection: Keep-Alive
ETag: "575e1f5b-115"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Accept-Ranges: bytes

状态行:

  HTTP/1.1 200 OK

响应头部:

  Server:服务器应用程序软件的名称和版本

  Date:服务器产生响应的日期

  Content-Type:响应正文的类型,例子中响应实体的主体是一个html文本。

  Content-Length:所传送实体主体的长度或大小,例子中响应实体的主体包含了277字节的数据

  Last-Modified:资源的最后修改日期时间

  Connection:连接方式,close或keep-alive

  ETag:资源的匹配信息

  Cache-Control:控制缓存的行为

  Pragma:报文指令

  Accept-Ranges:是否接受字节范围请求