`
workman93
  • 浏览: 57951 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP协议(RFC2616)方法定义

    博客分类:
  • web
阅读更多

 OPTIONS

OPTIONS 方法表示在由 Request-URI 标识的请求/响应链上关于有效通迅选项信息的请
求。该方法允许客户端判断与某个资源相关的选项和/或需求或者服务器的能力,而不需要
采用资源行为或发起资源获取。
 
    该方法的响应不能缓存。
 
    如果OPTIONS请求包括实体(如由 Content-Length或 Transfer-Encoding的存在表示),
这时媒体类型必须通过 Content-Type 域表示。尽管本规范没有定义该实体的用法,将来的
HTTP 扩展可能使用 OPTIONS 消息体来更详细地查询服务器的信息。服务器不支持该扩展
可以丢弃该请求消息体。
 
    如果 Request-URI 是星号(“*”),OPTIONS 请求通常试图应用于服务器而不是特定的
资源。由于服务器的通迅选项一般由资源决定,所以“*”请求只作为“ping”或“no-op”
类型的方法有用;它没有任何作用,除了允许客户端测试服务器的能力。例如,可用来测试
HTTP/1.1 代理的一致性(或缺少因素)。
 
    如果 Request-URI不是星号,OPTIONS请求只应用于与该资源通迅时的有效选项。
 
     200 响应应该包括任何头部域来表示服务器实现和可应用到该资源的可选特性(如
Allow),可能包括该规范没有定义的扩展。如果有响应消息体,则应该还包括通迅选项的信
息。本规范没有定义该消息体的格式,但可能在将来扩展 HTTP时定义。内容协商可用于选
择适当的响应格式。如果不包括响应消息体,则响应必须包括域值为“0”的 Content-Length
域。
 
     Max-Forwards 请求头部域可能用于请求链中定位特定代理。当代理收到关于允许请求
转发的absoluteURI的OPTIONS请求时, 代理必须检查Max-Forwards域。 如果Max-Forwards
域值为0(“0” ),则代理不能转发该消息;取而代之,代理应该以它自己的通迅选项来响应。
如果 Max-Forwards 域值是大于 0 的整数,代理在转发该请求时必须将域值减一。如果请求
中不存在 Max-Forwards域,则转发的请求中不能包括Max-Forwards域。

GET

    GET 方法即获取由 Request-URI 标识的任何信息(以实体的形式)。如果 Request-URI
引用某个数据处理过程,则应该以它产生的数据作为在响应中的实体,而不是该过程的源代
码文本,除非该过程碰巧输出该文本。

    如果请求消息包括 If-Modified-Since、If-Unmodified-Since、If-Match、If-None-Match或
者If-Range头部域,则GET方法的语义变为“条件GET”。条件 GET方法请求只传输在条
件头部域描述情形下的实体。条件 GET 方法试图通过允许刷新缓存的实体而不需要多次请
求或传输客户端已经拥有的数据来减少非必要的网络使用。 
    如果请求消息包括 Range头部域,则 GET方法的语义变为“局部 GET”。局部 GET请
求只需传输实体的某部分。

HEAD

    除了服务器不能在响应中返回消息体,HEAD 方法与 GET 相同。HEAD 请求的响应中
的 HTTP 头部中包含的元信息应该与 GET 请求发送的响应中的信息相同。该方法可用来获
取请求暗示实体的元信息, 而不需要传输实体本身。 该方法常用来测试超文本链接的有效性、
可用性和最近的修改。
 
    当响应中包含的信息可用于更新先前从该资源缓存的实体时, HEAD 请求的响应可能是
可缓冲的。如果新的域值表明该缓冲的实体与当前实体不同(如可通过 Content-Length、
Content-MD5、ETag或Last-Modified的区别来表示),这时缓冲服务器必须将该缓存实体作
为过期的。

POST

     POST 方法用来请求原始服务器接受请求中封装的实体作为从属于请求行中的
Request-URI标识的副属。POST设计允许完成下列功能的统一方法:
 
     * 注解存在资源;
     * 上传消息到论坛、新闻组或相似的讨论组;
     * 向数据处理过程提供数据块,如递交表单的结果;
     * 通过追加操作来扩展数据库。
 
     POST 方法执行的实际功能由服务器决定,且通常取决于 Request-URI。上传的实体从
属于该URI,通过文件从属于包含它的目录,新的论文从属于它上传的新闻组,或记录从属
于数据库的方式。
 
     POST 方法执行的行为可能不导致通过 URI 能够标识的某个资源。在这种情况下,200
(OK)或 204(No Content)都是适合的响应状态。这取决于描述结果的响应是否包括实体。 
 
    如果原始服务器创建了资源,响应应该是 201(Created),且包含描述请求状态的实体,

和新资源的引用,和Location头部。

 
    该方法的响应不能缓存,除非响应包括适当的Cache-Control或 Expires头部域。然而,
303(See Other)响应能够用来引导用户代理获取可缓存的资源。

PUT

     PUT方法请求以提供的Request-URI存储封装的实体。如果 Request-URI引用已经存在
的资源,该封装实体应该被认作原始服务器存储的修改版本。如果 Request-URI没有指向已
存在的资源, 且该URI可以被请求的用户代理定义为新的资源, 则原始服务器可以用该 URI
创建资源。如果创建了新的资源,则原始服务器必须通过 201(Created)响应提示用户代理。
如果修改了已存在的资源,则应该发送200(OK)或 204(No Content)响应代码来表示成
功完成了请求。如果不能按 Request-URI创建或修改资源,则应该给出适当的错误响应以反
映出问题的性质。实体的接受方不能乎略任何不理解或没有实现的 Content-*(如
Content-Range)头部,在这种情况下必须返回 501(Not Implemented)响应。
 
    如果请求通过缓冲服务器且Request-URI标识出一个或多个缓冲的实体,则应该认为这
些实体过期了。该方法的响应不可缓存。
 
     POST和PUT请求间的基本区别反映在 Request-URI的不同意义。POST请求中 URI标
识的资源将处理封装的实体。该资源可能是数据接收过程、其它协议的网关或接受注解的独
立实体。与此对应,PUT请求中的URI标识请求封装的实体——用户代理知道该 URI是目
标且服务器不能试图将该请求应用到其它资源上。 如果服务器希望该请求应用到不同的 URI
上,则它必须发送301(Moved Permanently)请求;这时客户代理可以自己决定是否要重定
向该请求。
 
    可以用许多不同的 URI 标识同个资源。例如,一篇文章可以有标识为“当前版本”的
URI,它独立于标识每个特别版本的 URI。在这种情况下,使用通用 URI 的 PUT 请求可能
造成原始服务器定义的一些不同URI的结果。
 
     HTTP/1.1 没有定义PUT方法如何影响原始服务器的状态。 
 
    除了其它特殊实体头部的规定,PUT 请求中的实体头部应该应用到 PUT 创建或修改的
资源上。

DELETE

     DELETE 方法请求原始服务器删除Request-URI 标识的资源。原始服务器可在人为干涉

下(或其它意思)屏闭该方法。客户端不能确保该操作已经提交,即使原始服务器发出的状
态码表明动作已经成功完成也如此。然而,在给出响应的时候,服务器不应该表示成功,除
非它试图删除该资源或将它移动到不可访问的位置。
 
    如果响应包含描述状态的实体,成功响应应该是200(OK)。如果动作没有实施,则是
202(Accepted)。如果动作已经实施但响应不包含实体,则是 204(No Content)。
 
    如果请求通过缓冲服务器,且Request-URI标识一个或多个当前缓存的实体,则应该认
为这些实体已经过期。该方法的响应不可缓存。

TRACE

     TRACE 方法用于引起远程的,该请求消息的应用层回射。请求的最终接收者应该反射
200(OK)响应,并以该消息作为客户端回收消息的实体。最终接收者是原始服务器或第一
个收到请求中的Max-Forwards值为0(0)的代理或网关。TRACE 请求不能
包括实体。
 
     TRACE 允许客户端看见请求链上的另一端收到了什么,然后使用该数据作为测试或诊
断信息。Via 头部域的值有特殊作用,将它作为请求链路径。使用Max-Forwards
头部域允许客户端限制请求链的长度,这对于测试无限循环转发消息的代理链非常有用。
 
    如请求有效,则响应应该在实体中包含整个请求消息,设置 Content-Type 为
“message/http” 。该方法的响应不能缓存。

CONNECT

    规范保留 CONNECT 方法名。该方法用于代理,使之能够动态切换隧道(例如 SSL
隧道)。

 

分享到:
评论

相关推荐

    http协议rfc2616中英文双版

    HTTP(Hypertext Transfer Protocol)...总之,HTTP协议RFC2616是理解Web工作原理的基础,它定义了一套标准,使得Web服务能够高效、可靠地运行。无论是开发Web应用,还是进行网络编程,对RFC2616的理解都是至关重要的。

    HTTP协议详解及RFC2616(HTTP)中文版

    HTTP协议详解和RFC2616中文版的文档是理解HTTP协议的关键资源。通过深入学习,开发者可以更好地掌握Web通信的原理,从而编写出更高效、更可靠的网络应用。无论是开发Web服务器、前端应用还是后端接口,对HTTP协议的...

    rfc2616 http协议中文

    《深入解析RFC2616 HTTP/1.1协议》 一、引言与目的 RFC2616,即Request for Comments 2616,由R. Fielding、J. Gettys、J.C. Mogul、H. Frystyk、L. Masinter、P. Leach和T. Berners-Lee等人共同撰写,于1999年6月...

    http 协议英文文档 rfc2616

    综上所述,RFC2616详尽地定义了HTTP/1.1协议的各个方面,为网络通信提供了基础规范,确保了Web应用的正常运行和互操作性。理解和掌握这些知识点对于开发Web应用、进行网络调试或优化HTTP通信都至关重要。

    Ftp协议:RFC959和HTTP协议:RFC2616

    FTP协议的规范定义在IETF(Internet Engineering Task Force)的RFC959文档中,而HTTP协议的规范则在RFC2616文档中详细阐述。 FTP协议: FTP是一种用于在网络上进行文件传输的应用层协议,最初设计用于在主机之间...

    HTTP协议(RFC2616)中文版

    RFC2616是HTTP/1.1版本的规范文档,该文档定义了HTTP协议的规则、请求方法、状态码、消息头等核心概念。 HTTP协议是一种无状态协议,意味着每次HTTP请求都是独立的,服务器不会记住客户端的任何信息。这种设计简化...

    HTTP协议中英文_RFC2616&RFC1945

    本压缩包包含的文件详细阐述了HTTP的两个主要版本:HTTP/1.0(RFC1945)和HTTP/1.1(RFC2616),以及它们的中文翻译版,对于理解HTTP协议的工作原理至关重要。 首先,让我们深入了解一下HTTP/1.0(RFC1945)。这个...

    中文HTTP1.1协议-RFC2616

    HTTP1.1协议,正式定义在RFC2616文档中,是互联网上应用最广泛的一种网络协议,用于客户端和服务器之间的通信。该协议在1999年由互联网工程任务组(IETF)发布,是对早期HTTP/1.0版本的升级,旨在解决一些性能和功能...

    HTTP协议(RFC2616)中文版电子书.rar

    RFC2616详细定义了这些方法的行为和用法。 2. URL与URI:统一资源定位符(URL)是资源在网络上的唯一标识,而更通用的概念是统一资源标识符(URI),包括URL和其他形式的资源标识。 3. 请求行与响应状态码:每个...

    RFC2616中文版

    - **定义**:超文本传输协议(HyperText Transfer Protocol,简称HTTP)是一种应用层协议,用于从Web服务器传输超文本到本地浏览器的传输协议。它是一种基于请求/响应模型的无状态协议,主要用于在分布式、协作式...

    rfc2616 中文翻译完全版本

    在互联网技术领域,HTTP(超文本传输协议)是Web应用的基础,而RFC2616文档则是定义HTTP/1.1协议标准的重要文献。本文旨在通过对《rfc2616中文翻译完全版本》的分析,揭示HTTP/1.1协议的关键概念、架构与运作机制,...

    HTTP1.1协议RFC2616中文版

    ### HTTP1.1协议(RFC2616)中文版知识点总结 #### 1. 引言 **1.1 目的** 超文本传输协议(HyperText Transfer Protocol, HTTP)是一个面向应用层的标准协议,旨在支持分布式、协作式、超媒体信息系统。HTTP自1990...

Global site tag (gtag.js) - Google Analytics