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  時有些類似。

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