HTTP頭 各部分字段解釋

2022-08-21 15:21:09 字數 3898 閱讀 2179

1. accept:告訴web伺服器自己接受什麼介質型別,*/* 表示任何型別,type/* 表示該型別下的所有子型別,type/sub-type。

2. accept-charset:瀏覽器申明自己接收的字符集

accept-encoding:瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支援壓縮,支援什麼壓縮方法 (gzip,deflate)

accept-language:瀏覽器申明自己接收的語言語言跟字符集的區別:中文是語言,中文有多種字符集,比如big5,gb2312,gbk等等。

3. accept-ranges:web伺服器表明自己是否接受獲取其某個實體的一部分(比如檔案的一部分)的請求。bytes:表示接受,none:表示不接受。

4. age:當**伺服器用自己快取的實體去響應請求時,用該頭部表明該實體從產生到現在經過多長時間了。

5. authorization:當客戶端接收到來自web伺服器的 www-authenticate 響應時,該頭部來回應自己的身份驗證資訊給web伺服器。

6. cache-control:

請求:no-cache(不要快取的實體,要求現在從web伺服器去取)

max-age:(只接受 age 值小於 max-age 值,並且沒有過期的物件)

max-stale:(可以接受過去的物件,但是過期時間必須小於max-stale 值)

min-fresh:(接受其新鮮生命期大於其當前 age 跟 min-fresh 值之和的快取物件)

響應:public(可以用 cached 內容回應任何使用者)

private(只能用快取內容回應先前請求該內容的那個使用者)

no-cache(可以快取,但是只有在跟web伺服器驗證了其有效後,才能返回給客戶端)

max-age:(本響應包含的物件的過期時間)

all: no-store(不允許快取)

7. connection:

請求:close(告訴web伺服器或者**伺服器,在完成本次請求的響應後,斷開連線,不要等待本次連線的後續請求了)。

keepalive(告訴web伺服器或者**伺服器,在完成本次請求的響應後,保持連線,等待本次連線的後續請求)。

響應:close(連線已經關閉)。

keepalive(連線保持著,在等待本次連線的後續請求)。

keep-alive:如果瀏覽器請求保持連線,則該頭部表明希望 web 伺服器保持連線多長時間(秒)。例如:keep-alive:300

8. content-encoding:web伺服器表明自己使用了什麼壓縮方法(gzip,deflate)壓縮響應中的物件。

例如:content-encoding:gzip

content-language:web 伺服器告訴瀏覽器自己響應的物件的語言。

content-length: web 伺服器告訴瀏覽器自己響應的物件的長度。

例如:content-length: 26012

content-range: web 伺服器表明該響應包含的部分物件為整個物件的哪個部分。

例如:content-range: bytes 21010-47021/47022

content-type: web 伺服器告訴瀏覽器自己響應的物件的型別。

9. etag:就是乙個物件(比如url)的標誌值,就乙個物件而言,比如乙個 html 檔案,如果被修改了,其 etag 也會別修改,所以,etag 的作用跟 last-modified 的作用差不多,主要供 web 伺服器判斷乙個物件是否改變了。比如前一次請求某個 html 檔案時,獲得了其 etag,當這次又請求這個檔案時,瀏覽器就會把先前獲得的 etag 值傳送給 web 伺服器,然後 web 伺服器會把這個 etag 跟該檔案的當前 etag 進行對比,然後就知道這個檔案有沒有改變了。

10. expired:web伺服器表明該實體將在什麼時候過期,對於過期了的物件,只有在跟web伺服器驗證了其有效性後,才能用來響應客戶請求。是 http/1.0 的頭部。

例如:expires:sat, 23 may 2009 10:02:12 gmt

例如:host:rss.sina.com.cn

12. if-match:如果物件的 etag 沒有改變,其實也就意味著物件沒有改變,才執行請求的動作。

if-none-match:如果物件的 etag 改變了,其實也就意味著物件也改變了,才執行請求的動作。

13. if-modified-since:如果請求的物件在該頭部指定的時間之後修改了,才執行請求的動作(比如返回物件),否則返回**304,告訴瀏覽器該物件沒有修改。

例如:if-modified-since:thu, 10 apr 2008 09:14:42 gmt

if-unmodified-since:如果請求的物件在該頭部指定的時間之後沒修改過,才執行請求的動作(比如返回物件)。

14. if-range:瀏覽器告訴 web 伺服器,如果我請求的物件沒有改變,就把我缺少的部分給我,如果物件改變了,就把整個物件給我。瀏覽器通過傳送請求物件的etag 或者自己所知道的最後修改時間給 web 伺服器,讓其判斷物件是否改變了。總是跟 range 頭部一起使用。

15. last-modified:web 伺服器認為物件的最後修改時間,比如檔案的最後修改時間,動態頁面的最後產生時間等等。

例如:last-modified:tue, 06 may 2008 02:42:43 gmt

16. location:web 伺服器告訴瀏覽器,試圖訪問的物件已經被移到別的位置了,到該頭部指定的位置去取。

例如:location:

17. pramga:主要使用 pramga: no-cache,相當於 cache-control: no-cache。

例如:pragma:no-cache

18. proxy-authenticate:**伺服器響應瀏覽器,要求其提供**身份驗證資訊。

proxy-authorization:瀏覽器響應**伺服器的身份驗證請求,提供自己的身份資訊。

例如:range: bytes=1173546-

例如:referer:

21. server: web 伺服器表明自己是什麼軟體及版本等資訊。

例如:server:apache/2.0.61 (unix)

22. user-agent: 瀏覽器表明自己的身份(是哪種瀏覽器)。

例如:user-agent:mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.8.1.14) gecko/20080404 firefox/2.0.0.14

23. transfer-encoding: web 伺服器表明自己對本響應訊息體(不是訊息體裡面的物件)作了怎樣的編碼,比如是否分塊(chunked)。

例如:transfer-encoding: chunked

24. vary: web伺服器用該頭部的內容告訴 cache 伺服器,在什麼條件下才能用本響應所返回的物件響應後續的請求。假如源web伺服器在接到第乙個請求訊息時,其響應訊息的頭部為:content-encoding: gzip; vary: content-encoding 那麼 cache 伺服器會分析後續請求訊息的頭部,檢查其 accept-encoding,是否跟先前響應的 vary 頭部值一致,即是否使用相同的內容編碼方法,這樣就可以防止 cache 伺服器用自己cache 裡面壓縮後的實體響應給不具備解壓能力的瀏覽器。

例如:vary:accept-encoding

25. via:列出從客戶端到 ocs 或者相反方向的響應經過了哪些**伺服器,他們用什麼協議(和版本)傳送的請求。當客戶端請求到達第乙個**伺服器時,該伺服器會在自己發出的請求裡面新增 via 頭部,並填上自己的相關資訊,當下乙個**伺服器收到第乙個**伺服器的請求時,會在自己發出的請求裡面複製前乙個**伺服器的請求的via部,並把自己的相關資訊加到後面,以此類推,當 ocs 收到最後乙個**伺服器的請求時,檢查 via 頭部,就知道該請求所經過的路由。

IP頭以及頭的各部分含義

我們來看一下ip的頭的結構 ip的頭每行有32位,分為版本,頭長度,區分服務等十多項內容。第乙個版本,記錄ip頭為ipv4的頭還是ipv6的頭。如果是ipv4的頭往往為4,如果是ipv6的頭則是6.第二個ihl為ip head length 也就是頭長度,以位元組計數。區分服務指的是對於不同的型別的...

URL各部分含義。

url的一般語法格式為 帶方括號的為可選項 protocol hostname port path parameters query fragment protocol 協議 指定使用的傳輸協議,下表列出 protocol 屬性的有效方案名稱。最常用的是http協議,它也是目前www中應用最廣的協議...

JS獲取URL各部分值

乙個url http www.abc.cn htm 1.html 獲取url各部分值 window.location.href 獲取完整url 即http www.abc.cn htm 1.html window.location.protocol 獲取url協議部分,即http window.lo...