HTTP请求头

 HTTP请求Header http://www.javashuo.com/article/p-fnytfdxp-e.htmlhtml

Header 解释 示例
Accept 指定客户端可以接收的内容类型 Accept:text/plain,text/html
Accept-Charset 浏览器能够接受的字符编码集。 Accept-Charset:iso-8859-5
Accept-Encoding 指定浏览器能够支持的web服务器返回内容压缩编码类型。 Accept-Encoding:compress,gzip
Accept-Language 浏览器可接受的语言 Accept-Language:en,zh
Accept-Ranges 能够请求网页实体的一个或者多个子范围字段 Accept-Ranges:bytes
Authorization HTTP受权的受权证书 Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 指定请求和响应遵循的缓存机制 Cache-Control:no-cache
Connection 表示是否须要持久链接。(HTTP 1.1默认进行持久链接) Connection:close
Cookie HTTP请求发送时,会把保存在该请求域名下的全部cookie值一块儿发送给web服务器。 Cookie:$Version=1;Skin=new;
Content-Length 请求的内容长度 Content-Length:348
Content-Type 请求的与实体对应的MIME信息 Content-Type:application/x-www-form-urlencoded
Date 请求发送的日期和时间 Date:Tue,15 Nov 2010 08:12:31 GMT
Expect 请求的特定的服务器行为 Expect:100-continue
From 发出请求的用户的Email From:user@email.com
Host 指定请求的服务器的域名和端口号 Host:www.zcmhi.com
If-Match 只有请求内容与实体相匹配才有效 If-Match:“737060cd8c284d8af7ad3082f209582d”
If-Modified-Since 若是请求的部分在指定时间以后被修改则请求成功,未被修改则返回304代码 If-Modified-Since:Sat,29 Oct 2010 19:43:31 GMT
If-None-Match 若是内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变 If-None-Match:“737060cd8c284d8af7ad3082f209582d”
If-Range 若是实体未改变,服务器发送客户端丢失的部分,不然发送整个实体。参数也为Etag If-Range:“737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since 只在实体在指定时间以后未被修改才请求成功 If-Unmodified-Since:Sat,29 Oct 2010 19:43:31 GMT
Max-Forwards 限制信息经过代理和网关传送的时间 Max-Forwards:10
Pragma 用来包含实现特定的指令 Pragma:no-cache
Proxy-Authorization 链接到代理的受权证书 Proxy-Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range 只请求实体的一部分,指定范围 Range:bytes=500-999
Referer 先前网页的地址,当前请求网页紧随其后,即来路 Referer:http:
TE 客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息 TE:trailers,deflate;q=0.5
Upgrade 向服务器指定某种传输协议以便服务器进行转换(若是支持) Upgrade:HTTP/2.0,SHTTP/1.3,IRC/6.9,RTA/x11
User-Agent User-Agent的内容包含发出请求的用户信息 User-Agent:Mozilla/5.0(Linux;X11)
Via 通知中间网关或代理服务器地址,通讯协议 Via:1.0 fred,1.1 nowhere.com(Apache/1.1)
Warning 关于消息实体的警告信息 Warn:199 Miscellaneous warning
 
详解:

Accept:浏览器端能够接受的MIME类型。例如:Accept: text/html 表明浏览器能够接受服务器回发的类型为 text/html 也就是咱们常说的html文档,若是服务器没法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)。通配符 * 表明任意类型,例如 Accept: */* 表明浏览器能够处理全部类型,(通常浏览器发给服务器都是发这个)。web

Accept-Encoding:浏览器申明本身可接收的编码方法,一般指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate);Servlet可以向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这能够减小5到10倍的下载时间。例如: Accept-Encoding: gzip, deflate。若是请求消息中没有设置这个域,服务器假定客户端对各类内容编码均可以接受。浏览器

Accept-Language:浏览器申明本身接收的语言。语言跟字符集的区别:中文是语言,中文有多种字符集,好比big5,gb2312,gbk等等;例如:Accept-Language: en-us。若是请求消息中没有设置这个报头域,服务器假定客户端对各类语言均可以接受。缓存

Accept-Charset:浏览器可接受的字符集。若是在请求消息中没有设置这个域,缺省表示任何字符集均可以接受。服务器

User-Agent:告诉HTTP服务器,客户端使用的操做系统和浏览器的名称和版本。
例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)。cookie

Content-Type:例如:Content-Type: application/x-www-form-urlencoded。app

Referer:包含一个URL,用户从该URL表明的页面出发访问当前请求的页面。提供了Request的上下文信息的服务器,告诉服务器我是从哪一个连接过来的,好比从我主页上连接到一个朋友那里,他的服务器就可以从HTTP Referer中统计出天天有多少用户点击我主页上的连接访问他的网站。
例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wTide

Connection:
例如:Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP链接不会关闭,若是客户端再次访问这个服务器上的网页,会继续使用这一条已经创建的链接。HTTP 1.1默认进行持久链接。利用持久链接的优势,当页面包含多个元素时(例如Applet,图片),显著地减小下载所须要的时间。要实现这一点,Servlet须要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,而后在正式写出内容以前计算它的大小。
Connection: close 表明一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP链接会关闭,当客户端再次发送Request,须要从新创建TCP链接。网站

Host:(发送请求时,该头域是必需的)主要用于指定被请求资源的Internet主机和端口号,它一般从HTTP URL中提取出来的。HTTP/1.1请求必须包含主机头域,不然系统会以400状态码返回。
例如: 咱们在浏览器中输入:http://www.guet.edu.cn/index.html,浏览器发送的请求消息中,就会包含Host请求头域:Host:http://www.guet.edu.cn,此处使用缺省端口号80,若指定了端口号,则变成:Host:指定端口号。google

Cookie:最重要的请求头之一, 将cookie的值发送给HTTP服务器。

Content-Length:表示请求消息正文的长度。例如:Content-Length: 38。

Authorization:受权信息,一般出如今对服务器发送的WWW-Authenticate头的应答中。主要用于证实客户端有权查看某个资源。当浏览器访问一个页面时,若是收到服务器的响应代码为401(未受权),能够发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。

UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操做系统和CPU类型。

From:请求发送者的email地址,由一些特殊的Web客户程序使用,浏览器不会用到它。

Range:能够请求实体的一个或者多个子范围。例如,表示头500个字节:bytes=0-499表示第二个500字节:bytes=500-999表示最后500个字节:bytes=-500表示500字节之后的范围:bytes=500-第一个和最后一个字节:bytes=0-0,-1同时指定几个范围:bytes=500-600,601-999可是服务器能够忽略此请求头,若是无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200(OK)。

相关文章
相关标签/搜索