計算機與網絡設備要相互通信,雙方就必須基于相同的方法。比如,如何結束通信等規則都需要事先確定。不同的硬件、操作系統之間的通信,所有的這一切都需要一種規則。而我們就把這種規則稱之為協議
例如:HTTP舉例。
首先作為發送端的客戶端在應用層(HTTP協議)發出一個想要看某個web頁面的HTTP請求。
接著,為了傳輸方便,在傳輸層(TCP協議)把從應用層處收到的數據(HTTP請求報文)進行分割,并在各個報文上打上標記序號及端口號后轉發給網絡層。
在網絡層(IP協議),增加作為通信目的地的MAC地址后轉發給鏈路層。
有關協議
與HTTP關系密切的協議:IP、TCP和DNS
上述協議簡單作用
- IP網際協議位于網絡層。把各種數據包傳送到對方。
- TCP協議位于傳輸層,提供可靠地字節流服務。為了準確無誤地將數據送到目的地。
- DNS服務位于應用層,提供域名到IP地址之間的解析服務。
HTTP協議是一種無狀態協議,它不會對發送來的請求和響應都不會持久化處理。隨著web的發展需要保存用戶的狀態。于是就引入了Cookie技術。通過Cookie保存管理狀態。
Cookie技術通過請求和響應保溫中寫入Cookie信息來控制客戶端的狀態。
Cookie會根據從服務端發送的響應報文內的一個叫做Set-Cookie的首部字段信息,通知客戶端保存Cookie。當下次客戶端再往該服務器發送請求時,客戶端會自動在請求報文中加上Cookie值后發送出去。
服務器端發現客戶端發送過來的Cookie后,會去檢查究竟是從哪一個客戶端發來的連接請求,然后對比服務器上的記錄,最后得到之前的狀態信息。
HTTP的方法
-
GET:獲取資源
GET方法用于請求訪問已被URI識別的資源。指定的資源經服務器端解析后返回響應內容。當然GET方法也可以傳輸實體的主體,但是一般不用GET方法進行傳輸。.POST的安全性要比GET的安全性高,雖然URL的長度沒有限制,但是有的瀏覽器會對URL的長度限制。
-
POST:傳輸實體主體
傳輸實體的主體
-
PUT:傳輸文件
無驗證機制,上傳文件。
-
HEAD:獲取報文首部
不返回報文主體部分。用于確認URI的有效性以及資源更新的日期時間。
-
DELETE:刪除文件
無驗證機制,刪除文件。
-
OPTIONS:詢問支持的方法
查詢針對請求URI指定的資源支持的方法
-
TRACE:追蹤路徑
TRACE方法是讓Web服務器端將之前的請求通信回環給客戶端的方法。
-
CONNECT:要求隧道協議連接代理
CONNECT方法要求在與代理服務器通信時建立隧道,實現用隧道協議進行TCP通信。
HTTP狀態碼
類別 | 原因短語 | |
---|---|---|
1XX | Informational(信息性狀態碼 | 接收的請求正在處理 |
2XX | Success(成功狀態碼) | 請求正常處理完畢 |
3XX | Redirection(重定向狀態碼) | 需要進行附加操作以完成請求 |
4XX | Client Error(客戶端錯誤狀態碼) | 服務器無法處理請求 |
5XX | Server Error(服務器錯誤狀態碼) | 服務器處理請求錯誤 |