17 - 03 - 25 圖解HTTP(29)

# If-None-Match #

 

只有在If-None-Match的字段值與ETag值不一致時,可處理該請求。與 If-Match首部字段的作用相反。

=首部字段If-None-Match屬於附帶條件之一。它和首部字段 If-Match作用相反。

用於指定If-None-Match字段值的實體標記(ETag)值與請求資源的ETag不一致時,它就告知服務器處理該請求。

在GET或HEAD方法中使用首部字段 If-None-Match  可獲取最新的資源。

因此,這與使用首部字段 If-Modified-Since  時有些類似。

# If-Range #


首部字段If-Range屬於附帶條件之一。

它告知服務器若指定的 If-Range字段值(ETag值或者時間)和請求資源的ETag值或時間相一致時,則作爲範圍請求處理。

反之,則返回全體資源。

如果不使用首部字段if-Range則需要進行兩次處理。

下面我們思考一下不使用首部字段 If-Range  發送請求的情況。服務器端的資源如果更新,

那客戶端持有資源中的一部分也會隨之無效,當然,範圍請求作爲前提是無效的。

這時,服務器會暫且以狀態碼 412Precondition Failed  作爲響應返回,其目的是催促客戶端再次發送請求。

這樣一來的話,與使用首部字段If-Range  比起來,就需要花費兩倍的功夫。


# If-Unmodified-Since #

首部字段 If-Unmodified-Since和首部字段 If-Modified-Since  的作用相反。

它的作用的是告知服務器,指定的請求資源只有在字段值內指定的日期時間之後,未發生更新的情況下,

才能處理請求。如果在指定日期時間後發生了更新,則以狀態碼 412 Precondition Failed  作爲響應返回。

exIf-Unmodified-Since: Thu, 03 Jul 2012 00:00:00 GMT

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