《圖解HTTP》筆記-HTTP協議

請求響應



HTTP方法

GET 指定的資源經伺服器端解析後返回響應內容

POST 方法用來傳輸實體的主體,

PUT 方法傳輸檔案,自身不帶驗證機制,任何人都可以上傳檔案 , 存在安全性問題,因此一般的 Web 網站不使用該方法。若配合 Web 應用程式的驗證機制,或架構設計採用REST(REpresentational State Transfer,表徵狀態轉移)標準的同類Web 網站,就可能會開放使用 PUT 方

HEAD 和 GET 方法一樣,只是不返回報文主體部分。用於確認URI 的有效性及資源更新的日期時間等。

DELETE 方法按請求 URI 刪除指定的資源,也不帶驗證,不安全,要配合web驗證或REST標準才可能開放使用。

OPTIONS 方法用來查詢針對請求 URI 指定的資源支援的方法。

TRACE 方法是讓 Web 伺服器端將之前的請求通訊環回給客戶端的方法。TRACE 方法本來就不怎麼常用,再加上它容易引發
XST(Cross-Site Tracing,跨站追蹤)攻擊,通常就更不會用到了。

CONNECT 方法要求在與代理伺服器通訊時建立隧道,實現用隧道協議進行 TCP 通訊。主要使用 SSL(Secure Sockets Layer,安全套接層)和 TLS(Transport Layer Security,傳輸層安全)協議把通訊內容加密後經網路隧道傳輸。

持久連線


持久連線 1.1版本中預設開啟,只要任意一端沒有明確提出斷開連線,則保持 TCP 連線狀態好處在於減少了 TCP 連線的重複建立和斷開所造成的額外開銷,減輕了伺服器端的負載。

管線化 不用等待一對請求響應完成後繼續下一對,加快效率。

HTTP是不儲存狀態的協議



不儲存狀態為了更快地處理大量事務,確保協議的可伸縮性,而特意把 HTTP 協議設計成如此簡單的,但是也要記錄登陸資訊等,所以有了Cookie

Cookie

Cookie 會根據從伺服器端傳送的響應報文內的一個叫做 Set-Cookie 的首部欄位資訊,通知客戶端儲存 Cookie。當下次客戶端再往該伺服器傳送請求時,客戶端會自動在請求報文中加入 Cookie 值後傳送出去。伺服器端發現客戶端傳送過來的 Cookie 後,會去檢查究竟是從哪一個客戶端發來的連線請求,然後對比伺服器上的記錄,最後得到之前的狀態資訊。