1,HTTP Header介绍
HTTP 请求中有Header,HTTP 响应中也有Header。使用 Fiddler的Raw选项卡可以看到完整的Header。
Header的语法格式是“key:value”,一行一个Header。每一个Header都有特殊的作用,在Fiddler 中可以查看完整的Header。
使用Fiddler 能很方便地查看HTTP 请求 Header。选中一个HTTP请求,单击 Inspectorstab -> Request tab->Headers,
2,Cache相关Header
HTTP请求和HTTP响应中有很多用于缓存的Header
HTTP 缓存是指当 Wcb 请求拒达缓存时。如果本地有“已缓存的”副本,就可以从本地存储设备而不是从原始服务器中提取这个文档。
3,Cookies
Cookie 是 种HTTP Header,是HTTP中非常重要的内容,它由 key-valwe 的形式组比如ip_country=CN。
测览器肥Cookie 通过 HTTP 请求中的“Cookie:header”发送给 Web 服务晋,Web 服各器通过HTTP 前应中的“Set-Cookie:header”把Cookie发送给浏览器。
4,Accept
Accept表示浏览器客户端可以接受的媒体类型。
例如。Accept:text/html代表浏览器可以接受服务器返区 html,也就是我们适常说的
html文档。通配符*代表任意类型 创如Accept:text/html,*/*.q=0.8 代表浏览器可以处理所有的类型。 一般浏览器客户端价 Web 服务器发送的都是这个。
5,Accept-Encoding
Accept-Encoding跟压缩有关,浏览器发送HTTP 请求给 Web 服务,HTTP 请求中的Header 有Accept-Encoding;gzip.deflate(告诉服务器,浏览器支持gzip 压缩)。
6,Accept-Language
Accep-L_=guage的作用是浏望器声明自己楼受的语言,
语言跟字符集的区别在于;中文是语言,中文有多种字符集,比如big5、gb2313、gbk等示例如下:Accept-Language:en-US,en;q=0.8.zh-CN;q=0.6q=0.4,zh-TW;q=0.2
7,User-Agent
User-Agent的作用是浏觉器用来告诉服务器,客户端使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
User-Agent:(Windows NT 10.0;wow64; rv:40.0) Gecko/20100101 Firefox/40.co Drer-kzontr
这个代表客户端用的是64位win10系统,Firefox是40.0版本。
假如用手机的APP访问网站,APP 中的 HTTP 请求会包含如下的
User-Agent:(Linux: D; Android 6.0:Redmi note 4 miui/ V8.5.2.0.
这个User-Agent表示客户端用的是红米 Note 4,Android 6.0版本。
如果我们想模拟各种不同的客户端,只需要修改User-Agent,就可以伪装成各种客户端。
8,实例:Fiddler修改 User-Agent,伪装客户端
Fiddler可以帮我们修改 User-Agent,这样就能伪装成任何客户端。操作步骤如下,
(1)启动 Fiddler,单击 Rules>User-Agents,选择iPhone6。
(2)打开浏览器,输入www.taobao.com,可以看到淘宝的页面变成了移动版的淘宝页面。
(3)在Fiddler中,我们可以查看 User-Agent 的值如下:
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4
9,Referer
HTTP协议头中的 Referer 主要用来让服务器判断来源页面,即用户是从哪个页面来的。
网站通常用其来统计用户来源,看用户是从搜索页面来的,还是从其他网站链接过来的,或是从书签等访问的,以便合理定位网站。
Referer有时也被用作防盗链,即下载时判断来源地址是不是在网站域名之内,否则就不能下载或显示。很多网站,如天涯就是通过 Referer 页面来判断用户是否能够下载图片的。
10,Connection
从HTTP/1.1起,系统默认都开启了 Connection:Kecp-Alive,保持连接特性。
HTTP协议是基于TCP协议的。当一个网页完全打开后,客户端和服务器之间用于传输 HTTP 数据的TCP连接不会关闭:如果客户端再次访问这个服务器上的网页,将会继续使用这一条已经建立的连接。
Kecp-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。
11,HOST
Host这个 Header 是必需的,它的作用是指定被请求的主机和端口号,它通常从HTTPURL中提取出来。
实例:我们在浏览器中输入https://www.cnblogs.com/tankxiao/,浏览器发送的 HTTP请求中就会包含Host 的Header,
例如Host:www.cnblogs.com。此处使用了默认端口80。如果指定了端口号,例如我们在浏览器中输入http://tankapi.vicp.io:15375/,则 Header变为Host:tankapi.vicp.io:15375.
12,Fiddler查看HTTP响应Header