點擊關注公眾號,“技術干貨”及時達!
前言
如果你是一名開發(fā),肯定對請求頭和響應頭這兩個詞聽上去特別有親切感,請求頭和響應頭顧名思義就是請求和響應相關的一些信息,但具體到請求頭和響應頭里面的某個參數是啥意思可能很多人就不知道了。
就像最近問到一些面試者響應頭里面最常見的Cache-Control和Content-Type所代表的是什么意思,很多都回答的支支吾吾的。真要說在項目中這種面試者也肯定能正常搬磚干活,但一看就是基本功非常差,如果有對比選擇的情況下非常容易被"pass"掉。
因此這篇文章主要對比較常用的請求頭和響應頭進行解釋,除了能應對面試官外還能對知識面進行擴展。
什么是請求頭和響應頭
簡單說請求頭和響應頭就是HTTP協(xié)議的組成部分,請求頭和響應頭用于在客戶端(瀏覽器)和服務器之間攜帶傳遞額外的屬性,這些屬性內容會用于控制HTTP請求和響應的行為。
其中請求頭是客戶端帶給服務端,響應頭是服務端帶給客戶端。
常見請求頭含義Accept:
「含義」:表示指定客戶端能夠接受哪些類型的內容。
當客戶端用接口請求時,設置Accept會告訴服務器要返回合適的類型格式。
示例
accept: application/json, text/plain,
Accept-Charset
「含義」: 表示指定客戶端能夠接受哪些類型的字符集。
Accept-Charset: utf-8, iso-8859-1;q=0.5
Cookie
「含義」: 表示用于存儲用戶特有信息,讓用品去識別用戶的具體身份。通過Cookie傳遞用戶ID,讓服務器端識別用戶身份。
示例
Cookie: session=abPC9527; user=tty
Origin
「含義」: 表示跨域相關信息,用于設置CORS的請求。通過Origin 頭,防止陌生的域進行請求。
示例
Origin: https://tty.com
Referer
「含義:」 表示當前的請求是從哪個url鏈接過來的。
示例
Referer: https://tty.com/pageone
User-Agent
「含義」: 表示包含發(fā)起請求的用戶的一些代理信息,例如瀏覽器的具體版本和具體類型。
示例
User-Agent: Mozilla/3.0 (Windows NT 9.0; Win32; x64) AppleWebKit/517.36 (KHTML, like Gecko) Chrome/56.0.3029.110 Safari/517.3
If--Since
「含義」: 表示客戶端在上次獲取資源的具體時間。
示例
If-Modified-Since: Tue, 10 Oct 2021 11:01:01 GMT
Range
「含義」: 表示指定第一個字節(jié)到指定最后字節(jié)之間的位置,用于告訴服務器想取那個范圍的數據。
示例
Range: bytes=0-255
常見響應頭含義Access-Control-Allow-Origin
「含義」: 表示用于配置CORS跨域相關,指定允許訪問資源的域名,如果配置為*表示所有可訪問。
示例
Access-Control-Allow-Origin: *
Cache-Control
「含義」: 表示緩存機制的緩存策略。
示例------這里面試重點
Cache-Control:public // 響應會被緩存
Cache-Control:must-revalidate // 指定條件下會緩存重用
Cache-Control:no-cache // 直接向服務器端請求最新資源,不緩存
Cache-Control:max-age=10 // 設置緩存的有效時間
Cache-Control:no-store // 在任何條件下,響應都不會被緩存
Content-Length
「含義」: 表示當前響應體的具體大小,具體單位為字節(jié)。
示例
Content-Length: 9527
Content-Type
「含義:」 表示響應體的具體數據格式是什么。
示例
Content-Type: application/json
Date
「含義」: 表示服務器開始對客戶端發(fā)送響應的具體時間。
示例
Date: Tue, 10 Oct 2021 11:01:01 GMT
ETag
「含義」: 表示用于驗證緩存,確保當前的資源未被修改過。如果沒有更改過則返回304狀態(tài)碼,減少不必要傳輸。
示例
ETag: "1234952790pc"
「含義」: 表示用于重定向,指向一個新的URL。
示例
Location: https://tty.com/new-page
Set-Cookie
「含義」: 表示服務器通過這個請求頭把cookie帶到客戶端。客戶端會在后面請求中自動將這cookie放在請求頭中。
示例
Set-Cookie: session=pc9527; Path=/; HttpOnly; Secure
Server
「含義」: 表示告訴這個服務器軟件的信息,例如版本。
示例
Server: Apache/1.4.38 (Ubuntu)
X-Powered-By
「含義」: 表示返回后端使用的具體框架或技術棧。
示例
X-Powered-By: Express
Content-
「含義」: 表示響應體的編碼方式,例如gzip壓縮。
示例
Content-Encoding: gzip
Last-
「含義」: 表示資源最后被修改的具體時間。
示例
Last-Modified: Tue, 10 Oct 2021 11:00:00 GMT
Expires
「含義」: 跟緩存相關,表示指定資源的過期時間,這個時間前都不過期。
示例
Expires: Wed, 21 Oct 2021 07:21:00 GMT
小結
這些內容看似好像日常寫業(yè)務代碼沒咋用到,但其實是非常重要的,里面涉及到緩存、跨域和安全相關等等的內容。
這些內容足夠驗證一個開發(fā)知識面是否足夠廣。
好啦,以上就是比較常見的響應頭和請求頭的一些字段。如果哪里寫的不對或者有更好有建議歡迎指出。
點擊關注公眾號,“技術干貨”及時達!
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。