HTTP學習記錄:四、頭資訊(請求和響應)
學習資源主要為:@小坦克HTTP相關部落格
一、請求頭資訊(Request Header)
請求頭資訊包含比較多,如下:
1、Cache頭域
if-modified-Since
作用:把瀏覽器端快取頁面的最後修改時間傳送到伺服器去,伺服器會把這個時間與伺服器上的實際檔案的最後修改時間進行對比。如果說時間一致,那麼返回304,客戶端就直接使用本地快取檔案。如果時間不一致,就會返回200和新的檔案內容,客戶端接到之後,會丟棄舊檔案,把新檔案快取起來,並顯示在瀏覽器中。
if-none-match
作用:if-none-match和etag一起工作,工作原理是再http response
Pragma
作用:防止頁面被快取,在http/1.1版本中,它和cache-control:no-cache作用一樣。pargma只有有一個用法。pragma:no-cache
cache-control
作用:這個是非常重要的規則。這個用來置頂response-requesst遵循的快取機制。各個指令含義如下:
cache-control:public--可以被任何快取所快取
cache-control:private--內容只快取到私有快取中
cache-control:no-cache---所有內容都不會被快取
(快取的好處:1、較少冗餘的資料傳輸;2、減少伺服器的負擔;3、加快客戶端載入網頁的速度)
(F5重新整理瀏覽器和位址列中輸入網址回車的處理方式不同:F5重新整理瀏覽器,會去Web伺服器驗證快取;後者是直接去訪問有效的快取,不會去請求伺服器。)
2、client頭域
Accept
作用:瀏覽器可以接受的媒體型別
accept:*/*代表瀏覽器可以處理所有型別
Accept-Encoding
作用:瀏覽器申明自己接收的編碼方法,通常制定壓縮方法,是否支援壓縮,支援什麼壓縮方法
User-Agent
作用:告訴http伺服器,客戶端使用的作業系統和瀏覽器的名稱和版本
Accept-Charset
作用:瀏覽器申明自己接收的字符集
3、Cookie/Login頭域
Cookie
作用:最重要的header,將cookie的值傳送給http伺服器
4、Entity頭域
Content-Length
作用:傳送給http伺服器資料的長度
Content-Type
作用:資料型別
5、Miscellaneous頭域
referer
作用:提供了request上下文資訊給伺服器,告訴伺服器我是從哪個連結過來的。
6、Transport頭域
Connection
作用:確定傳輸資料後tcp的連結狀態
Connection:keep-alive---當一個 網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的tcp連結不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連結。
Connection:close---表示一個requset完成滬,客戶端與伺服器之間用於傳輸http資料的tcp連結會關閉,當看客戶端再次傳送request,需要重新建立tcp連結。
Host(傳送請求時,該頭域是必須的)
作用:請求報文頭域主要用於指定被請求資源的internet主機和埠號,它通常從http url中提出出來
二、響應頭資訊(response header)
1、Cache頭域
Date
作用:生成訊息的具體時間和日期
Expires
作用:瀏覽器會在指定過期時間內使用本地快取
Vary
vary:accept-Encoding
(如果同時存在cache-control和Expires:瀏覽器優先使用cache-control)
2、Cookie/login頭域
P3P
作用:用於跨域設定Cookie,這樣可以解決iframe跨域訪問cookie的問題
set-cookie
作用:非常重要的header,用於把cookie傳送到客戶端瀏覽器,每一個寫入cookie都會生成一個set-cookie
3、Entity頭域
Etag
作用:和if-None-match配合使用
Last-modified
作用:用於指定資源的最後修改日期和時間
(Etag主要是為了解決Last-Modified無法解決的一些問題:1、不能精確定位檔案的最後修改時間;2、檔案改動太頻繁,在秒以下,last-modified只能精確到秒;3、檔案最後修改時間變了,但是內容未變。)
content-type
作用:web伺服器告訴瀏覽器自己響應的物件的型別和字符集
content-length
作用:指明實體正文的長度,已位元組方式儲存的十進位制數字來表示
content-encoding
作用:web伺服器表明自己使用了什麼壓縮方法壓縮響應中的物件
content-language
作用:web伺服器告訴瀏覽器自己響應的物件的語言
4、miscellaneus頭域
server
作用:指明http伺服器的軟體資訊
x-aspnet-version
作用:如果網站是用asp.net開發的,這個header用來表示asp.net的版本
X-Powered-By
作用:表示網站是用什麼技術開發的
5、Transport頭域
Connection
6、Location頭域
location
作用:用於重定向一個新的位置,包含新的url地址