作為前端的程式碼猿,在面試中避免不了別問道http首部欄位,有些小夥伴可能就會感到害怕?,心想我那知道這些啊,哈哈,有關tcp/ip協議裡面的這些問題在面試中經常被問道
廢話不都說我們們就看看http/1.1中常見的一些首部欄位,大家做好準備常用的欄位挺多的,大概有47個 ?一聽見這個數字大家就會嚇一跳what這麼多,莫怕夥計們,其實按類別的是很好區分的。
我們們不著急看著40幾個首部欄位我們們先了解一下首部欄位是幹什麼的,其實首部欄位是用來傳遞重要資訊的,首部欄位是構成報文的要素之一。若http首部欄位重複了會如何,現在在tcp/ip協議上邊還沒有明確的規範定義,使用第一次出現的還是後者出現的欄位,其實組要還是根據瀏覽器的邏輯來決定的,有的瀏覽器時首先處理第一次出現的首部欄位,而有些則處理最後一次出現的首部地段。
剛才我們們談到了首部欄位大概是40多個,莫怕,這些欄位是進行分類的,根據首部欄位實際用途分為4中型別。
- 通用首部欄位(General Header Fields) 請求和響應報文兩方都會使用的首部欄位。
- 請求首部欄位(Reauest Header Fields)客戶端向伺服器傳送請求的報文時使用的首部。補充了請求的附加內容、客戶端資訊、響應內容相關的優先等級資訊。
- 響應首部欄位(Response Header Fields)從伺服器向客戶端響應時使用的欄位,補充響應的附加內容,也會要求客戶端附加額外資訊
- 實體首部欄位(Entiy Header Fields) 針對請求報文和響應報文的實體部分使用首部。補充了資源內容更新時間等實體有關的資訊。
下面簡介http/1.1的首部欄位,如果想看詳細說明請點選《通用首部欄位詳解》、《請求首部欄位詳解》、《響應首部欄位》、《實體首部欄位詳解》
1、 http\1.1 通用首部欄位
1.1 Cache-Control 控制快取
1.2 Connection 連線管理、逐條首部
1.3 Upgrade 升級為其他協議
1.4 via 代理伺服器的相關資訊
1.5 Wraning 錯誤和警告通知
1.6 Transfor-Encoding 報文主體的傳輸編碼格式
1.7 Trailer 報文末端的首部一覽
1.8 Pragma 報文指令
1.9 Date 建立報文的日期
2、http/1.1 請求首部欄位
2.1 Accept 客戶端或者代理能夠處理的媒體型別
2.2 Accept-Encoding 優先可處理的編碼格式
2.3 Accept-Language 優先可處理的自然語言
2.4 Accept-Charset 優先可以處理的字符集
2.5 If-Match 比較實體標記(ETage)
2.6 If-None-Match 比較實體標記(ETage)與 If-Match相反
2.7 If-Modified-Since 比較資源更新時間(Last-Modified)
2.8 If-Unmodified-Since比較資源更新時間(Last-Modified),與 If-Modified-Since相反
2.9 If-Rnages 資源未更新時傳送實體byte的範圍請求
2.10 Range 實體的位元組範圍請求
2.11 Authorization web的認證資訊
2.12 Proxy-Authorization 代理伺服器要求web認證資訊
2.13 Host 請求資源所在伺服器
2.14 From 使用者的郵箱地址
2.15 User-Agent 客戶端程式資訊
2.16 Max-Forwrads 最大的逐跳次數
2.17 TE 傳輸編碼的優先順序
2.18 Referer 請求原始放的url
2.19 Expect 期待伺服器的特定行為
3 http/1.1 響應首部欄位
3.1 Accept-Ranges 能接受的位元組範圍
3.2 Age 推算資源建立經過時間
3.3 Location 令客戶端重定向的URI
3.4 vary 代理伺服器的快取資訊
3.5 ETag 能夠表示資源唯一資源的字串
3.6 WWW-Authenticate 伺服器要求客戶端的驗證資訊
3.7 Proxy-Authenticate 代理伺服器要求客戶端的驗證資訊
3.8 Server 伺服器的資訊
3.9 Retry-After 和狀態碼503 一起使用的首部欄位,表示下次請求伺服器的時間
4 http/1.1 實體首部欄位
4.1 Allow 資源可支援http請求的方法
4.2 Content-Language 實體的資源語言
4.3 Content-Encoding 實體的編碼格式
4.4 Content-Length 實體的大小(位元組)
4.5 Content-Type 實體媒體型別
4.6 Content-MD5 實體報文的摘要
4.7 Content-Location 代替資源的yri
4.8 Content-Rnages 實體主體的位置返回
4.9 Last-Modified 資源最後的修改資源
4.10 Expires 實體主體的過期資源