http報文常見的請求頭、響應頭


http報文常見的請求頭

1.Accept

Accept: text/html  瀏覽器可以接受服務器回發的類型為 text/html。

Accept: /   代表瀏覽器可以處理所有類型,(一般瀏覽器發給服務器都是發這個)。

2.Accept-Encoding

Accept-Encoding: gzip, deflate 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip,deflate),(注意:這不是只字符編碼)。

3.Accept-Language

Accept-Language:zh-CN,zh;q=0.9  瀏覽器申明自己接收的語言。

4.Connection

Connection: keep-alive  當一個網頁打開完成后,客戶端和服務器之間用於傳輸HTTP數據的TCP連接不會關閉,如果客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經建立的連接。

Connection: close 代表一個Request完成后,客戶端和服務器之間用於傳輸HTTP數據的TCP連接會關閉, 當客戶端再次發送Request,需要重新建立TCP連接。

5.Host(發送請求時,該報頭域是必需的)

Host:www.baidu.com 請求報頭域主要用於指定被請求資源的Internet主機和端口號,它通常從HTTP URL中提取出來的。

6.Referer

Referer:https://www.baidu.com/?start=1當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器籍此可以獲得一些信息用於處理。

7.User-Agent

User-Agent:Mozilla/...,告訴HTTP服務器, 客戶端使用的操作系統和瀏覽器的名稱和版本。

8.Cache-Control

Cache-Control:private 默認為private  響應只能夠作為私有的緩存,不能再用戶間共享

Cache-Control:public 響應會被緩存,並且在多用戶間共享。正常情況, 如果要求HTTP認證,響應會自動設置為 private.

Cache-Control:must-revalidate  響應在特定條件下會被重用,以滿足接下來的請求,但是它必須到服務器端去驗證它是不是仍然是最新的。

Cache-Control:no-cache  響應不會被緩存,而是實時向服務器端請求資源。

Cache-Control:max-age=10 設置緩存最大的有效時間,但是這個參數定義的是時間大小(比如:60)而不是確定的時間點。單位是[秒 seconds]。

Cache-Control:no-store 在任何條件下,響應都不會被緩存,並且不會被寫入到客戶端的磁盤里,這也是基於安全考慮的某些敏感的響應才會使用這個。

9.Cookie

Cookie是用來存儲一些用戶信息以便讓服務器辨別用戶身份的(大多數需要登錄的網站上面會比較常見),比如cookie會存儲一些用戶的用戶名和密碼,當用戶登錄后就會在客戶端產生一個cookie來存儲相關信息,這樣瀏覽器通過讀取cookie的信息去服務器上驗證並通過后會判定你是合法用戶,從而允許查看相應網頁。當然cookie里面的數據不僅僅是上述范圍,還有很多信息可以存儲是cookie里面,比如sessionid等。

10.Range(用於斷點續傳)

Range:bytes=0-5 指定第一個字節的位置和最后一個字節的位置。用於告訴服務器自己想取對象的哪部分。

http報文常見的響應頭

1.Cache-Control(對應請求中的Cache-Control)

Cache-Control:private 默認為private 響應只能夠作為私有的緩存,不能再用戶間共享

Cache-Control:public 瀏覽器和緩存服務器都可以緩存頁面信息。

Cache-Control:must-revalidate 對於客戶機的每次請求,代理服務器必須想服務器驗證緩存是否過時。

Cache-Control:no-cache 瀏覽器和緩存服務器都不應該緩存頁面信息。

Cache-Control:max-age=10  是通知瀏覽器10秒之內不要煩我,自己從緩沖區中刷新。

Cache-Control:no-store 請求和響應的信息都不應該被存儲在對方的磁盤系統中。

2.Content-Type

Content-Type:text/html;charset=UTF-8 告訴客戶端,資源文件的類型,還有字符編碼,客戶端通過utf-8對資源進行解碼,然后對資源進行html解析。通常我們會看到有些網站是亂碼的,往往就是服務器端沒有返回正確的編碼。

