刘俊的读书笔记

博客园 首页 联系 订阅 管理

CET:它用于获取 所需的资源,服务器一股将对应的资源置于响应的主体部分返回给客户端。 

HEAD:。从资源操作的语义来讲,一个针对某个目标资源发送的 HEAD请求—般不是为了获取目标资源本身的内容,而是希望得到描述资源的元数据信息。 服务器—般将对应资源的元数据置于响应的报头集合返回给客户端,所 以这样的响应—股不 具有主体部分。

0PTIONS:0PTIONS请 求—般是一种“ 探测 ″ 请求,其 目的在于确定针对某个目标地址的真实请求应该具有怎样的约束(比如应该采用怎样的HTTP方法或者必须携带怎样的自定义报头),然 后根据其约束发送符合条件的请求。比如针对“跨域资源″的预检(PreⅢ ght) 请求采用的HTTP方法就是0PTIONS。 

POST和、UT和PATCH:通过发送POsT和 PUT请求均可以添加一个新的资源,但是两者的不同之处在于:前者一般不能决定标识添加资源最终采用的URI,即服务端最终为成功添加的资源指定URI; 对于后者,最终标识添加资源的URI是可以由请求者控制的。也正是因为这个原因,如杲 发送PUT请求,我们—般直接将标识添加资源的URI作 为请求的URI。 对于POsT请求来 说,其 URI一般是标识添加资源存放容器的URI。 POsT和 PUT请求—股将所加资源的内容置于请求的主体。但是对于PUT请求来说 , 如果添加资源的内容完全可以由其URI来提供,这样的请求可以不需要主体部分.除了进行资源的添加,PUT请求还能用于资源的修改。 由于请求包含提交资源的标识 (可 以放在UR1中 ,也可以置于主体部分的资源内容中),所 以服务端能够定位到对应的资源并 予以修改。对于POsT和 PUT这两种HTTP方法,也存在一种—刀切的说法:POST用 于添 加,PUT用 于修改。我个人比较认可的是:如杲PUT提供的资源不存在,则做添加操作 , 否则做修改操作。对于发送PUT请求以修改某个存在的资源,服务器一般会通过提供资源将原有资源整体 “ 覆盖 ″ 掉。如果需要进行“局部”修改,我们推荐采用PATCH方法,因为从语义上讲 “ PATCH” 就是打补丁的意思。

DELETE:DELETE的 语义很明确,就是删除—个己经存在的资源。

关于HTTP请 求采用的这些方法,具有两个基本特性,即 “ 安全性 ”和 “ 幂等性 ” 。对 于上述7种 HTTP方法,CET、 HEAD和 0PTIONS均 被认为是安全的方法,因为它们旨在实现对数据的获取,并不具有“ 边界效应(sidc E丘 ct@)”。至于其他4个 HTTP方法,由 于 它们会导致服务端资源的变化,所以被认为是不安全的方法。

幂等性(1dcmpotent)是 一个数学上的概念,在这里表示发送—次和多次请求引起的边 界效应是—致的。 在网速不够快的情况下,客户端发送一个请求后不能立即得到响应,由 于 不能确定请求是否被咸功提交,所 以它有可能会再次发送另—个相同的请求。幂等性决定了第二个请求是否有效。 

上述3种安全的HTTP方 法(GET、 HEAD和 0PTIONS)均 被视为幂等方法。由于DELETE 和PATCH请求操作的是现有的某个资源,所 以它们都是幂等方法。对于PUT请求,只有在 对应资源不存在的情况下服务器才会进行添加操作,否 则只进行修改操作,所 以它也是幂等方法,至于POST,由于它总是进行添加操作,如 果服务器接收到两次相同的POST操作, 将导致两个相同的资源被创建,所 以这是一个非幂等的方法。 

posted on 2016-04-11 14:04  刘俊的读书笔记  阅读(205)  评论(0)    收藏  举报