生活随笔
收集整理的這篇文章主要介紹了
HTTP知识普及系列:HTTP首部
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
HTTP協議的請求和響應報文中必定包含HTTP首部。首部內容為客戶端和服務器分別處理請求和響應提供所需要的信息。在請求中,HTTP報文由方法、URI、HTTP版本、HTTP首部字段等部分構成。在響應中,HTTP報文由HTTP版本、狀態碼(數字和原因短語)、HTTP首部字段3部分構成。客戶端和服務器端以HTTP協議進行通信的過程中,無論是請求還是響應都會使用首部字段,它能起到傳遞額外重要信息的作用。首部字段是為了給瀏覽器和服務器提供報文主體大小、所使用的語言、認證信息等內容。當HTTP報文首部中出現了兩個或兩個以上具有相同首部字段名時會怎么樣?這種情況在規范內尚未明確,根據瀏覽器內部處理邏輯的不同,結果可能并不一致。有些瀏覽器會優先處理第一次出現的首部字段,而有的則會優先處理最后出現的首部字段。HTTP四種首部字段類型通用首部字段:請求報文和響應報文兩方都會使用的首部。請求首部字段:從客戶端向服務器端發送請求報文時使用的首部。響應首部字段:從服務器端向客戶端返回響應報文時使用的首部。實體首部字段:針對請求報文和響應報文的實體部分使用的首部。通用首部字段Cache-Control:通過指定首部字段Cache-Control的指令,就能操作緩存的工作機制。Connection:控制不在轉發給代理的首部字段;管理持久連接。Data:表明創建HTTP報文的時間和日期。Pragma:只用在客戶端發送的請求中,所有的中間服務器不返回緩存的資源。Trailer:事先說明報文主體后記錄了哪些首部字段。同樣可以用在分塊傳輸編碼時。Transfer-Encoding:規定了傳輸報文主體時采用的編碼方式。Upgrade:用于檢測HTTP協議及其他協議是否可以使用更高的版本進行通信。Via:為了追蹤客戶端與服務器之間的請求和響應報文的傳輸路徑。Warning:通常會告知用戶一些與緩存相關的問題的警告。請求首部字段:請求首部字段是從客戶端往服務器發送請求的報文中所使用的字段,用于補充請求的附加信息、客戶端信息、對響應內容相關的優先級等內容。Accept:該字段可通知服務器,用戶代理能夠處理的媒體類型及媒體類型的相對優先級。Accept-Charset:用來通知服務器用戶代理支持的字符集及字符集的相對優先順序,可一次性指定多種字符集。Accept-Encoding:用來告知服務器用戶代理支持的內容編碼及內容編碼的優先級順序。Accept-Language:用來告知服務器用戶代理嫩鞏固處理的自然語言集(中文或英文等),以及自然語言集的相對優先級。Authorization:用來告知服務器,用戶代理的認證信息。Expect:客戶端使用首部字段Except來告知服務器,期望出現的某種指定行為。From:用來告知服務器使用用戶代理的用戶的電子郵件地址。Host:告知服務器,請求的資源所處的互聯網主機名和端口號。Host首部字段在HTTP/1.1規范內是唯一一個必須包含在請求內的首部字段。If-Match:類似于If-xxx這樣的請求首部,可以稱為條件請求。If-Modified-Since:告知服務器若該字段值早于資源的更新時間,則希望能處理該請求。If-None-Match:該字段值得實體標記值與請求資源的ETag不一致時,它就告知服務器處理該請求。If-Range:它告知服務器若指定的If-Range字段值和請求資源的ETag值或時間相一致時,則作為范圍請求處理。反之則返回全體資源。If-Unmodified-Since:告知服務器,指定的請求資源只有在字段值內指定的日期時間之后,未發生更新的情況下,才能處理請求。Max-Forwards:通過TRACE方法或OPTIONS方法,發送包含首部字段Max-Forwards的請求時,該字段以十進制整數形式指定可經過的服務器最大數目。當服務器接收到Max-Forwards值為0的請求時,則不再進行轉發,而是直接返回響應。Proxy-Authorization:客戶端會發送包含首部字段Proxy-Authorization的請求,以告知服務器認證所需要的信息。Range:告知服務器資源的指定范圍。TE:告知服務器客戶端能夠處理響應的傳輸編碼方式及相對優先級。User-Agent:將創建請求的瀏覽器用戶代理名稱等信息傳達給服務器。響應首部字段:響應首部字段是由服務器端向客戶端返回響應報文中所使用的字段,用于補充響應的附加信息、服務器信息、以及對客戶端的附加要求等信息。Accept-Ranges:用來告知客戶端服務器是否能夠處理范圍請求,以指定獲取服務器端某個部分的資源。Age:告知客戶端,源服務器在多久前創建了響應。單位秒。ETag:告知客戶端實體標識,它是一種可將資源以字符串形式做唯一標識的方式。Location:可以將響應接收方引導至某個與請求URI位置不同的資源。Proxy-Authenticate:把由代理服務器所要求的認證信息發送給客戶端。Retry-After:告知客戶端應該在多久之后再次發送請求。Server:告知客戶端當前服務器上安裝的HTTP服務器應用程序的信息。Vary:可對緩存進行控制,源服務器回向代理服務器傳達關于本地緩存使用方法的命令。WWW-Authenticate:用于HTTP訪問認證。實體首部字段:包含在請求報文和響應報文中的實體部分所使用的首部,用于補充內容的更新時間等與實體相關的信息。Allow:用于通知客戶端能夠支持Request-URI指定資源的所有HTTP方法。Content-Encoding:告知客戶端服務器對實體的主體部分選用的內容編碼方式。(gzip/compress/deflate/identity)Content-Language:告知客戶端,實體主體使用的自然語言。(中文或英文等語言)Content-Length:表明了實體主體部分的大小。Content-Location:給出與報文主體返回資源對應的URI。Content-MD5:是一串由MD5算法生成的值,其目的在于檢查報文主體在傳輸過程中是否保持完整,以及確認傳輸到達。Content-Range:針對范圍請求,返回響應時使用的首部字段,能告知客戶端作為相應返回的實體的哪個部分符合范圍請求。Content-Type:說明了實體主體內對象的媒體類型,該字段用type/subtype形式賦值。Expires:會將資源失效的日期告知客戶端。Last-Modified:指明資源最終修改的時間。管理服務器與客戶端之間狀態的Cookie。其工作機制是用戶識別以及狀態管理。調用Cookie時,由于可校驗Cookie的有效期,以及發送方的域、路徑、協議等信息。Set-Cookie字段的幾個屬性:expires屬性:指定瀏覽器可發送Cookie的有效期。path屬性:可用于限制指定Cookie的發送范圍的文件目錄。domain屬性:指定的域名。secure屬性:用于限制Web頁面僅在HTTPS安全連接時才可以發送Cookie。HTTPOnly:Cookie的擴展功能,它使JavaScript腳本無法獲得Cookie。其主要目的是為了防止跨站腳本攻擊對Cookie的信息竊取。?
轉載于:https://www.cnblogs.com/lizhengtan/p/5494089.html
總結
以上是生活随笔為你收集整理的HTTP知识普及系列:HTTP首部的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。