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的介紹,握手,資料傳輸的方式以及幾種資料傳輸方法,請求響應報文的型別,欄位等知識。。。