天天看點

HTTP學習筆記8 實體首部字段及其他首部字段(Cookie)

實體首部字段

①Allow:告知用戶端,伺服器能夠支援的所有HTTP方法

當伺服器收到不支援的HTTP方法請求時,就會傳回405 Method Not Allowed響應,并添加Allow首部

Allow:GET,HEAD
           

②Content-Encoding:告知用戶端,伺服器對實體主體部分使用的内容編碼方式

Content-Encoding:gzip
           

③Content-Language:告知用戶端,實體主體使用的自然語言類型

④Content-Length:表明實體主體的傳輸大小,機關為位元組

當對實體主體進行内容編碼時,傳輸長度跟消息的實體長度可能會不同,傳遞不正确的

Content-Length

值會導緻傳輸的資料被截斷或請求延遲,具體可以看看部落格1部落格2。當傳輸編碼方式為

chunked

分塊傳輸時,此字段被忽略部落格3

⑤Content-Location:表示封包主體傳回資源所對應的URI位址

Content-Location:https://www.zjw666.top/index.htm
           

⑥Content-MD5:對封包主體執行MD5算法後,經base64編碼獲得了一串值

用戶端在接收到帶有該字段的請求時,會對接收的封包主體再次執行相同的MD5算法,并将結果與接收的該字段值進行比對,以此來檢查封包主體在傳輸過程中是否完整。

由于MD5值也可能被篡改,則也不一定安全

⑦Content-Range:針對範圍請求,在響應中使用,告知用戶端傳回實體的哪個部分符合範圍請求

Content-Range:bytes 5001-10000/10000
           

⑧Content-Type:說明實體主體内對象的媒體類型

與Accept字段類似,字段值使用type/subtype指派

參數charset使用字元集指派

Content-Type:text/html; charset=UTF-8
           

⑨Expires:告知用戶端或緩存伺服器,傳回資源失效的日期時間

資源過期之後,相同的請求将會轉發給源伺服器

當首部字段Cache-Control中指定有max-age時,會忽略Expires

Expires:Wed, 04 Jul 2012 08:26:05 GMT
           

⑩Last-Modified:指明資源最終修改的日期時間

其他首部字段

①Set-Cookie:響應首部字段,伺服器準備開始管理用戶端狀态時,會事先告知各種資訊

屬性:

  • NAME=VALUE 賦予Cookie的名稱和值,必需項
  • expires=DATE 指定Cookie的過期日期時間,若不指定,則預設為浏覽器關閉時失效
  • path=PATH 限制指定Cookie的發送範圍的檔案目錄,若不指定,則預設為文檔所在的檔案目錄
  • domain=域名 作為Cookie适用對象的域名,若不指定,則預設為伺服器域名
  • secure 限制Web頁面隻有在HTTPS安全連接配接時,才可以發送Cookie
  • HttpOnly 使Javascript腳本無法擷取Cookie,主要目的是為了防止跨站腳本供給XSS
Set-Cookie:status=enable;expires=Wed, 04 Jul 2012 08:26:05 GMT; path=/; domain=.zjw666.top; secure; HttpOnly
           

②Cookie:請求首部字段,當用戶端想獲得HTTP狀态管理支援時,就會在請求中包含從伺服器收到的Cookie,可以同時發送多個Cookie

Cookie:status=enable
           

③X-Frame-Options:響應首部字段,用于控制網站内容在是否可以在Web網站的Frame等标簽内的顯示問題,防止點選劫持

clickjacking

可選值:

  • DENY 拒絕
  • SAMEORIGIN 僅允許同源域名下所有頁面的frame标簽加載該頁面
  • allow-from https://example.com/

④X-XSS-Protection:響應首部字段,控制浏覽器XSS防護機制開關

可選值:

  • 0 防護關閉
  • 1 防護開啟

⑤DNT:請求首部字段,Do Not Track 拒絕個人資訊被收集

可選值:

  • 0 同意被追蹤
  • 1 拒絕被追蹤

繼續閱讀