參考地址: https://developer.mozilla.org/zh-CN/docs/W...
版本區別
- HTTP/0.9 : 單行協議
- HTTP/1.0 : 構建可擴充套件性
- HTTP/1.1 標準協議
- 連線可以複用,節省了多次開啟TCP連線載入網頁文件資源的時間。
- 增加流水線操作,允許在第一個應答被完全傳送之前就傳送第二個請求,以降低通訊延遲。
- 支援響應分塊。
- 引入額外的快取控制機制。
- 引入內容協商機制,包括語言,編碼,型別等,並允許客戶端和伺服器之間約定以最合適的內容進行交換。
- 感謝Host頭,能夠使不同域名配置在同一個IP地址的伺服器上。
- HTTP2/
- HTTP/2是二進位制協議而不是文字協議。不再可讀,也不可無障礙的手動建立
- 這是一個複用協議。並行的請求能在同一個連結中處理,移除了HTTP/1.x中順序和阻塞的約束。
- 壓縮了headers。因為headers在一系列請求中常常是相似的,其移除了重複和傳輸重複資料的成本。
- 其允許伺服器在客戶端快取中填充資料,通過一個叫伺服器推送的機制來提前請求。
快取
- 禁止快取: 不得儲存客戶端或服務端響應的內容
Cache-Control: no-store
Cache-Control: no-cache, no-store, must-revalidate
- 強制確認快取:使用副本之前伺服器端都會驗證請求中所描述的快取是否過期
Cache-Control: no-cache
- 公共快取: 響應可以被任何中間人快取 :例如 (中間代理,CDN)
Cache-Control: public
- 私有快取:響應是專用於某單個使用者的 (預設私有)
Cache-Control: private
- 快取過期:響應時間 + 快取時間 是否大於 當前時間
Cache-Control: max-age=31536000
- 確認快取:本地未過期使用本地副本。過期則去伺服器端校驗
Cache-Control: must-revalidate
Cookie
- 會話期: 瀏覽器關閉之後它會被自動刪除
Cookie: yummy_cookie=choco; tasty_cookie=strawberry
- 持久期: 指定一個特定的過期時間
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
- Secure 和 HttpOnly 標記 :secure -> 只能通過HTTPS協議傳送 ; HttpOnly -> 無法通過指令碼(javascirpt)訪問
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
- 作用域 : Domain 和 Path 標識定義了Cookie的作用域:即Cookie應該傳送給哪些URL
訪問控制(CORS)
- 跨網站請求 :
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
訊息頭
- 一般訊息頭 : 同時適用於請求和訊息的響應, 但與最終訊息主體中傳輸的資料無關
Remote Address
: 請求的遠端地址Referrer Policy
: 來源請求資訊no-referrer
: 不傳遞 Referrer 報頭的值no-referrer-when-downgrade
: 當發生降級( 比如從 https:// 跳轉到 http:// )時same-origin
: 同源,即當協議、域名和埠(如果有一方指定的話)都相同origin
: 將當前頁面過濾掉引數及路徑部分,僅將協議、域名和埠傳遞unsafe-url
: 任意情況下,都傳送當前頁的全部地址到 ReferrerKeep-Alive
: 暗示請求者連線狀態。 超時時長和最大連線數
- 請求頭 : 包含更多有關獲取的資源和客戶端本身資訊的訊息頭
Accept
: 告知伺服器 ,客戶端能處理的內容型別Accept-Encoding
: 告知伺服器, 傳輸資料應採用那種加密方式Accept-Language
: 客戶端宣告它可以理解的自然語言Accept-Charset
: 客戶端宣告可以處理的字符集型別Pragma
: 用於向後相容 HTTP1.0協議的伺服器Connection
: 決定當前的事務完成後,是否會關閉網路連線keep-alive
: 持久close
: 關閉
Referer
: 當前請求頁面的來源頁面的地址Upgrade-Insecure-Requests
: 客戶端優先選擇加密及身份驗證User-Agent
: 發起請求的使用者代理資訊Content-Location
: 返回資料的實際地址 ( 不需要協商 )Access-Control-Request-Headers
: 預檢請求 (真正的請求採用哪些首部欄位)From
: 傳送方聯絡方式Proxy-Authorization
: 使用者代理提供給代理伺服器的用於身份驗證的憑證If-Range
: 用於斷點續傳的下載過程中
- 響應頭 : 包含有關響應的補充資訊, 位置資訊,版本
Content-Type
: 告訴客戶端實際傳送的資料型別Transfer-Encoding
: 告訴客戶端安全傳遞採用的編碼格式chunked
: 資料以一系列分塊的形式進行傳送deflate
: 採用 zlib 結構gzip
: 表示採用 Lempel-Ziv coding 壓縮演算法identity
: 未經過壓縮和修改
Vary
: 告訴客戶端如何進行篩選, 快取是否可用Expires
: 響應的過期時間X-Ua-Compatible
: 以哪個低版本的IE瀏覽器來渲染頁面Location
: 告知客戶端頁面重新定向至新的地址Access-Control-Allow-Headers
: 預檢請求 (列出真正請求的首部資訊)Access-Control-Allow-Credentials
: 是否可將請求的響應暴露給頁面Access-Control-Allow-Origin
: 響應資源是否共享Content-Range
: 顯示的是一個資料片段在整個檔案中的位置WWW-Authenticate
: 定義了使用何種驗證方式去獲取對資源的連線ETag
: 資源的特定版本的識別符號 (加密) 避免快取碰撞Retry-After
: 使用者代理需要等待多長時間之後才能繼續傳送請求Clear-Site-Data
: 清除當前遊覽網站的資料 ( cookie, 儲存, 快取 )cache
: 刪除響應的本地快取資料cookies
: 刪除響應的本地所有cookiestorage
: 刪除響應的所有DOM儲存executionContexts
: 服務端希望瀏覽器重新載入本請求*
Server
: 伺服器的版本資訊X-Content-Type-Options
: 提醒遊覽器遵循 Content-Type 的設定
- 實體頭 : 包含更多主體資訊
Content-Length
: 用來指定傳送方和接收方訊息主體大小Content-Disposition
: 內容以何種形式展示inline
: 訊息體會以頁面的一部分或者整個頁面的形式展示attachment
: 訊息體應該被下載到本地filename
: 指定名稱
狀態碼
- 資訊響應
100
: 迄今為止的所有內容都是可行的102
: 伺服器已收到並正在處理該請求,但沒有響應可用
- 成功響應
200
: 請求成功201
: 請求成功, 並建立一個新的資源 ( PUT請求之後傳送的響應 )202
: 請求已經接受到, 但還未響應204
: 伺服器成功處理了請求,但不需要返回任何實體內容205
: 伺服器成功處理了請求, 不返回任何實體內容。 但需要請求者重置文件檢視206
: 實現斷點續傳,大檔案分段下載的響應
- 重定向
300
: 使用者或瀏覽器能夠自行選擇一個首選的地址進行重定向301
: 被請求的資源已永久移動到新位置302
: 請求的資源現在臨時從不同的 URI 響應請求304
: 自上次訪問以來或者根據請求的條件並沒有改變
- 客戶端響應
400
: 語義有誤,當前請求無法被伺服器理解401
: 當前請求需要使用者認證403
: 伺服器已經理解請求,但是拒絕執行它404
: 資源未在伺服器上找到405
: 請求行中指定的請求方法不能被用於請求相應的資源406
: 請求的資源的內容特性無法滿足請求頭中的條件,因而無法生成響應實體。408
: 請求超時410
: 請求的資源在伺服器上已不可用411
: 伺服器拒絕在沒有定義 Content-Length 頭的情況下接受請求413
: 請求提交的實體資料大小超過了伺服器願意或者能夠處理的範圍414
: 請求的URI 長度超過了伺服器能夠解釋的長度415
: 請求中提交的實體並不是伺服器中所支援的格式416
: 請求頭包含Range 請求頭, 同時請求中又沒有定義 If-Range 請求頭429
: 使用者在給定的時間內傳送了太多請求(“限制請求速率”)451
: 使用者請求非法頁面
- 服務端響應
500
: 伺服器故障503
: 伺服器沒有準備好處理請求504
: 伺服器作為閘道器,不能及時得到響應時返回此錯誤程式碼505
: 伺服器不支援請求中使用的HTTP協議507
: 伺服器有內部配置錯誤508
: 伺服器在處理請求時檢測到無限迴圈。510
: 伺服器需要對請求進一步擴充套件才能實現它。511
: 客戶端需要進行身份驗證才能獲得網路訪問許可權
本作品採用《CC 協議》,轉載必須註明作者和本文連結