HTTP 头参考
HTTP 请求和 HTTP 响应都使用头发送有关 HTTP 消息的信息。头由一系列行组成,每行都包含名称,然后依次是冒号、空格、值。字段可按任何顺序排列。某些头字段既能用于请求头也能用于响应头,而另一些头字段只能用于其中之一。
许多请求头字段都允许客户端在值部分指定多个可接受的选项,有时甚至可以对这些选项的首选项进行排名。多个项以逗号分隔。例如,客户端可以发送包含“Content-Encoding: gzip, compress,”的请求头,表示可以接受各种压缩类型。如果服务器的响应正文使用 gzip 编码,其响应头中将包含“Content-Encoding: gzip”
有些字段可以在单个头中出现多次。例如,头可以有多个“Warning”字段。
下表列出了 HTTP 1.1 头字段。注意:有些头字段是 MIME 字段。MIME 字段在 Internet Engineering Task Force (IETF) 文档 RFC 2045 中进行了定义,但也可用于 HTTP 1.1 协议。有关 MIME HTTP 1.1 规范的详细信息,请参阅 IEIF 页。
一般头字段
一般头字段可用于请求消息和响应消息。
名称
示例值
Cache-Control
"max-age=10"
Connection
"close"
Date
"Tue, 11 Jul 2000 18:23:51 GMT"
Pragma
"no-cache"
Trailer
"Date"
Transfer-Encoding
"chunked"
Upgrade
"SHTTP/1.3"
Via
"HTTP/1.1 Proxy1, HTTP/1.1 Proxy2"
Warning
"112 Disconnected Operation"
请求头字段
请求头字段仅用于请求消息。
名称
示例值
Accept
"text/html, image/*"
Accept-Charset
"iso8859-5"
Accept-Encoding
"gzip, compress"
Accept-Language
"en, fr"
Authorization
[credentials]
Content-Encoding
"gzip"
Expect
"100-continue"
From
"user@microsoft"
Host
"www.microsoft"
If-Match
"entity_tag001"
If-Modified-Since
"Tue, 11 Jul 2000 18:23:51 GMT"
If-None-Match
"entity_tag001"
If-Range
"entity_tag001" or "Tue, 11 Jul 2000 18:23:51 GMT"
If-Unmodified-Since
"Tue, 11 Jul 2000 18:23:51 GMT"
Max-Forwards
"3"
Proxy-Authorization
[credentials]
Range
"bytes=100-599"
Referer
"www.microsoft/resources.asp"
TE
"trailers"
User-Agent
"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"
响应头字段
响应头字段仅用于响应消息。
名称
示例值
Accept-Ranges
"none"
Age
"2147483648(2^31)"
ETag
"b38b9-17dd-367c5dcd"
Last-Modified
"Tue, 11 Jul 2000 18:23:51 GMT"
Location
"localhost/redirecttarget.asp"
Proxy-Authenticate
[challenge]
Retry-After
"Tue, 11 Jul 2000 18:23:51 GMT" or "60"
Server
"Microsoft-IIS/5.0"
Vary
"Date"
WWW-Authenticate
[challenge]
实体头字段
实体头字段可以用于请求消息或响应消息。实体头字段中包含消息实体正文的有关信息,如使用的编码格式。
名称
示例值
Allow
"GET, HEAD"
Content-Encoding
"gzip"
Content-Language
"en"
Content-Length
"8445"
Content-Location
"localhost/page.asp"
Content-MD5
[md5-digest]
Content-Range
"bytes 2543-4532/7898"
Content-Type
"text/html"
Expires
"Tue, 11 Jul 2000 18:23:51 GMT"
Last-Modified
"Tue, 11 Jul 2000 18:23:51 GMT"
请求头示例
以下是 HTTP 请求的简单示例。
GET /articles/news/today.asp HTTP/1.1
Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: localhost
Referer: localhost/links.asp
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Accept-Encoding: gzip, deflate
该请求具有请求行,其中包括方法 (GET)、资源路径 (/articles/news/today.asp) HTTP 版本 (HTTP/1.1)。由于该请求没有正文,故所有请求行后面的内容都是头的一部分。紧接
着头之后是一个空行,表示头已结束。
响应头示例
Web 服务器可以通过多种方式响应前一个请求。假设文件是可以访问的,并且用户具有查看该文件的权限,则响应类似于:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Length: 2291
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ; path=/
Cache-control: private
<HTML>
<BODY>
...
响应的第一行称为状态行。它包含响应所用的 HTTP 版本、状态编码 (200) 和原因短语。示例中包含一个头,其中具有五个字段,接着是一个空行(回车和换行符),然后是响应正文的头两行。
HTTP请求头概述
  HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content- Length除外。对于POST请求来说Content-Length必须出现。
 下面是一些最常见的请求头

   Accept:浏览器可接受的MIME类型。


   Accept-Charset:浏览器可接受的字符集。

   Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzipServlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少510倍的下载时间。

   Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。

   Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。

   Connection:表示是否需要持久连接。如果Servlet看到这里的值为"Keep-Alive",或者看到请求使用的是HTTP 1.1 HTTP 1.1默认进行持久连接),它就可以利用持久连接的
优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入 ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。

   web浏览器在哪里打开Content-Length:表示请求消息正文的长度。

   Cookie:这是最重要的请求头信息之一

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

   Host:初始URL中的主机和端口。

   If-Modified-Since:只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304"Not Modified"应答。


   Pragma:指定"no-cache"值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。

   Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

   User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。

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

  有关HTTP头完整、详细的说明,请参见/Protocols/的HTTP规范。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。