Http 响应头

前端时间写了一些爬虫程序,经常用chrome看提交的参数什么的,今天周五有点闲,详细看看请求头和响应头都提交了什么参数,顺便温故了下cookies和session来龙去脉,下面是自己收集的各参数的含义:
有的博客说响应头分几个域,什么通用域,请求,响应,Date头域等等……,个人感觉记这些和分类没多大意义,你看见Cache-Control:max-age=0知道什么含义,这才是最根本的,如下:
1、Cache-Control
key:
Cache-Control,表示设置遵循的缓存机制,具体看出现在请求,还是响应中,分别对应请求和响应的设置,我发现好多参数都会出现在不同域的,所以记域的分类没什么用
value:
max-age:百度的设置就是=0.如果>0直接从游览器缓存中 max-age<=0 时 向server 发送http 请求确认 ,该资源是否有修改 有的话 返回200 ,无的话 返回304
o-cache — 强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息
ps:以上只查了写常用的value,同时也是可以加public 和private关键字限定的,具体详细没去查
写到这里还是觉得乱乱的,估计写完还是乱。下面上例子
一、下面是12306首页的响应头

Request URL:http://www.12306.cn/mormhweb/
Request Method:GET
Status Code:304 Not Modified

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:UTF-8,*;q=0.5
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:www.12306.cn
If-Modified-Since:Wed, 06 Mar 2013 09:28:32 GMT
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31

Response Headers
HTTP/1.0 304 Not Modified
Date: Thu, 11 Apr 2013 13:47:54 GMT
Content-Type: text/html
Last-Modified: Wed, 06 Mar 2013 09:28:32 GMT
Age: 62752
X-Cache: HIT from cache.51cdn.com
X-Via: 1.0 wzpy218:9080 (Cdn Cache Server V2.0)
Connection: keep-alive

Request Headers 参数讲解
开始3行很好理解,这里304是重定向了.我访问的页面是12306.cn的
Accept 浏览器端可以接受的媒体类型,如 Accept: */* 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)
Accept-Charset:UTF-8,*;q=0.5表示编码方式。后面的q=0.5是对应的支持成都,个人理解的,[url]参照http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4[/url]。*表示所有编码方式
Accept-Encoding:
作用: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是只字符编码);
例如: Accept-Encoding: gzip, deflate
还有一个例子上没有的:
Accept-Charset
作用:浏览器申明自己接收的字符集,这就是本文前面介绍的各种字符集和字符编码,如gb2312,utf-8(通常我们说Charset包括了相应的字符编码方案);
Accept-Language 作用: 浏览器申明自己接收的语言。 语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等;例如: Accept-Language: en-us
If-Modified-Since
作用: 把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中.可以拿百度页面做测试,chrome F12打开,观察network工作情况,刷新页面,查看一些图片文件,查看If-Modified-Since:Mon, 04 Feb 2013 09:53:34 GMT,再次刷新,你会发现是304的跳转
Referer:表示来源页面,比如百度搜索的结果进去发出的请求都会有Referer:http://www.baidu.com/,apache的access日志应该就是记录的这个
二、Response Headers
HTTP/1.0 304 Not Modified http 1.0协议,重定向
Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date: Thu, 11 Apr 2013 13:47:54 GMT,这种情况会走本地文件,提示: 如果你不想使用本地缓存可以用Ctrl+F5 强制刷新页面
Age:当代理服务器用自己缓存的实体去响应请求时,用该头部表明该实体从产生到现在经过多长时间了,就是缓存文件生成多久了,那看下62752s 换算成天是多久,哦应该是不到1天
Connection: keep-alive 和请求参数对应的,请求是希望保持链接,所以响应也保持链接。但是有一点是,这个是http 1.0协议,在1.1中默认就是keep-alive的,所以1.1中这么设置就无意义了
X-Cache:没查到,目测是命中的负载均衡机器地址
X-Via也没查到……

就写这些吧,其实还有好多参数
刚才看了下http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 这里觉得好多东西不记录下来下次忘记了都没地方找。
1、url结构:http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff

Schema: http
host: www.mywebsite.com
path: /sj/test/test.aspx
Query String: name=sviergn&x=true
Anchor: stuff (页面锚)

2、当请求是302重定向后,Response Headers 中有location,浏览器自动访问location的url,比如输入 google.com会自动跳转到google.com.hk
3、HTTP协议是无状态的,为了解决这个问题, Web程序引入了Cookie机制来维护状态
参考博客:http://blog.chinaunix.net/uid-20546486-id-3288946.html
http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值