1. 程式人生 > >HTTP學習記錄:四、頭資訊(請求和響應)

HTTP學習記錄:四、頭資訊(請求和響應)

學習資源主要為:@小坦克HTTP相關部落格

一、請求頭資訊(Request Header

請求頭資訊包含比較多,如下:

1Cache頭域

  if-modified-Since

  作用:把瀏覽器端快取頁面的最後修改時間傳送到伺服器去,伺服器會把這個時間與伺服器上的實際檔案的最後修改時間進行對比。如果說時間一致,那麼返回304,客戶端就直接使用本地快取檔案。如果時間不一致,就會返回200和新的檔案內容,客戶端接到之後,會丟棄舊檔案,把新檔案快取起來,並顯示在瀏覽器中。

  if-none-match

  作用:if-none-matchetag一起工作,工作原理是再http response

中新增etag資訊。當用戶再次請求該資源時,將在http request中加入if-none-match資訊(etag的值)。如果伺服器驗證資源的時候etag沒有改變(該資源沒有更新),將返回一個304狀態告訴客戶端使用本地快取檔案。否則將返回200狀態和新的資源和etag。使用這樣的機制將提高網站的效能。

  Pragma

  作用:防止頁面被快取,在http/1.1版本中,它和cache-control:no-cache作用一樣。pargma只有有一個用法。pragmano-cache

  cache-control

  作用:這個是非常重要的規則。這個用來置頂response-requesst遵循的快取機制。各個指令含義如下:

  cache-control:public--可以被任何快取所快取

  cache-control:private--內容只快取到私有快取中

  cache-control:no-cache---所有內容都不會被快取

  (快取的好處:1、較少冗餘的資料傳輸;2、減少伺服器的負擔;3、加快客戶端載入網頁的速度)

  (F5重新整理瀏覽器和位址列中輸入網址回車的處理方式不同:F5重新整理瀏覽器,會去Web伺服器驗證快取;後者是直接去訪問有效的快取,不會去請求伺服器。)

2client頭域

  Accept

  作用:瀏覽器可以接受的媒體型別

  accept*/*代表瀏覽器可以處理所有型別

  Accept-Encoding

  作用:瀏覽器申明自己接收的編碼方法,通常制定壓縮方法,是否支援壓縮,支援什麼壓縮方法

  User-Agent

  作用:告訴http伺服器,客戶端使用的作業系統和瀏覽器的名稱和版本

  Accept-Charset

  作用:瀏覽器申明自己接收的字符集

3Cookie/Login頭域

  Cookie

  作用:最重要的header,將cookie的值傳送給http伺服器

4Entity頭域

  Content-Length

  作用:傳送給http伺服器資料的長度

  Content-Type

  作用:資料型別

5Miscellaneous頭域

  referer

  作用:提供了request上下文資訊給伺服器,告訴伺服器我是從哪個連結過來的。

6Transport頭域

  Connection

  作用:確定傳輸資料後tcp的連結狀態

  Connectionkeep-alive---當一個 網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的tcp連結不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連結。

  Connectionclose---表示一個requset完成滬,客戶端與伺服器之間用於傳輸http資料的tcp連結會關閉,當看客戶端再次傳送request,需要重新建立tcp連結。

  Host(傳送請求時,該頭域是必須的)

  作用:請求報文頭域主要用於指定被請求資源的internet主機和埠號,它通常從http url中提出出來

二、響應頭資訊(response header

1Cache頭域

  Date

  作用:生成訊息的具體時間和日期

  Expires

  作用:瀏覽器會在指定過期時間內使用本地快取

  Vary

  varyaccept-Encoding

  (如果同時存在cache-controlExpires:瀏覽器優先使用cache-control

2Cookie/login頭域

  P3P

  作用:用於跨域設定Cookie,這樣可以解決iframe跨域訪問cookie的問題

  set-cookie

  作用:非常重要的header,用於把cookie傳送到客戶端瀏覽器,每一個寫入cookie都會生成一個set-cookie

3Entity頭域

  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伺服器告訴瀏覽器自己響應的物件的語言

4miscellaneus頭域

  server

  作用:指明http伺服器的軟體資訊

  x-aspnet-version

  作用:如果網站是用asp.net開發的,這個header用來表示asp.net的版本

  X-Powered-By

  作用:表示網站是用什麼技術開發的

5Transport頭域

  Connection

6Location頭域

  location

  作用:用於重定向一個新的位置,包含新的url地址