HTTP头域列表与解释之request篇_第1页
HTTP头域列表与解释之request篇_第2页
HTTP头域列表与解释之request篇_第3页
HTTP头域列表与解释之request篇_第4页
HTTP头域列表与解释之request篇_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HTTP 头域列表与解释 之 request 篇HTTP 头域是 HTTP 协议中请求 (request) 和响应 (response) 中的头部信息 , 其实就是 HTTP 通信的操作参数, 告诉 web 服务器和浏览器怎样处理这个通信。 HTTP 头从一 个请求信息或者响应信息的第二行开始(第一行是请求行或 者响应行),以两个CR-LF字符组结束(CR :回车符,r, LF : 换行符 n )而每个 HTTP 头是字符串形式的,用冒号分割的 键值对,多个 HTTP 头之间用 CR-LF 字符组隔开。某些 http 头可以有注释,例如 user-agent,server,via 。 但这些注

2、释会被服务器或者浏览器忽略 IETF 组织已经将一 些核心的 HTTP 头定义在 RFC2616 规范中,这些 HTTP 头 是每个基于 HTTP 协议的软件必须实现的, 而其他一些更新 和扩展的头域也必须被基于 HTTP 的软件实现。当然,各个 软件也可以定义自己的头域。另一方面, RFC2616 规范中并没有限制每个 HTTP 头 的长度,或者限制 HTTP 头的数量,但出于性能和安全的考 虑,多数服务器都会自己作规定, 例如 apache2.3 就规定每 个 HTTP 头不能超过 8190 个字节,每个请求不能超过 100 个 HTTP 头。以下来看看发送一个请求 (request) 时

3、候,可能包含的各个 HTTP 头和它的解释。标准的请求头:Accept: 浏览器(或者其他基于 HTTP 的客户端程序) 可以接 收的内容类型( Content-types ) ,例如 Accept: text/plain Accept-Charset :浏览器能识别的字符集,例如 Accept-Charset: utf-8Accept-Encoding :浏览器可以处理的编码方式,注意这里 的编码方式有别于字符集,这里的编码方式通常指 gzip,deflate 等。例如 Accept-Encoding: gzip, deflate Accept-Language :浏览器接收的语言,其实也就

4、是用户在 什么语言地区,例如简体中文的就是 Accept-Language: zh-CNAccept-Datetime :(这个暂时没搞清楚什么意思)Authorization :在 HTTP 中,服务器可以对一些资源进行认 证保护,如果你要访问这些资源,就要提供用户名和密码, 这个用户名和密码就是在 Authorization 头中附带的, 格式是“username:password ” 字符串的base64 编码,例如:Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=中, basic 指使用 basic 认证方式,QWxhZGRpbjpvcG

5、VuIHNlc2FtZQ= 使用 base64 解码就是“ Aladdin:open sesame ”Cache-Control :这个指令在 request 和 response 中都有,用来指示缓存系统(服务器上的,或者浏览器上的)应该怎 样处理缓存,因为这个头域比较重要,特别是希望使用缓 存改善性能的时候,内容也较多,所以我想在下一篇博文中 主要介绍一下。Connection :告诉服务器这个user agent (通常就是浏览器) 想要使用怎样的连接方式。值有keep-alive 和close。httpl.1默认是 keep-alive 。 keep-alive 就是浏览器和服务器 的

6、通 信连接会被持续保存,不会马上关闭,而 close 就会在 response 后马上关闭。但这里要注意一点,我们说 HTTP 是无状态的,跟这个是否 keep-alive 没有关系,不要认为 keep-alive 是对 HTTP 无状态的特性的改进。Cookie :浏览器向服务器发送请求时发送 cookie ,或者服务 器向浏览器附加 cookie ,就是将 cookie 附近在这里的。例 如: Cookie:user=adminContent-Length :一个请求的请求体的内存长度,单位为字 节(byte)。请求体是指在 HTTP头结束后,两个 CR-LF字符 组之后的内容,常见的有

