HTTP 基礎知識

1、HTTP 超文本傳輸協議
HTTP 是基於客戶端/服務端(C/S)的架構模型,經過一個可靠的連接來交換信息,是一個無狀態的請求/響應協議。 一個HTTP "客戶端"是一個應用程序(Web瀏覽器或其餘任何客戶端),經過鏈接到服務器達到向服務器發送一個或多個HTTP的請求的目的。 一個HTTP "服務器"一樣也是一個應用程序(一般是一個Web服務,如Apache Web服務器或IIS服務器等),經過接收客戶端的請求並向客戶端發送HTTP響應數據。 HTTP 使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和創建鏈接。 html

HTTP 請求到服務器的請求消息包括如下格式:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。 瀏覽器

HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD方法。 緩存

HTTP1.1 新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。服務器

2、HTTP 請求方式:架構

複製代碼
GET     請求指定的頁面信息,並返回實體主體。
HEAD    相似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
POST    向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會致使新的資源的創建和/或已有資源的修改。
PUT     從客戶端向服務器傳送的數據取代指定的文檔的內容。
DELETE    請求服務器刪除指定的頁面。
CONNECT    HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器。
OPTIONS    容許客戶端查看服務器的性能。
TRACE    回顯服務器收到的請求,主要用於測試或診斷。
複製代碼

3、HTTP 返回狀態碼---《關於HTTP返回碼post

1xx    處理信息,服務器收到請求,須要請求者繼續執行操做;
2xx    請求成功,操做被成功接收並處理;
3xx    重定向,須要進一步的操做以完成請求;
4xx    客戶端錯誤,請求包含語法錯誤或沒法完成請求;
5xx    服務器錯誤,服務器在處理請求的過程當中發生了錯誤;

4、HTTP的交互流程

步驟一:客戶端和服務器端創建鏈接 性能

步驟二: 客戶端發送請求數據到服務器端(HTTP協議) 測試

步驟三: 服務器端接收到請求後,進行處理,而後將 處理結果響應客戶端(HTTP協議) spa

步驟四: 關閉客戶端和服務器端的鏈接(HTTP1.1後不會當即關閉) 3d

二丶HTTP協議與其餘協議之間的交互

HTTP協議是TCP/IP協議棧的一部分,按照TCP/IP協議分層理念,其位於應用層。一個完整的通訊流程必然是由許多協議相互配合完成。本節將介紹HTTP協議是如何配合其餘協議完瀏覽器發出請求到獲取響應的通訊過程

 

 

  1. DNS域名解析過程
    DNS是域名解析系統,域名解析系統的只要目的就是完成域名地址到IP地址的轉換。此處引用一張圖來介紹DNS域名解析過程(圖片來源)。


    結合上圖,以www.baidu.com這個域名爲例。在瀏覽器中輸入該域名後,會通過以下域名解析過程。
    • 從本機的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收到解析結構後,緩存該解析結果。下次碰見相同的解析請求時。直接使用緩存結果便可。
  2. 協議封包/解包過程的過程
    本文中將HTTP封包,TCP封包,IP封裝以及對應的解包的過程統稱爲協議封包和解包過程。其通常過程以下:


相關文章
相關標籤/搜索