fiddler請求報文的headers屬性詳解

headers的屬性包含以下幾部分。

(1)Cache頭域

在Cache頭域中,通常會出現(xiàn)以下屬性。

1. Cache-Control

用來指定Response-Request遵循的緩存機制。各個指令如下含義。

  • Cache-Control:Public:可以被任何緩存所緩存。
  • Cache-Control:Private:指示響應信息的全部或部分用于單個用戶,而不能用一個共享緩存來緩存。這可以讓源服務器指示,響應的特定部分只用于一個用戶,而對其他用戶的請求則是一個不可靠的響應。
  • Cache-Control:no-cache:所有的內(nèi)容都不會被緩存,請求頭里的no-cache表示瀏覽器不想讀緩存,并不是說沒有緩存。一般在瀏覽器按Ctrl+F5鍵強制刷新時,請求頭里也會有這個no-cache,也就是跳過強緩存和協(xié)商緩存階段,直接請求服務器。
  • Cache-Control:max-age=0:指示客戶端愿意接收其絕對時間不大于指定的時間,以秒計。如果直接按F5鍵的話,請求頭是max-age=0,只跳過強緩存,但進行協(xié)商緩存。

2. If-Modified-Since

  • 把瀏覽器端緩存頁面的最后修改時間發(fā)送到服務器去,服務器會把這個時間與服務器上實際文件的最后修改時間進行對比。如果時間一致,那么會返回304,客戶端就直接使用本地緩存文件。如果時間不一致,就會返回200和新的文件內(nèi)容??蛻舳私拥街?,會丟棄舊文件,把新文件緩存起來,并顯示在瀏覽器中。
    本地文件的修改時間和服務器上的文件時間修改時間一致,說明文件沒有被更新。HTTP服務器返回304,告訴客戶端使用本地緩存文件

3. If-None-Match

  • If-None-Match和ETag一起工作,工作原理是在HTTPresponse中添加ETag信息。當用戶再次請求該資源時,將在HTTP request中假如 If-None-Match信息(ETag的值)。如果服務器驗證資源的ETag沒有改變(該資源沒有更新),將返回200狀態(tài)和新的資源和ETag。使用這樣的機制將提高網(wǎng)站的性能
    ** If-None-Match和ETag的值一致,說明文件沒有被更新。服務器將返回304,告訴客戶端使用本地緩存文件**

4. Pragma

  • 防止頁面被緩存,在HTTP/1.1版本中,它和Cache-Control:no-cache的作用一模一樣。
    Prama只有一個用法,例如,Pragma:no-cache。

(2)Client頭域

1. Accept

瀏覽器端可以接收的媒體類型。

  • Accept: text/html
    代表瀏覽器可以接收服務器發(fā)回的類型為text/html也就是我們常說的HTML文檔,如果服務器無法返回text/html類型的數(shù)據(jù),服務器應該返回一個406錯誤(non acceptable)。

  • Accept: */ *
    通配符 * 代表任意類型。代表瀏覽器可以處理所有類型

  • Accept-Encoding
    瀏覽器聲明自己接收的語言。語言跟字符集的區(qū)別是:中文是語言,中文有多種字符集,如何big5、gb2312、gbk等

2. User-Agent

  • 告訴HTTP服務器客戶端使用的操作系統(tǒng)和瀏覽器的名稱和版本。我們上網(wǎng)登陸論壇的時候,往往會看到一些歡迎信息,其中列出了你的操作系統(tǒng)的名字和版本、你所使用的瀏覽器的名稱和版本,這往往讓很多人感到很神奇,實際上,服務器應用程序就是從User-Agent這個請求報頭域中獲取到的這些信息。User-Agent請求報頭域允許客戶端將它的操作系統(tǒng)、瀏覽器和其他屬性告訴服務器。

3. Accept-Charset

  • 瀏覽器聲明自己接收的字符集,如gb2312、utg-8等。

(3) Cookie頭域

  • Cookie
    最重要的header,將Cookie的值發(fā)送給HTTP服務器。

(4) Miscellaneous頭域

  • Referer
  • 提供了request的上下文信息的服務器,告訴服務器我是從哪個鏈接過來的。有些統(tǒng)計數(shù)據(jù)需要用到此頭域。比如從我的主頁上鏈接到統(tǒng)計服務器那里,該服務器就能夠從HTTP Referer中統(tǒng)計出每天有多少用戶點擊我主頁上的鏈接訪問他的網(wǎng)站。

(5) Entity頭域

1. Content-Length

  • 發(fā)送給HTTP服務器數(shù)據(jù)的長度。

2. Content-Type

  • 表示具體請求中的媒體類型信息。
    常見的媒體格式類型如下。
  • text/html: HTML格式
  • text/plain: 純文本格式
  • text/xml: XML格式
  • image/gif: gif圖片格式
  • image/jpeg: jpg圖片格式
  • image/png: png圖片格式
    以application開頭的媒體格式類型如下
  • application/xhtml+xml: XHTML格式
  • application/xml: XML數(shù)據(jù)格式
  • application/atom+xml: Atom XML聚合格式
  • application/json: JSON數(shù)據(jù)格式
  • application/pdf: pdf格式
  • application/msword: Word文檔格式
  • application/octet-stream: 二進制流數(shù)據(jù)
  • application/x-www-form-urlencoded: <form encType="">中默認的encType,form表單數(shù)據(jù)被編碼為key/value格式發(fā)送到服務器(表單默認的提交數(shù)據(jù)的格式)。

3. multipart/form-data

  • 另外一種常見的媒體格式是上傳文件之時使用的。
  • 需要在表單中進行文件上傳時,就需要使用該格式。

(6)Tranport頭域

Connection

  • Connection: keep-alive: 當一個網(wǎng)頁打開完成后,客戶端和服務器之間用戶傳輸HTTP數(shù)據(jù)的TCP連接不會關閉,如果客戶端再次訪問這個服務器上的網(wǎng)頁,會繼續(xù)使用這一條已經(jīng)建立的連接。
  • Connection: close: 代表一個request完成后,客戶端和服務器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會關閉,當客戶端再次發(fā)送request時,需要重新建立TCP連接。
    Host(發(fā)送請求時,該報頭域是必須的)
  • 請求報頭域主要用于指定被請求資源的Internet主機和端口號。它通常從HTTP URL中提取出來。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容