详细,但是从HTTP 1.1方法规范中复制的,网址为http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
9.3获取
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”。如第14.35节所述,部分GET请求仅转移实体的一部分。部分GET方法旨在通过允许部分取回的实体完成而无需传输客户端已经拥有的数据来减少不必要的网络使用。
且仅当满足GET请求的响应符合第13节中描述的HTTP缓存要求时,该响应才可以缓存。
有关用于表格的安全性注意事项,请参见15.1.3节。
9.5开机自检
POST方法用于请求源服务器接受请求中包含的实体作为请求行中Request-URI标识的资源的新下属。POST旨在允许采用统一的方法来覆盖以下功能:
- Annotation of existing resources;
- Posting a message to a bulletin board, newsgroup, mailing list,
or similar group of articles;
- Providing a block of data, such as the result of submitting a
form, to a data-handling process;
- Extending a database through an append operation.
POST方法执行的实际功能由服务器确定,通常取决于Request-URI。发布的实体从属于该URI,其方式类似于文件从属于包含该实体的目录,新闻从属于其发布到的新闻组,或者记录从属于数据库。
POST方法执行的操作可能不会导致可以由URI标识的资源。在这种情况下,适当的响应状态是200(确定)或204(无内容),这取决于响应是否包括描述结果的实体。
如果在原始服务器上已经创建了资源,则响应应该为201(已创建),并包含一个描述请求状态并引用新资源的实体以及一个Location头(参见14.30节)。
除非响应包含适当的Cache-Control或Expires标头字段,否则对此方法的响应不可缓存。但是,303(请参阅其他)响应可用于指导用户代理检索可缓存的资源。
POST请求必须遵守第8.2节中规定的消息传输要求。
出于安全考虑,请参阅第15.1.3节。
9.6放置
PUT方法请求将封闭的实体存储在提供的Request-URI下。如果Request-URI引用了已经存在的资源,则应将封闭的实体视为原始服务器上的资源的修改版本。如果Request-URI没有指向现有资源,并且请求用户代理能够将该URI定义为新资源,则原始服务器可以使用该URI创建资源。如果创建了新资源,则原始服务器务必通过201(已创建)响应通知用户代理。如果修改了现有资源,则应发送200(确定)或204(无内容)响应代码以指示请求已成功完成。如果无法使用Request-URI创建或修改资源,应该给出反映问题性质的适当的错误响应。实体的接收者不得忽略其无法理解或实现的任何Content-*(例如Content-Range)标头,并且在这种情况下必须返回501(未实现)响应。
如果请求通过缓存,并且Request-URI标识一个或多个当前缓存的实体,则应将这些条目视为过期。此方法的响应不可缓存。
POST和PUT请求之间的根本区别体现在Request-URI的不同含义上。POST请求中的URI标识将处理封闭实体的资源。该资源可能是数据接受过程,通往某些其他协议的网关或接受注释的单独实体。相比之下,PUT请求中的URI标识请求中包含的实体-用户代理知道要使用的URI,并且服务器绝不能尝试将请求应用于其他资源。如果服务器希望将请求应用于其他URI,
它必须发送301(永久移动)响应;然后,用户代理可以自行决定是否重定向请求。
单个资源可以由许多不同的URI标识。例如,文章可能具有用于标识“当前版本”的URI,该URI与标识每个特定版本的URI分开。在这种情况下,对通用URI的PUT请求可能会导致原始服务器定义其他几个URI。
HTTP / 1.1并未定义PUT方法如何影响原始服务器的状态。
PUT请求必须遵守第8.2节中规定的消息传输要求。
除非为特定的实体头另有规定,否则PUT请求中的实体头应该应用于由PUT创建或修改的资源。
9.7删除
DELETE方法请求原始服务器删除由Request-URI标识的资源。在原始服务器上,人为干预(或其他方式)可能会覆盖此方法。即使从原始服务器返回的状态代码指示该操作已成功完成,也不能保证客户机已执行了该操作。但是,服务器不应指示成功,除非在给出响应时服务器打算删除资源或将其移动到无法访问的位置。
如果响应包含描述状态的实体,则成功响应应该为200(确定);如果尚未执行该操作,则为202(接受);如果已经执行该动作但响应不包括该响应,则返回204(无内容)。一个实体。
如果请求通过缓存,并且Request-URI标识一个或多个当前缓存的实体,则应将这些条目视为过期。此方法的响应不可缓存。