3.Content-Encoding

Content-Encoding:gzip 告訴客戶端,服務端發送的資源是采用gzip編碼的,客戶端看到這個信息后,應該采用gzip對資源進行解碼。

4.Date

Date: Tue, 03 Apr 2020 03:52:28 GMT 這個是服務端發送資源時的服務器時間,GMT是格林尼治所在地的標准時間。http協議中發送的時間都是GMT的,這主要是解決在互聯網上,不同時區在相互請求資源的時候,時間混亂問題。

5.Server

Server:Tengine/1.4.6  這個是服務器和相對應的版本,只是告訴客戶端服務器信息。

6.Transfer-Encoding

Transfer-Encoding:chunked 這個響應頭告訴客戶端,服務器發送的資源的方式是分塊發送的。一般分塊發送的資源都是服務器動態生成的,在發送時還不知道發送資源的大小,所以采用分塊發送,每一塊都是獨立的,獨立的塊都能標示自己的長度,最后一塊是0長度的,當客戶端讀到這個0長度的塊時,就可以確定資源已經傳輸完了。

7.Expires

Expires:Sun, 1 Jan 1994 01:00:00 GMT 這個響應頭也是跟緩存有關的,告訴客戶端在這個時間前,可以直接訪問緩存副本,很顯然這個值會存在問題,因為客戶端和服務器的時間不一定會都是相同的,如果時間不同就會導致問題。所以這個響應頭是沒有Cache-Control:max-age=*這個響應頭准確的,因為max-age=date中的date是個相對時間,不僅更好理解,也更准確。

8.Last-Modified

Last-Modified: Dec, 26 Dec 2019 17:30:00 GMT 所請求的對象的最后修改日期(按照 RFC 7231 中定義的“超文本傳輸協議日期”格式來表示)

9.Connection

Connection:keep-alive 這個字段作為回應客戶端的Connection:keep-alive,告訴客戶端服務器的tcp連接也是一個長連接,客戶端可以繼續使用這個tcp連接發送http請求。

10.Etag

ETag: "637060cd8c284d8af7ad3082f209582d" 就是一個對象(比如URL)的標志值,就一個對象而言,比如一個html文件,如果被修改了,其Etag也會別修改,所以,ETag的作用跟Last-Modified的作用差不多,主要供WEB服務器判斷一個對象是否改變了。比如前一次請求某個html文件時,獲得了其 ETag,當這次又請求這個文件時,瀏覽器就會把先前獲得ETag值發送給WEB服務器,然后WEB服務器會把這個ETag跟該文件的當前ETag進行對比,然后就知道這個文件有沒有改變了。

11.Refresh

Refresh: 5; url=http://baidu.com  用於重定向,或者當一個新的資源被創建時。默認會在5秒后刷新重定向。

12.Access-Control-Allow-Origin

Access-Control-Allow-Origin: *   號代表所有網站可以跨域資源共享,如果當前字段為那么Access-Control-Allow-Credentials就不能為true

Access-Control-Allow-Origin: www.baidu.com 指定哪些網站可以跨域資源共享

13.Access-Control-Allow-Methods

Access-Control-Allow-Methods:GET,POST,PUT,DELETE  允許哪些方法來訪問

14.Access-Control-Allow-Credentials

Access-Control-Allow-Credentials: true  是否允許發送cookie。默認情況下,Cookie不包括在CORS請求之中。設為true,即表示服務器明確許可,Cookie可以包含在請求中,一起發給服務器。這個值也只能設為true,如果服務器不要瀏覽器發送Cookie,刪除該字段即可。如果access-control-allow-origin為*,當前字段就不能為true

15.Content-Range

Content-Range: bytes 0-5/7877 指定整個實體中的一部分的插入位置,它也指示了整個實體的長度。在服務器向客戶返回一個部分響應,它必須描述響應覆蓋的范圍和整個實體長度。

https://www.bilibili.com/read/cv6259072/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM