e621小馬 e621( 三 )


Cache-Control 可以出現在請求標頭和響應標頭中,Cache-Control 的種類比較多,雖然說這是一個通用標頭,但是又一些特性是請求標頭具有的,有一些是響應標頭才有的 。主要大類有 可緩存性、閾值性、 重新驗證并重新加載 和其他特性
Connection
Connection 決定當前事務(一次三次握手和四次揮手)完成后,是否會關閉 *** 連接 。Connection 有兩種,一種是持久性連接,即一次事務完成后不關閉 *** 連接
Connection: keep-alive復制代碼復制代碼另一種是非持久性連接,即一次事務完成后關閉 *** 連接
Connection: close復制代碼實體標頭實體標頭是描述消息正文內容的 HTTP 標頭 。實體標頭用于 HTTP 請求和響應中 。頭部Content-Length、 Content-Language、 Content-Encoding 是實體頭 。
Content-Length 實體報頭指示實體主體的大小,以字節為單位,發送到接收方 。Content-Language 實體報頭描述了客戶端或者服務端能夠接受的語言,例如Content-Language: de-DEContent-Language: en-USContent-Language: de-DE, en-CA復制代碼復制代碼Content-Encoding 這又是一個比較麻煩的屬性,這個實體報頭用來壓縮媒體類型 。Content-Encoding 指示對實體應用了何種編碼 。常見的內容編碼有這幾種: gzip、compress、deflate、identity ,這個屬性可以應用在請求報文和響應報文中Accept-Encoding: gzip, deflate //請求頭Content-Encoding: gzip//響應頭復制代碼請求標頭GET /home.html HTTP/1.1Host: developer.mozilla.orgUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflate, brReferer: https://developer.mozilla.org/testpage.htmlConnection: keep-aliveUpgrade-Insecure-Requests: 1If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMTIf-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"Cache-Control: max-age=0 復制代碼Host
Host 請求頭指明了服務器的域名,以及(可選的)服務器監聽的TCP端口號
Referer
HTTP Referer 屬性是請求標頭的一部分,告訴服務器該網頁是從哪個頁面鏈接過來的
If-Modified-Since
HTTP 的 If-Modified-Since 使其成為條件請求:
返回200,只有在給定日期的最后一次修改資源后,服務器才會以200狀態發送回請求的資源 。如果請求從開始以來沒有被修改過,響應會返回304并且沒有任何響應體If-Modified-Since 通常會與 If-None-Match 搭配使用,If-Modified-Since 用于確認 *** 或客戶端擁有的本地資源的有效性 。獲取資源的更新日期時間,可通過確認首部字段 Last-Modified 來確定 。
大白話說就是如果在 Last-Modified 之后更新了服務器資源,那么服務器會響應200,如果在 Last-Modified 之后沒有更新過資源,則返回 304 。
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT復制代碼復制代碼If-None-Match
If-None-Match HTTP請求標頭使請求成為條件請求 。對于 GET 和 HEAD*** ,僅當服務器沒有與給定資源匹配的 ETag 時,服務器才會以200狀態發送回請求的資源 。對于其他 *** ,僅當最終現有資源的ETag與列出的任何值都不匹配時,才會處理請求 。
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"復制代碼復制代碼內容協商內容協商機制是指客戶端和服務器端就響應的資源內容進行交涉,然后提供給客戶端最為適合的資源 。內容協商會以響應資源的語言、字符集、編碼方式等作為判斷的標準 。

e621小馬  e621

文章插圖
內容協商主要有以下3種類型:
服務器驅動協商(Server-driven Negotiation)這種協商方式是由服務器端進行內容協商 。服務器端會根據請求首部字段進行自動處理
客戶端驅動協商(Agent-driven Negotiation)這種協商方式是由客戶端來進行內容協商 。
透明協商(Transparent Negotiation)是服務器驅動和客戶端驅動的結合體,是由服務器端和客戶端各自進行內容協商的一種 ***。
內容協商的分類有很多種,主要的幾種類型是 Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language 。
Accept
接受請求 HTTP 標頭會通告客戶端其能夠理解的 MIME 類型
MIME: MIME (Multipurpose Internet Mail Extensions) 是描述消息內容類型的因特網標準 。MIME 消息能包含文本、圖像、音頻、視頻以及其他應用程序專用的數據 。復制代碼文本文件: text/html、text/plain、text/css、application/xhtml+xml、application/xml
圖片文件: image/jpeg、image/gif、image/png
視頻文件: video/mpeg、video/quicktime
應用程序二進制文件: application/octet-stream、application/zip

推薦閱讀