1. 程式人生 > >http協議基礎(十)實體首部欄位

http協議基礎(十)實體首部欄位

1、定義

包含在請求和響應中的實體部分所使用的首部,用於補充內容的更新時間等與實體相關的資訊

2、Allow

通知客戶端能夠支援的Request-URI指定資源的所有http方法:如果伺服器接收到不支援的方法,會返回狀態碼405Method Not Allowed作為響應返回

Allow:GET, HEAD

 

3、Content-Encoding

告知客戶端伺服器對實體的主體部分的選用的內容編碼方式

內容編碼指在不丟失實體資訊的前提下所進行的壓縮

主要採用以下這四種內容編碼方式

gizp,conpress,deflate,identity

Content-Encoding: gizp

 

4、Content-Lanuage

告知客戶端實體主體使用的自然語言(優先接收的語言)

Content-Lanuage: zh-CN

 

5、Content-Length

表明實體主體部分的大下(單位是位元組)

若對實體主體進行編碼傳輸,不能使用該欄位

Content-Length: 15000

 

6、Content-Location

給出了與報文主體部分相對應的URI。與Location不同,該欄位表示的是報文主體返回資源的URI

Content-Location: http://www.baidu/com/index-miss.html

 

7、Content-MD5

由一串由MD5演算法生成的值,其目的在於檢查報文 主體在傳輸中是否保持完整,以及確認傳輸到達。 

Content-MD5: OFJKGKLDFUIGNG35565FGNHLDGNH==

 

8、Content-Range

告知客戶端作為響應返回的實體的哪個部分符合範圍請求,(單位:位元組),表示當前傳送部分及整個實體大小

Content-Range: bytes 5001-10000/10000

 

9、Expires

告知客戶端資源失效的日期

如果首部欄位存在Cache-Control有指定max-age指定時,會優先處理max-age指令

Expires: Wed, 04 Jul 2016 09:26:05 GMT

 

10、Last-Modified

指明資源的最終修改的時間

Last-Modified: Wed, 04 Jul 2016 09:26:05 GMT

 

 

這部分主要是附帶說說,一般工作中不常用到,但瞭解也是很有好處的 -  -

為Cookie服務的首部欄位

Cookie的工作機制是使用者識別及狀態管理。

實現原理:方便管理使用者狀態,通過web瀏覽器將一些資料臨時寫入使用者的計算機內,當用戶訪問時可通過通訊方式取回之前傳送的Cookle

        呼叫Cookie的時候,由於可以呼叫Cookie的有效期,以及傳送方的域、路徑、協議等資訊,所以正規釋出的Cookie不是因為來自其他web站點和攻擊者的攻擊而洩漏

為Cookle服務的首部欄位:

 

1、Set-Cookie欄位的屬性:

1)expires

指定瀏覽器可傳送Cookie的有效期

若不指定則預設為會話時間段內

一旦Cookie從服務端傳送到客戶端,伺服器就不存在可顯式刪除Cookie的方法,但可通過覆蓋已過期的Cookie,實現對客戶端的實質性刪除

 

2)path

用於限制指定Cookie傳送範圍的檔案目錄

 

3)domain

通過該屬性指定的域名可做到與結尾匹配一致

除了針對具體指定的多個域名傳送的Cookie外,不指定domain屬性顯得更安全

 

4)secure

限制web介面僅在HTTPS安全連線時,才可以傳送Cookie

傳送Cookie時,指定屬性的方法如下:

Set-Cookie: name=value; secure

 

5)HttpCookie

Cookie的擴充套件功能,使JavaScript指令碼無法獲得Cookie。主要目的是為了防止跨站指令碼攻擊對Cookie的資訊竊取

傳送指定HttpOnly屬性的方法如下:

Set-Cookie: name=value; HttpOnly

 

2、Cookie

告知伺服器,客戶端想獲得http狀態管理支援時,就會在請求中包含從伺服器接收到的Cookie。接收多個時,同樣可以以多個傳送

 

 

 

到這裡基本關於http協議的基礎就整理完了,整個的思路大概就是對TCP/IP的介紹,握手,資料傳輸的方式以及幾種資料傳輸方法,請求響應報文的型別,欄位等知識。。。