http请求报文和响应报文之常见请求头及其作用

  • Post author:
  • Post category:其他




一、HTTP的Request/Response

先看

Request

消息(客户端发送)的结构, Request 消息分为3部分

第一部分叫请求行(Request line), 第二部分叫请求头(Request header),第三部分是报文主体(body). header和body之间有个空行。

请求行 = 请求方法 + 请求URI + HTTP版本号

在这里插入图片描述

再看

Response

消息(服务器端发送)的结构,Response消息分为3部分

第一部分叫状态行,第二部分叫响应头,第三部分是响应主体,header和body之间有个空行。

状态行 = HTTP版本号 + 状态码 + 原因短语

当使用的是

GET

方法的时候, body是为空的。

比如如下图

我们打开Fiddler 捕捉一个网页的Request 然后分析下它的结构, 在Inspectors tab下以

Raw

的方式可以看到完整的Request的消息

在这里插入图片描述



二、HTTP首部

一般有4种首部,分别是通用首部、请求首部、响应首部和实体首部。



1. 通用首部字段




Cache-Control

作用:


这个是非常重要的规则

,用于控制缓存的行为。 这个用来指定Response-Request遵循的

缓存机制

。各个指令含义如下


Cache-Control:max-age=10


强缓存,单位秒


Cache-Control:public

可以被任何对象所缓存(包括:发送请求的客户端,代理服务器,等等),即使是通常不可缓存的内容(例如,该响应没有max-age指令或Expires消息头)


Cache-Control:private


内容只缓存到私有缓存中


Cache-Control:no-cache


使用协商缓存,同 max-age=0


Cache-Control:no-store


直接禁止浏览器缓存数据,每次用户请求该资源,都会向服务器发送一个请求,每次都会下载完整的资源,可用于关闭缓存。




Connection

例如:

Connection:keep-alive

当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。

例如:

Connection: close

代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。




Date

作用: 生成消息的具体时间和日期

例如:Date: Sat, 11 Feb 2012 11:35:14 GMT




Pragma

作用:防止页面被缓存,在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一样

Pargma只有一个用法, 例如: Pragma: no-cache



版权声明:本文为Tracy_frog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。