`
lizheng30781546
  • 浏览: 4000 次
文章分类
社区版块
存档分类
最新评论

RFC2616中文版(6)响应 (Response)

 
阅读更多

原文:http://www.verydemo.com/demo_c113_i1724.html

6 响应 (Response)
接收和翻译一个请求消息后,服务器发出一个HTTP响应消息。

     response   =Status-Line                           ;6.1节

           *(( general-header)                           ; 4.5节

                       | response-header     ;6.2节

                       | entity-header)CRLF)   ;7.1节

                      CRLF

                      [ message-body ]        ;7.2节

6.1 状态行 (Status-Line)
响应消息的第一行是状态行(stauts-Line),由协议版本以及数字状态码和相关的文本短语组成,各部分间用空格符隔开,除了最后的回车或换行外,中间不允许有回车换行.

   Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

6.1.1状态码与原因短语 (Status Code and Reason Phrase)
状态码是试图理解和满足请求的三位数字的整数码,这些码的完整定义在第十章。原因短语(Reason-Phrase)是为了给出的关于状态码的文本描述。状态码用于控制条件,而原因短语(Reason-Phrase)是让用户便于阅读。客户端不需要检查和显示原因短语。

状态码的第一位数字定义响应类型。后两位数字没有任何分类角色。第一位数字有五种值:

-1xx: 报告的         - 接收到请求,继续进程.

-2xx 成功           - 步骤成功接收,被理解,并被接受

-3xx 重发           - 为了完成请求,必须采取进一步措施.

-4xx 客户端出错     - 请求包括错的顺序或不能完成.

-5xx 服务器出错     - 服务器无法完成显然有效的请求.

下面列举了为HTTP/1.1定义的态码值,和对应的原因短语(Reason-Phrase)的例子。原因短语在这里例举只是建议性的----它们也许被一个局部的等价体代替而不会影响此协议的语义。

 Status-Code =

        "100" ; 10.1.1节: 继续    

           |"101"   ; 10.1.2节: 转换协议     

           |"200"   ; 10.2.1节: OK

      |"201"   ; 10.2.2节:   创建         

        |"202"   ; 10.2.3节:   接受         

     |"203"   ; 10.2.4节: 非权威信息   

        |"204"   ;   10.2.5节: 无内容       

        |"205"   ;   10.2.6节: 重置内容      

        |"206"   ;   10.2.7节: 局部内容      

        |"300"   ;   10.3.1节: 多样选择      

        |"301"   ;   10.3.2节: 永久移动      

       |"302"   ;   10.3.3节: 创建          

        |"303"   ;   10.3.4节: 观察别的部分          

        |"304"   ;   10.3.5节: 只读                  

        |"305"   ;   10.3.6节: 用户代理              

        |"307"   ;   10.3.8节   临时重发              

       |"400"   ;   10.4.1节: 坏请求                

        |"401"   ;   10.4.2节: 未授权的              

      |"402"   ;   10.4.3节: 必要的支付            

      |"403"   ;   10.4.4节: 禁用                  

      |"404"   ;   10.4.5节: 没找到                 

      |"405"   ;   10.4.6节: 不允许的方式          

      |"406"   ;   10.4.7节: 不接受                 

      |"407"   ;   10.4.8节: 需要代理验证

      |"408"   ;   10.4.9节: 请求超时              

      |"409"   ;   10.4.10节; 冲突                  

      |"410"   ;   10.4.11节: 停止                  

      |"411"   ;   10.4.12节: 需要的长度            

....................................................................

      |"413"   ;   10.4.14节: 请求实体太大      

      |"414"   ;   10.4.15节; 请求-URI太大      

      |"415"   ;   10.4.16节: 不支持的媒体类型   

      |"416"   ; 10.4.17节: 请求的范围不满足  

      |"417"   ;   10.4.18节: 期望失败           

      |"500"   ;   10.5.1节:   服务器内部错误       

      |"501"   ;   10.5.2节:   不能实现             

      |"502"   ;   10.5.3节:   坏网关               

      |"503"   ;   10.5.4节:   服务不能实现         

      |"504"   ;   10.5.5节:   网关超时             

      |"505"   ;   10.5.6节:   HTTP版本不支持  

      |扩展码   

extension-code =3DIGIT

Reason-Phrase = *<TEXT,excluding CR,LF>

HTTP状态码是可扩展的。HTTP应用程序不需要理解所有已注册状态码的含义,尽管那样的理解显而易见是很合算的。但是,应用程序必须了解由第一 位数字指定的状态码的类型,任何未被识别的响应应被看作是该类型的x00状态,有一个例外就是未被识别的响应不能缓存。例如,如果客户端收到一个未被识别 的状态码431,则可以安全的假定请求有错,并且它会对待此响应就像它接收了一个状态码是400的响应。在这种情况下,用户代理(user agent)应当把实体和响应一起提交给用户,因为实体很可能包括人可读的关于解释不正常状态的信息。

6.2响应头域 (Response Header Fields)
响应头域允许服务器传送响应的附加信息,这些信息不能放在状态行(Status-Line)里.。这些头域给出有关服务器的信息以及请求URI(Request-URI)指定的资源的更进一步的访问。

   response-header = Accept-Ranges          ; 14.5节

                   |Age         ; 14.6节

                   |Etag            ; 14.19节

                   |Location          ; 14.30节

                   |Proxy-Autenticate     ; 14.33节

                   |Retry-After     ; 14.37节

                   |Server      ; 14.38节

                   |Vary        ; 14.44节

                   |WWW-Authenticate ; 14.47节

响应头域的名字能依赖于协议版本的变化而扩展。然而,新的或者实验性的头域可能会给于响应头域的语义如果通信的成员都能识别他们并把他们看作响应头域。不被识别的头域被看作实体头域。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics