例:
GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
\r\n
body
例:
HTTP/1.1 200 OK
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Wed, 10 Apr 2019 07:37:31 GMT
Expires: Wed, 10 Apr 2019 07:37:31 GMT
Server: BWS/1.1
Strict-Transport-Security: max-age=172800
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
\r\n
body
示例:
Cache-Control: private, max-age=0, no-cache
Pragma: no-cache:Pragma 是 HTTP/1.1 之前版本的历史遗留字段,仅作为与 HTTP/1.0的向后兼容而定义。所以与Cache-Control:no-cache一起使用来保持兼容性。
Connection 首部字段具备如下两个作用:
(1)管理长连接
Connection: Keep-Alive
(2)使用升级协议,常与Upgrade首部一起使用
Upgrade:websocket
Connection:Upgrade
Accept 首部字段可通知服务器,用户代理能够处理的媒体类型及媒体
类型的相对优先级
示例:
Accept: text/html,application/xhtml+xml,application/xml;q=0.4
若想要给显示的媒体类型增加优先级,则使用 q= 来额外表示权重值1,用分号(;)进行分隔。权重值 q 的范围是 0~1(可精确到小数点后 3 位),且 1 为最大值。不指定权重 q 值时,默认权重为 q=1.0。
用来通知服务器用户代理支持的字符集及字符集的相对优先顺序。另外,可一次性指定多种字符集
示例:
Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码。
示例:
Accept-Encoding: gzip, deflate
用来告知服务器用户代理能够处理的自然语言集
Accept-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3
首部字段 Host 会告知服务器,请求的资源所处的互联网主机名和端口号。Host 首部字段在 HTTP/1.1 规范内是唯一一个必须被包含在请求内的首部字段。首部字段 Host 和以单台服务器分配多个域名的虚拟主机的工作机制有很密切的关联,这是首部字段 Host 必须存在的意义。
Host: www.baidu.com
从哪个WEB页面发起的请求
Referer: http://www.hackr.jp/index.htm
将浏览器信息传送给服务器
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
Cookie: status=enable
源服务器在多久前创建了响应。字段值的单位为秒。
Age: 600
告知客户端实体标识。它是一种可将资源以字符串形式做唯一性标识的方式。
ETag: "82e22293907ce725faf67773957acd12"
重定向url
Location: http://www.usagidesign.jp/sample.html
Web服务器信息
Server: Apache/2.2.17 (Unix)
多久之后再次发送请求。主要配合状态码 503 Service Unavailable 响应,或 3xx Redirect 响应一起使用。
Retry-After: 120
expires 属性:当省略 expires 属性时,其有效期仅限于维持浏览器会话(Session)时间段内。这通常限于浏览器应用程序被关闭之前。
HttpOnly 属性:Cookie 的 HttpOnly 属性是 Cookie 的扩展功能,它使 JavaScript 脚本无法获得 Cookie。其主要目的为防止跨站脚本攻击(Cross-sitescripting,XSS)对 Cookie 的信息窃取。
支持的HTTP方法
Allow: GET, HEAD
Content-Encoding
Content-Language
Content-Length
Content-Location
Content-MD5
Content-Type
将资源失效的日期
Expires: Wed, 04 Jul 2012 08:26:05 GMT
资源最后修改时间
Last-Modified: Wed, 23 May 2012 09:59:55 GMT
200(OK):请求被正常处理
204(No Content):请求被受理但没有资源可以返回。该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。
206(Partial Content):客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301(Moved Permanently):永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
302(Found):临时重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问。
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400(Bad Request):请求报文语法有误,服务器无法识别
401(Unauthorized):请求需要认证
403(Forbidden):请求的对应资源禁止被访问
404(Not Found):服务器无法找到对应资源
500(Internal Server Error):服务器内部错误
503(Service Unavailable):服务器正忙