fiddler请求报文的headers属性详解

fiddler请求报文的headers属性详解

headers的属性包含以下几部分。

(1)Cache头域

在Cache头域中,通常会出现以下属性。

1. Cache-Control

用来指定Response-Request遵循的缓存机制。各个指令如下含义。

  • Cache-Control:Public:可以被任何缓存所缓存。
  • Cache-Control:Private:指示响应信息的全部或部分用于单个用户,而不能用一个共享缓存来缓存。这可以让源服务器指示,响应的特定部分只用于一个用户,而对其他用户的请求则是一个不可靠的响应。
  • Cache-Control:no-cache:所有的内容都不会被缓存,请求头里的no-cache表示浏览器不想读缓存,并不是说没有缓存。一般在浏览器按Ctrl+F5键强制刷新时,请求头里也会有这个no-cache,也就是跳过强缓存和协商缓存阶段,直接请求服务器。
  • Cache-Control:max-age=0:指示客户端愿意接收其绝对时间不大于指定的时间,以秒计。如果直接按F5键的话,请求头是max-age=0,只跳过强缓存,但进行协商缓存。

2. If-Modified-Since

  • 把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么会返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。
    本地文件的修改时间和服务器上的文件时间修改时间一致,说明文件没有被更新。HTTP服务器返回304,告诉客户端使用本地缓存文件

3. If-None-Match

  • If-None-Match和ETag一起工作,工作原理是在HTTPresponse中添加ETag信息。当用户再次请求该资源时,将在HTTP request中假如 If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),将返回200状态和新的资源和ETag。使用这样的机制将提高网站的性能
    ** If-None-Match和ETag的值一致,说明文件没有被更新。服务器将返回304,告诉客户端使用本地缓存文件**

4. Pragma

  • 防止页面被缓存,在HTTP/1.1版本中,它和Cache-Control:no-cache的作用一模一样。
    Prama只有一个用法,例如,Pragma:no-cache。

(2)Client头域

1. Accept

浏览器端可以接收的媒体类型。

  • Accept: text/html
    代表浏览器可以接收服务器发回的类型为text/html也就是我们常说的HTML文档,如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)。

  • Accept: */ *
    通配符 * 代表任意类型。代表浏览器可以处理所有类型

  • Accept-Encoding
    浏览器声明自己接收的语言。语言跟字符集的区别是:中文是语言,中文有多种字符集,如何big5、gb2312、gbk等

2. User-Agent

  • 告诉HTTP服务器客户端使用的操作系统和浏览器的名称和版本。我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名字和版本、你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到的这些信息。User-Agent请求报头域允许客户端将它的操作系统、浏览器和其他属性告诉服务器。

3. Accept-Charset

  • 浏览器声明自己接收的字符集,如gb2312、utg-8等。

(3) Cookie头域

  • Cookie
    最重要的header,将Cookie的值发送给HTTP服务器。

(4) Miscellaneous头域

  • Referer
  • 提供了request的上下文信息的服务器,告诉服务器我是从哪个链接过来的。有些统计数据需要用到此头域。比如从我的主页上链接到统计服务器那里,该服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

(5) Entity头域

1. Content-Length

  • 发送给HTTP服务器数据的长度。

2. Content-Type

  • 表示具体请求中的媒体类型信息。
    常见的媒体格式类型如下。
  • text/html: HTML格式
  • text/plain: 纯文本格式
  • text/xml: XML格式
  • image/gif: gif图片格式
  • image/jpeg: jpg图片格式
  • image/png: png图片格式
    以application开头的媒体格式类型如下
  • application/xhtml+xml: XHTML格式
  • application/xml: XML数据格式
  • application/atom+xml: Atom XML聚合格式
  • application/json: JSON数据格式
  • application/pdf: pdf格式
  • application/msword: Word文档格式
  • application/octet-stream: 二进制流数据
  • application/x-www-form-urlencoded: <form encType="">中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)。

3. multipart/form-data

  • 另外一种常见的媒体格式是上传文件之时使用的。
  • 需要在表单中进行文件上传时,就需要使用该格式。

(6)Tranport头域

Connection

  • Connection: keep-alive: 当一个网页打开完成后,客户端和服务器之间用户传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。
  • Connection: close: 代表一个request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送request时,需要重新建立TCP连接。
    Host(发送请求时,该报头域是必须的)
  • 请求报头域主要用于指定被请求资源的Internet主机和端口号。它通常从HTTP URL中提取出来。
posted @ 2018-07-23 16:34  Vaster  阅读(5250)  评论(0编辑  收藏  举报