17 - 03 - 24 图解HTTP(28)

#  If-Match  # 附带条件请求

 

形如 If-xxx  这种样式的请求首部字段,都可称为条件请求。服务器接收到附带条件的请求后,只有判断指定条件为真时,才会执行请求。

首部字段 If-Match,属附带条件之一,它会告知服务器匹配资源所用的实体标记(ETag)值。这时的服务器无法使用弱ETag值。(请参照本章有关首部字段 ETag的说明)服务器会比对If-Match的字段值和资源的 ETag值,仅当两者一致时,才会执行请求。反之,则返回状态码412 Precondition Failed的响应。还可以使用星号(*)指定 If-Match  的字段值。针对这种情况,服务器将会忽略ETag的值,只要资源存在就处理请求。

#  If-Modified-Since #


ex :  If-Modified-Since: Thu, 15 Apr 2004 00:00:00 GMT

解析:首部字段 If-Modified-Since,属附带条件之一,它会告知服务器若 If-Modified-Since字段值早于资源的更新时间,则希望能处理该请求。而在指定If-Modified-Since字段值的日期时间之后,如果请求的资源都没有过更新,则返回状态码

304 Not Modified的响应。If-Modified-Since用于确认代理或客户端拥有的本地资源的有效性。获取资源的更新日期时间,可通过确认首部字段Last-Modified来确定。

# If-None-Match #

=首部字段If-None-Match属于附带条件之一。它和首部字段 If-Match作用相反。用于指定If-None-Match字段值的实体标记(ETag)值与请求资源的ETag不一致时,它就告知服务器处理该请求。在GET或HEAD方法中使用首部字段 If-None-Match  可获取最新的资源。因此,这与使用首部字段 If-Modified-Since  时有些类似。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章