一、HTTP 超文本傳輸協定
HTTP 是基于用戶端/服務端(C/S)的架構模型,通過一個可靠的連結來交換資訊,是一個無狀态的請求/響應協定。
一個HTTP "用戶端"是一個應用程式(Web浏覽器或其他任何用戶端),通過連接配接到伺服器達到向伺服器發送一個或多個HTTP的請求的目的。
一個HTTP "伺服器"同樣也是一個應用程式(通常是一個Web服務,如Apache Web伺服器或IIS伺服器等),通過接收用戶端的請求并向用戶端發送HTTP響應資料。
HTTP 使用統一資源辨別符(Uniform Resource Identifiers, URI)來傳輸資料和建立連接配接。
HTTP 請求到伺服器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求資料四個部分組成。
HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
二、HTTP 請求方式:

GET 請求指定的頁面資訊,并傳回實體主體。
HEAD 類似于get請求,隻不過傳回的響應中沒有具體的内容,用于擷取報頭
POST 向指定資源送出資料進行處理請求(例如送出表單或者上傳檔案)。資料被包含在請求體中。POST請求可能會導緻新的資源的建立和/或已有資源的修改。
PUT 從用戶端向伺服器傳送的資料取代指定的文檔的内容。
DELETE 請求伺服器删除指定的頁面。
CONNECT HTTP/1.1協定中預留給能夠将連接配接改為管道方式的代理伺服器。
OPTIONS 允許用戶端檢視伺服器的性能。
TRACE 回顯伺服器收到的請求,主要用于測試或診斷。

三、HTTP 傳回狀态碼---《關于HTTP傳回碼》
1xx 處理資訊,伺服器收到請求,需要請求者繼續執行操作;
2xx 請求成功,操作被成功接收并處理;
3xx 重定向,需要進一步的操作以完成請求;
4xx 用戶端錯誤,請求包含文法錯誤或無法完成請求;
5xx 伺服器錯誤,伺服器在處理請求的過程中發生了錯誤;
四、HTTP的互動流程
步驟一:用戶端和伺服器端建立連接配接
步驟二: 用戶端發送請求資料到伺服器端(HTTP協定)
步驟三: 伺服器端接收到請求後,進行處理,然後将 處理結果響應用戶端(HTTP協定)
步驟四: 關閉用戶端和伺服器端的連接配接(HTTP1.1後不會立即關閉)
二丶HTTP協定與其他協定之間的互動
HTTP協定是TCP/IP協定棧的一部分,按照TCP/IP協定分層理念,其位于應用層。一個完整的通信流程必然是由許多協定互相配合完成。本節将介紹HTTP協定是如何配合其他協定完浏覽器送出請求到擷取響應的通信過程
-
DNS域名解析過程
DNS是域名解析系統,域名解析系統的隻要目的就是完成域名位址到IP位址的轉換。此處引用一張圖來介紹DNS域名解析過程(圖檔來源)。
結合上圖,以www.baidu.com這個域名為例。在浏覽器中輸入該域名後,會經過如下域名解析過程。HTTP 基礎知識 -
從本機的host檔案中檢查域名和IP位址的映射。host檔案預設保留了
localhost->127.0.0.1這個映射關系
- host檔案中不存在解析關系時,檢查浏覽器是否存在解析緩存,若命中則使用解析緩存,否則将解析請求轉發給local DNS(local DNS是服務局部區域的域名解析伺服器).
- local DNS先檢查自身是否存在該域名解析緩存,若命中傳回解析結果。否則将解析請求轉發給ROOT DNS(根域名伺服器)。
- 根域名伺服器,檢查到請求解析的域名是www.baidu.com。那麼傳回解析頂級域名baidu.com的gTLD域名伺服器位址。
- localDNS接收到根域名傳回的gTLD域名伺服器位址後,将解析請求再次轉發給該域名伺服器
- gTLD域名伺服器接收到www.baidu.com的域名請求後,傳回二級域名www.baidu.com對應的Name DNS伺服器位址。
- local DNS收到來自gTLD的響應後,再次将域名解析結果傳遞給Name DNS伺服器。
- Name DNS伺服器收到www.baidu.com的域名解析請求後,發現正屬于自身所管轄的解析範圍。是以查找域名和IP位址映射關系,将解析結果返local DNS。
- local DNS收到解析結構後,緩存該解析結果。下次遇見相同的解析請求時。直接使用緩存結果即可。
-
-
HTTP 基礎知識