閱讀792 返回首頁    go 阿裏雲 go 技術社區[雲棲]


HTTP消息頭

一、HTTP消息頭

1、通用信息頭
即能用於請求消息中,也能用於響應信息中,但與被傳輸的實體內容沒有關係的信息頭,如Data、Pragma
主要:Cache-Control、Connection、Data、Pragma、Trailer、Transfer-Encoding、Upgrade

Cache-Control指定請求和響應遵循的緩存機製。在請求消息或響應消息中設置 Cache-Control並不會修改另一個消息處理過程中的緩存處理過程。請求時的緩存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,響應消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。各個消息中的指令含義如下:
Public指示響應可被任何緩存區緩存。
Private指示對於單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許服務器僅僅描述當用戶的部分響應消息,此響應消息對於其他用戶的請求無效。
no-cache指示請求或響應消息不能緩存
no-store用於防止重要的信息被無意的發布。在請求消息中發送將使得請求和響應消息都不使用緩存。
max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。
min-fresh指示客戶機可以接收響應時間小於當前時間加上指定時間的響應。
max-stale指示客戶機可以接收超出超時期間的響應消息。如果指定max-stale消息的值,那麼客戶機可以接收超出超時期指定值之內的響應消息。

Date表示消息發送的時間,時間的描述格式由rfc822定義。Date:Mon,31Dec200104:25:57GMT。Date描述的時間表示世界標準時,換算成本地時間,需要知道用戶所在的時區。
Pragma用來包含實現特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1協議中,它的含義和Cache- Control:no-cache相同。

2、請求頭
用於在請求消息中向服務器傳遞附加信息,主要包括客戶機可以接受的數據類型,壓縮方法,語言,以及客戶計算機上保留的Cookie信息和發出該請求的超鏈接源地址等
主要:Accept、Accept-Encoding、Accept-Language、Host、User-Agent、Referer

Accept:瀏覽器可接受的MIME類型。
Accept-Charset:瀏覽器可接受的字符集。
Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式如gzip。Servlet能夠向支持gzip的瀏覽器返回經gzip編碼的HTML頁麵。這可以減少5到10倍的下載時間。
Accept-Language:瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。
Host:初始URL中的主機和端口。
User-Agent:瀏覽器類型,如果Servlet返回的內容與瀏覽器類型有關則該值非常有用。
Referer:包含一個URL,用戶從該URL代表的頁麵出發訪問當前請求的頁麵。

 

3、響應頭
用於在響應消息中向客戶端傳遞附加信息,包括服務程序的名稱,要求客戶端進行認證的方式,請求的資源已移動到新地址等
主要:Location、Server、WWW-Authenticate(認證頭)

Authorization:授權信息,通常出現在對服務器發送的WWW - Authenticate頭的應答中。
Location:重定向接收者到一個新URI地址。
Server:包含處理請求的原始服務器的軟件信息。此域能包含多個產品標識和注釋,產品標識一般按照重要性排序。

 

4、實體頭
用做實體內容的元信息,描述了實體內容的屬性,包括實體信息的類型,長度,壓縮方法,最後一次修改的時間和數據的有效期等
主要:Content-Encoding、Content-Language、Content-Length、Content-Location、Content-Type

 

5、擴展頭
主要:Refresh、Content-Disposition


二、一些例子

1、Content-Type的作用
該實體頭的作用是讓服務器告訴瀏覽器它發送的數據屬於什麼文件類型。
如當Content-Type的值設置為text/html和text/plain時,前者會讓瀏覽器把接收到的實體內容以HTML格式解析,後者會讓瀏覽器以普通文本解析.

 

2、Content-Disposition的作用
當Content-Type的類型為要下載的類型時,這個信息頭會告訴瀏覽器這個文件的名字和類型。
response.setHeader("Content-Type","video/x-msvideo");
response.setHeader("Content-Disposition", "attachment;filename=aaa.doc");
Content-Disposition中指定的類型是文件的擴展名,並且彈出的下載對話框中的文件類型圖片是按照文件的擴展名顯示的,點保存後,文件以filename的值命名,保存類型以Content中設置的為準。在設置Content-Disposition頭字段之前一定要設置Content-Type頭字段。

 

3、Authorization頭的作用
Authorization的作用是當客戶端訪問受口令保護時,服務器端會發送401狀態碼和WWW-Authenticate響應頭,要求客戶機使用Authorization來應答。
response.setStatus(401);
response.setHeader("WWW-Authenticate", "Basic realm=\"Tomcat Manager Application\"");

 

更多詳細頭信息詳解請參看原帖:

https://blog.csdn.net/lgl125/article/details/7234122

https://www.cnblogs.com/li0803/archive/2008/11/04/1324747.html

https://blog.csdn.net/kfanning/article/details/6062118

最後更新:2017-04-03 12:54:51

  上一篇:go [LeetCode]141.Linked List Cycle
  下一篇:go [LeetCode]83.Remove Duplicates from Sorted List