http請求頭header及其作用詳解
下面是訪問的乙個url,的乙個header,根據例項分析各部分的功能和作用。
1、accept,瀏覽器端能夠處理的內容型別。
例如: accept: text/html 代表瀏覽器可以接受伺服器回發的型別為 text/html 也就是我們常說的html文件。如果伺服器無法返回text/html型別的資料,伺服器應該返回乙個406錯誤(non acceptable)。萬用字元 * 代表任意型別,例如 accept: */* 代表瀏覽器可以處理所有型別,(一般瀏覽器發給伺服器都是發這個)。
2、accept-encoding, 瀏覽器能夠處理的的壓縮編碼。通常指定壓縮方法,是否支援壓縮,支援什麼壓縮方法(gzip,deflate),(注意:這不是指字元編碼)。
例如: accept-encoding: zh-cn,zh;q=0.8
3、accept-language, 瀏覽器當前設定的語言。
語言跟字符集的區別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等;例如: accept-language: en-us
4、accept_charset::瀏覽器能夠顯示的字符集
5、connection:瀏覽器與伺服器的連線型別
例如:connection: keep-alive 當乙個網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的tcp連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線。
例如: connection: close 代表乙個request完成後,客戶端和伺服器之間用於傳輸http資料的tcp連線會關閉。
當客戶端再次傳送request,需要重新建立tcp連線。
6、host,傳送請求的頁面的網域名稱。(傳送請求時,該報頭域是必需的),請求報頭域主要用於指定被請求資源的internet主機和埠號,它通常從http url中提取出來的。
例如: 我們在瀏覽器中輸入:,瀏覽器傳送的請求訊息中,就會包含host請求報頭域,如下:
host:www.hzau.edu.cn,此處使用預設埠號80,若指定了埠號,則變成:host:指定埠號。
7、referer,傳送請求的頁面的uri。當瀏覽器向web伺服器傳送請求的時候,一般會帶上referer,告訴伺服器我是從哪個頁面鏈結過來的,伺服器藉此可以獲得一些資訊用於處理。
8、user-agent,瀏覽器的使用者**字串。告訴http伺服器, 客戶端使用的作業系統和瀏覽器的名稱和版本。
我們上網登陸論壇的時候,往往會看到一些歡迎資訊,其中列出了你的作業系統的名稱和版本,你所使用的瀏覽器的名稱和版本,這往往讓很多人感到很神奇,實際上,伺服器應用程式就是從user-agent這個請求報頭域中獲取到這些資訊user-agent請求報頭域允許客戶端將它的作業系統、瀏覽器和其它屬性告訴伺服器。
例如: user-agent: mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; ciba;
.net clr 2.0.50727; .net clr 3.0.4506.2152; .net clr 3.5.30729; .net4.0c; infopath.2; .net4.0e)
9、cookie,用來儲存一些使用者資訊以便讓伺服器辨別使用者身份的(大多數需要登入的**上面會比較常見)。
比如cookie會儲存一些使用者的使用者名稱和密碼,當使用者登入後就會在客戶端產生乙個cookie來儲存相關資訊,這樣瀏覽器通過讀取cookie的資訊去伺服器上驗證並通過後會判定你是合法使用者,從而允許檢視相應網頁。當然cookie裡面的資料不僅僅是上述範圍,還有很多資訊可以儲存是cookie裡面,比如sessionid等。
8、cache-control,指明當前資源的有效期,控制瀏覽器是否直接從瀏覽器緩訪問資料,還是重新發請求到伺服器獲取資料。
我們網頁的快取控制是由http頭中的「cache-control」來實現的,常見值有private、no-cache、max-age、must-revalidate等,預設為private。這幾種值的作用是根據重新檢視某一頁麵時不同的方式來區分的:
(1)、開啟新視窗
值為private、no-cache、must-revalidate,那麼開啟新視窗訪問時都會重新訪問伺服器。而如果指定了max-age值(單位為秒),那麼在此值內的時間裡就不會重新訪問伺服器,例如:
cache-control: max-age=5(表示當訪問此網頁後的5秒內再次訪問不會去伺服器)
(2)、在位址列回車
值為private或must-revalidate則只有第一次訪問時會訪問伺服器,以後就不再訪問。
值為no-cache,那麼每次都會訪問。
值為max-age,則在過期之前不會重複訪問。
(3)、按後退按扭
值為private、must-revalidate、max-age,則不會重訪問,
值為no-cache,則每次都重複訪問
(4)、按重新整理按扭
無論為何值,都會重複訪問
10、if-modified-since, 把瀏覽器端快取頁面的最後修改時間傳送到伺服器去,伺服器會把這個時間與伺服器上實際檔案的最後修改時間進行對比。
如果時間一致,那麼返回304,客戶端就直接使用本地快取檔案。如果時間不一致,就會返回200和新的檔案內容。客戶端接到之後,會丟棄舊檔案,把新檔案快取起來,並顯示在瀏覽器中。
例如:mon, 17 aug 2015 12:03:33 gmt
11、if-none-match, if-none-match和etag一起工作,工作原理是在http response中新增etag資訊。 當使用者再次請求該資源時,將在http request 中加入if-none-match資訊(etag的值)。如果伺服器驗證資源的etag沒有改變(該資源沒有更新),將返回乙個304狀態告訴客戶端使用本地快取檔案。否則將返回200狀態和新的資源和etag. 使用這樣的機制將提高**的效能。
HTTP請求頭及其作用
http請求頭header及其作用詳解 下面是訪問的乙個url,的乙個header,根據例項分析各部分的功能和作用。1 accept,瀏覽器端能夠處理的內容型別。例如 accept text html 代表瀏覽器可以接受伺服器回發的型別為 text html 也就是我們常說的html文件。如果伺服器...
http請求頭響應頭
今天的內容首先是http協議其中包括請求頭 request 和響應頭 response 請求頭中包含 accept 告訴伺服器,瀏覽器所支援的資料型別 accept charset 告訴伺服器,瀏覽器支援的字符集 accept encoding 告訴伺服器,瀏覽器所支援的資料解壓演算法 accept...
http 請求頭欄位
1.http1.0請求協議特點是一次只能訪問伺服器上的乙個請求資源,請求完畢後伺服器立馬斷開連線 http1.1協議則可訪問多個資源。2.get請求資料容量不能超過1k,get請求陣列在請求資源後邊即在請求行 post請求資料量沒限制,post請求資料在請求體中 3.請求頭各欄位詳解 accept ...