• 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中提取出来。
  • 相关阅读:
    Linux内核学习笔记七——内核同步机制和实现方式
    Linux内核学习笔记五——中断推后处理机制
    Linux内核学习笔记十——虚拟文件系统概念
    Android中LocalSocket使用
    Linux下常见命令
    Linux内核学习笔记八——定时器和时间管理
    Linux内核学习笔记九——内核内存管理方式
    [Android]Android的常用adb命令
    Linux内核学习笔记六——并发和同步概念
    Linux内核学习笔记十一——I/O层和I/O调度机制
  • 原文地址:https://www.cnblogs.com/vaster/p/9355416.html
Copyright © 2020-2023  润新知