blogw/index.php/20937/viewspace-3418 HTTP头字段包括4类: general-header ; request-header ; response-header ; entity-header . ************************************************* ...
 
  blogw/index.php/20937/viewspace-3418
HTTP头字段包括4类:
general-header ;
request-header ;
response-header ;
entity-header .

*******************************************************************************
General Header Fields
=============================
general headerrequestresponse都可用的 但是不能用于entity.

-- Cache-Control
-- Connection
-- Date
-- Pragma
-- Trailer
-- Transfer-Encoding
-- Upgrade
-- Via
-- Warning

*******************************************************************************
Request Header Fields
======================

request-header fields 答应客户端传递关于request和客户端的附加信息到服务端,

-- Accept
-- Accept-Charset
-- Accept-Encoding
-- Accept-Language
-- Authorization
-- Expect
-- From
-- Host
-- If-Match
-- If-Modified-Since
-- If-None-Match
-- If-Range
-- If-Unmodified-Since
-- Max-Forwards
-- Proxy-Authorization
-- Range
-- Referer
-- TE
-- User-Agent

*******************************************************************************
Response Header Fields
===============================

response-header fields 允许服务端传递关于response的、不能放到Status-Line的附加信息。
这些头给出关于服务端的信息。
-- Accept-Ranges
-- Age
-- ETag
-- Location
-- Proxy-Authenticate
-- Retry-After
-- Server
-- Vary
-- WWW-Authenticate

*******************************************************************************
Entity Header Fields
========================

Entity-header fields 定义关于entity-bodymetainformation(标题字段数据)
假如当前没有body 则定义被request确定的资源信息.
一些metainformation是可选的; 一些是必须的。

-- Allow
-- Content-Encoding
-- Content-Language
-- Content-Length
-- Content-Location
-- Content-MD5
-- Content-Range
-- Content-Type
-- Expires
-- Last-Modified
-- extension-header


【转自】www.x5dj/userforum/00100239/00305167.shtml

一、基础
HTTPHyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参 RFC2616HTTP协议采用了哀求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以 及可能的实体内容。
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和 可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的, 域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,
  使用至少一个空格或制表符。 1、通用头域 通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-ControlConnectionDatePragmaTransfer- EncodingUpgradeVia。对通用头域的扩展要求通讯双方都 ...
 
  使用至少一个空格或制表符。
1、通用头域
通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-ControlConnectionDatePragmaTransfer- EncodingUpgradeVia。对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。下面简朴 引见几个在UPnP消息中使用的通用头域。
Cache-Control头域
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存 处理过程。请求时的缓存指令包括no-cacheno- storemax-agemax-stalemin-freshonly-if-cached,响应消息中的指令包
public privateno-cacheno-storeno-transformmust-revalidateproxy-revalidate max-age。各个消息中的指令含义如下:
Public指示响应可被任何缓存区缓存。
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
Date头域
Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon31Dec200104:25:57GMTDate描述的时间表示世界标准时,换算成本地时间,
需要知道用户所在的时区。
Pragma头域
Pragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同。
2、请求消息
请求消息的第一行为下面的格式:
Method SP Request-URI SP HTTP-Version CRLF
Method表示对于Request-URI完成的方法,这个字段是大小写敏感的,包括OPTIONSGETHEADPOSTPUT DELETETRACE。方法GETHEAD应该被一切的通用WEB服务器支持,其他一切方法的实现是可选的。GET方法取回由Request- URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请 求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件组和数据库发送消息。
SP表示空格。
Request-URI遵循URI格式,在此字段为星号(*)时,说明请求并不用于某个特定的资源地
址,而是用于服务器本身。
HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1
CRLF表示换行回车符。
请求头域允许客户端向服务器传递关于请求或者关于客户机的附加信息。请求头域可能包含下列字段AcceptAccept-Charset Accept- EncodingAccept-LanguageAuthorizationFromHostIf-Modified-SinceIf- MatchIf-None-MatchIf-RangeIf-RangeIf-Unmodified-SinceMax-Forwards Proxy-AuthorizationRangeRefererUser-Agent。对请求头域的扩展要求通讯双方都支持,如果存在不支持的请 求头域,一般将会作为实体头域处理。
典型的请求消息:
GETclass/download.microtool.de:
Host:download.microtool.de
  Accept:*/* Pragma:no-cache Cache-Control:no-cache Referer:class/download.microtool.de/ User-Agent:Mozilla/4.04[en](Win95;I;Nav) Range:bytes=554554- 上例第一行表示HTTP客户端(可能是浏览器、 ...
 
 
Accept:*/*
Pragma:no-cache
Cache-Control:no-cache
php headerReferer:class/download.microtool.de/
User-Agent:Mozilla/4.04[en](Win95;I;Nav)
Range:bytes=554554-
上例第一行表示HTTP客户端(可能是浏览器下载程序)通过GET方法获得指定URL下的文件。棕的部分表示请求头域的信息,绿的部分表示通用头部分。
Host头域
Host头域指定请求资源的Intenet主机和端口号,必须表示请求url的原始服务器或网关的位置。HTTP/1.1请求必须包含主机头域,否则系统会以400状态码返回。
Referer头域
Referer头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、优化cache等。他也允许废除的或错误的连接 于维护的目的被追踪。如果请求的
uri没有自己的uri地址,Referer不能被发送。如果指定的是部分uri地址,则此地址应该是一个相对地址。
Range头域
Range头域可以请求实体的一个或者多个子范围。例如,
表示头500个字节:bytes=0-499
表示第二个500字节:bytes=500-999
表示最后500个字节:bytes=-500
表示500字节以后的范围:bytes=500-
第一个和最后一个字节:bytes=0-0-1
同时指定几个范围:bytes=500-600601-999
但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206PartialContent)返回而不是以200OK)。
User-Agent头域
User-Agent头域的内容包含发出请求的用户信息。
3、响应消息
响应消息的第一行为下面的格式:
HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1
Status-Code是一个三个数字的结果代码。
Reason-PhraseStatus-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,Reason-Phrase 主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。第一个数字可能取5个不同的值:
1xx:信息响应类,表示接收到请求并且继承处理
2xx:处理成功响应类,表示动作被成功接收、理解和接受
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能准确执行
5xx:服务端错误,服务器不能正确执行一个正确的请求
响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age LocationProxy-AuthenticatePublicRetry-AfterServerVaryWarningWWW- Authenticate。对响应头域的扩展要求通讯双
方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理。
典型的响应消息:
HTTP/1.0200OK
Date:Mon31Dec200104:25:57GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html
Last-modified:Tue17Apr200106:46:28GMT
Etag:"a030f020ac7c01:1e9f"
Content-length:39725426
Content-range:bytes554554-40279979/40279980
上例第一行表示HTTP服务端响应一个GET方法。棕的部分表示响应头域的信息,绿的部分表示通用头部分,红的部分表示实体头域的信息。
Location响应头
Location响应头用于重定向接收者到一个新URI地址。
Server响应头
Server响应头包含处理请求的原始服务器的

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