7、POST 提交的表单数据,这个 Content-Length 并不包含请求行和 HTTP 头的数据长度。Content-MD5 :使用 base64 进行了编码的请求体的 MD5 校 验和。例如: Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ= Content-Type :请求体中的内容的 mime 类型。通常只会用 在 POST 和 PUT 方法的请求中。例如: Content-Type: application/x-www-form-urlencodedDate :发送请求时的 GMT 时间。例如: Date: Tue, 15 Nov1994 08:12:31 G

8、MTExpect :指示需要使用服务器某些特殊的功能。 (这个我不 是很清楚)From :发送这个请求的用户的 email 地址。例如: From: Host :被服务器的域名或 IP 地址,如果不是通用端口,还 包含该端口号,例如: Host: If-Match: 通常用在使用 PUT 方法对服务器资源进行更新的 请求中,意思就是,询问服务器, 现在正在请求的资源的 tag 和这个 If-Match 的 tag 相不相同,如果相同,则证明服务器 上的这个资源还是旧的,现在可以被更新,如果不相同,则 证明该资源被更新过,现在就不用再更新了(否则有可能覆 盖掉其他人所做的更改) 。If-Modi

9、fied-Since :询问服务器现在正在请求的资源在某个 时间以来有没有被修改过,如果没有,服务器则返回 304 状 态来告诉浏览器使用浏览器自己本地的缓存,如果有修改过, 则返回 200 ,并发送新的资源(当然如果资源不存在,则返 回 404 。)If-None-Match :和 If-Modified-Since 用意差不多, 不过不是 根据时间来确定,而是根据一个叫 ETag 的东西来确定。关 于 etag 我想在下一篇博客介绍一下。If-Range :告诉服务器如果这个资源没有更改过 (根据 If-Range 后面给出的 Etag 判断 ),就发送这个资源中在浏览 器缺少了的某些部分

10、给浏览器,如果该资源以及被修改过, 则将整个资源重新发送一份给浏览器。If-Unmodified-Since :询问服务器现在正在请求的资源在某 个时刻以来是否没有被修改过。Max-Forwards :限制请求信息在代理服务器或网关中向前传 递的次数。Pragma :好像只有一个值,就是 :no-cache 。Pragma:no-cache 与 cache-control:no-cache 相同,只不过 cache-control:no-cache 是 http1.1 专门指定的,而 Pragma:no-cache 可以在 http1.0 和 1.1 中使用 Proxy-Authorizati

11、on :连接到某个代理时使用的身份认证信 息, 跟 Authorization 头差不多。 例如: Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=Range :在 HTTP 头中, Range 字眼都表示“资源的 byte 形式数据的顺序排列, 并且取其某一段数据”的意思。 Range 头就是表示请求资源的从某个数值到某个数值间的数据,例 如: Range: bytes=500-999 就是表示请求资源从 500 到 999byte 的数据。数据的分段下载和多线程下载就是利用这 个实现的。Referer :指当前请求的 URL 是在

12、什么地址引用的。例如在 页面中点击一个指向 的 超链接,那么,这个 的请求中的 Referer 就是 。通常我们见到的图片防盗链就是用 这个实现的。Upgrade :请求服务器更新至另外一个协议,例如:Upgrade:HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11User-Agent :通常就是用户的浏览器相关信息。例如:User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0Via :用来记录一个请求经过了哪些代理或网关才被送到目标 服务器上。例如一个请求从浏览

13、器出发(假设使用 http/1.0) ,发送给名为 SomeProxy 的内部代理,然后被转发至 的公共代理(使用 http/1.1 ),最后被转 发至目标服务器 ,那么在 中收到的 via 头应该是: :记录一些警告信息。通用但非标准的HTTP头(通常,非标准的头域都是用“X -开头,例如 x-powered-by ):X-Requested-With :主要是用来识别 ajax 请求,很多 javascript 框架会发送这个头域(值为 XMLHttpRequest )DNT:DO NOT TRACK 的缩写, 要求服务器程序不要跟踪记 录用户信息。 DNT: 1 ( 开启 DNT) DNT: 0 ( 关闭 DNT) 火狐, safari,IE9 都支持这个头域, 并且于 2011 年 3 月 7 日被提交 至 IETF 组织实现标准化X-Forwarded-For: 记录一个请求从客户端出发到目标服务器 过程中经历的代理,或者负载平衡设备的IP 。X-Forwarded-Proto :记录一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论