關於經常使用的http請求頭以及響應頭詳解

1、經常使用的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/?tn=62095104_8_oem_dg 當瀏覽器向web服務器發送請求的時候,通常會帶上Referer,告訴服務器我是從哪一個頁面連接過來的,服務器籍此能夠得到一些信息用於處理。

7.User-Agent

  • User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 告訴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等。html

10.Range(用於斷點續傳)

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

2、經常使用的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 2018 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 2000 01:00:00 GMT 這個響應頭也是跟緩存有關的,告訴客戶端在這個時間前,能夠直接訪問緩存副本,很顯然這個值會存在問題,由於客戶端和服務器的時間不必定會都是相同的,若是時間不一樣就會致使問題。因此這個響應頭是沒有Cache-Control:max-age=*這個響應頭準確的,由於max-age=date中的date是個相對時間,不只更好理解,也更準確。

8.Last-Modified

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

9.Connection

  • Connection:keep-alive 這個字段做爲迴應客戶端的Connection:keep-alive,告訴客戶端服務器的tcp鏈接也是一個長鏈接,客戶端能夠繼續使用這個tcp鏈接發送http請求。

10.Etag

  • ETag: "737060cd8c284d8af7ad3082f209582d" 就是一個對象(好比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 指定整個實體中的一部分的插入位置,他也指示了整個實體的長度。在服務器向客戶返回一個部分響應,它必須描述響應覆蓋的範圍和整個實體長度。
相關文章
相關標籤/搜索