前端时间写了一些爬虫程序,经常用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是对应的支持成都,个人理解的,
参照http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4。*表示所有编码方式
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
分享到:
相关推荐
JavaWeb开发技术-HTTP响应消息HTTP响应头 JavaWeb开发技术中,HTTP响应消息头是服务器向客户端发送的响应消息的重要组成部分。HTTP响应消息头是指在响应状态行之后的多行文本,它们是由头字段名称和值构成的,每个...
当我们谈论HTTP响应时,其中的一个关键头部字段就是"Content-Length",它在本次分享的"HTTP响应头首部Content-Length - 南洋前端 - SegmentFault 思否.pdf"文档中得到了详细阐述。这篇文档深入解析了这个首部字段的...
本主题将深入探讨HTTP通信中的消息头与响应头,以及如何通过它们来控制浏览器行为。我们将以一个简单的示例项目"HttpTest"为背景,分析相关知识点。 一、HTTP消息头与响应头 1. HTTP消息结构:HTTP请求由三部分...
在本章节中我们将具体来介绍HTTP响应头信息。 应答头 说明 Allow 服务器支持哪些请求方法(如GET、POST等)。 Content-Encoding 文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头...
最全的HTTP Responses Header 响应头!最全的HTTP Responses Header 响应头!
HTTP响应头则是由服务器向客户端发送的元信息,用于描述响应的状态和内容。以下是一些常见的HTTP响应头: 1. **Location**: 当响应状态码是重定向(如301或302)时,该头指定新的位置URL。 2. **Server**: 描述了...
HTTP响应头则是服务器返回给客户端的元信息,包括状态码、服务器信息、缓存策略等。以下是一些常见的响应头: 1. **Status-Line**: 包括HTTP版本、状态码(如200表示成功,404表示未找到,500表示服务器内部错误)...
HTTP 请求和响应头字段详解 HTTP 请求头字段是指在 HTTP 请求中,客户端发送给服务器的头信息,用于告诉服务器客户端的需求和限制。下面是常见的 HTTP 请求头字段: 1. Accept: 指定客户端能够接收的内容类型,...
这种攻击允许攻击者在HTTP响应头中插入额外的字段,例如恶意的Cookie或HTTP头,可能导致会话劫持、跨站脚本(XSS)攻击、重定向到恶意站点等后果。本文将深入探讨CRLF注入的原理、常见应用场景以及如何防范。 **...
二、HTTP响应头 1. Status-Line:由HTTP版本号、状态码和原因短语组成,如"HTTP/1.1 200 OK",其中200表示请求成功。 2. Server:服务器用来标识其软件名称和版本。 3. Content-Type:告知客户端响应体的数据类型...
以下是一些常见的HTTP响应头: 1. Accept-Ranges: 服务器是否接受范围请求,如bytes表示接受。 2. Age: 缓存资源的存活时间,以秒计。 3. Cache-Control: 控制缓存行为,如public、private、max-age。 4. ...
其中,`CURLOPT_HEADER`选项用于指定是否同时获取HTTP响应头。如果设置为`true`,libcurl会在回调函数中将头信息和主体数据一起传递。回调函数可以设置为`CURLOPT_WRITEFUNCTION`,接收的数据类型为`void *ptr`,...
HTTP响应头是服务器返回给客户端的信息,用于提供关于响应的附加信息。 1. **Accept-Ranges**: 表明服务器是否支持指定范围的请求及支持的分段请求类型。例如,`Accept-Ranges: bytes`表示支持字节范围请求。 2. *...
本文将深入解析HTTP状态码的生成原理,以及请求头和响应头中的常见字段。 首先,HTTP状态码是服务器对客户端请求的反馈,分为五类:1xx(信息性状态码)、2xx(成功状态码)、3xx(重定向状态码)、4xx(客户端错误...
当 Squid 处理客户端的 HTTP 请求时,它会考虑源服务器返回的响应头中的 "Vary" 字段来决定如何缓存和提供内容。"Vary" 头用于指示代理服务器或缓存如何处理不同客户端请求的响应,特别是与内容编码相关的请求。 1....
详细的http响应代码解释,包括http响应头,请求头的内容,里面的参数详细的意思介绍
首先,我们需要了解HTTP响应头中的日期信息通常是以`Date`字段的形式存在的,它表示服务器发送响应的时间。此外,还可能存在`Last-Modified`或`Expires`等字段,它们分别表示资源最后修改的时间和资源过期时间。 ...
本文将详细探讨如何设置HTTP响应头以及在编程过程中可能遇到的一些陷阱。 首先,设置HTTP响应头的关键在于`WriteHeader`方法的调用时机。`ResponseWriter`的`WriteHeader`方法用于设置HTTP状态码,例如`200 OK`、`...
X-Content-Type-Options 是一种 HTTP 响应头,用于防止 MIME 嗅探攻击。攻击者可以通过嗅探浏览器的 MIME 类型来 inject 恶意代码。通过添加 add_header 'Referrer-Policy' 'origin'; 可以解决这个问题。 2. 错误...