加速blog:HTTP Header
本文隶属加速blog系列
HTTP请求和相应Header
一个经典的HTTP连接是,读者通过浏览器(下称为浏览器端),向服务器(下称为服务器端)申请浏览某网页,通过发送请求Header的方式。服务器端接受到浏览器端的请求后,生成用户需要的文件,发回响应Header。大致示意图为
比如浏览阅微堂首页时,浏览器端向服务器端发送的请求Header如下:
| Host | zhiqiang.org | 请求的域名 |
| User-Agent | Mozilla/5.0... | 浏览器端浏览器型号和版本 |
| Accept | text/xml,application/xml ... | 可接受的内容类型 |
| Accept-Language | zh-cn,zh;q=0.5 | 语言 |
| Accept-Encoding | gzip,deflate | 可接受的压缩类型 |
| Accept-Charset | UTF-8,* | 可接受的内容编码 |
| Cookie | user=someone | 浏览器端的用户COOKIE |
| If-Modified-Since | Wed, 14 Nov 2007 02:01:00 GMT | 浏览器端的缓存的最后修改时间 |
| If-None-Match | "2a541d-5b45-efde6f00" | 浏览器端的缓存文件地标识符 |
而服务器端的响应Header大致为:
| Date | Wed, 14 Nov 2007 05:11:47 | 服务器端时间 |
| Server | Apache/2.2.6 | 服务器端的服务器软件 |
| Last-Modified | Wed, 14 Nov 2007 01:38:50 | 最后修改时间 |
| Etag | "39457e-6234-a0983e80" | 文件标识符 |
| Content-Encoding | gzip | 传送启用了GZIP压缩 |
| Content-Length | 8562 | 内容长度 |
| Content-Type | text/html | 内容类型 |
至此,一个HTTP请求结束。浏览器端接收到页面内容后,如果页面响应header的类型是text/html,表明这是一个网页,浏览器把它以网页的形式显示出来。在显示的过程中,有可能又引用新的页面内容(比如css, javascript, flash, 图片等),浏览器又会向服务器端发送新的请求。直至页面完全载入完毕为止。
如何察看页面的请求和响应Header?
由于请求和响应header里包含了相当多信息(以后我们将多次遇到它),特别是响应Headers,我们应该时刻留意它们。这些信息无法直接获取,需要依靠第三方工具。
Firefox下的firebug
Firefox安装firebug插件后,可以很方便的查看每个文档的响应信息,而且firebug的功能不限于如此,它是调试网页的必备之物。初识Firebug 全文 — firebug的使用有更详细的介绍和上手教程。
IE下的Fiddler2
IE下的对应工具是fiddler2,就察看Header来说是足够了,事实上它能监控IE所产生的一些流量信息。官方说可以用来做IE下的debug,不过我没发现。这里有一个关于fiddler2的介绍(中文)。
志强兄弟开始讲解http协议了.
這裡也有相關的文章;給您參考
http://rd-program.blogspot.com/2008/06/fiddler2-decrypt-ssl-packets.html
http://rd-program.blogspot.com/2008/06/fiddler2decrypt-captured-ssl-packets.html
IE下用HttpWatch也可以