HTTP協議詳解:瀏覽器
HTTP(超文本傳輸協議),是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。HTTP一般承載於TPC協議之上,有事也承載於TLS或者SSL協議層之上,這個時候就成了咱們常說的HTTPS。HTTP默認端口是80,HTTP默認端口是443。是一個客戶端發起請求,服務器響應請求的過程。在這個過程當中HTTP協議是一個無狀態,無鏈接的協議,同一個客戶端的此次請求和下次請求沒有對應關係。
這種協議模式很是簡單,同時也存在着問題。好比服務器不會主動向客戶端PUSH,無鏈接的協議是的TPC鏈接創建和斷開。到時交互效率不高,SPDY協議應運而生。SPDY協議須要客戶端瀏覽器和服務端同時支持,目前,應用SPDY協議的主要是GOOGLE產品,如Goole Plus.
HTTP協議是如何工做的?
瀏覽玩個是HTTP協議的主要應用,但不表明HTTP協議就只能應用於瀏覽網頁,只要同心的雙方否遵照HTTP協議就有用武之地。好比騰訊QQ,迅雷軟件都是使用了HTTP協議。
那麼HTTP協議是如何工做的呢?
首先,客戶端發送一個請求(request)給服務器,服務器在接收到這個請求後將生成一個響應(Request)返回給客戶端。一次HTTP操做成爲一個書屋,期工做過程可分爲四步:
客戶機和服務器創建鏈接。單擊某個超連接,HTTP協議開始工做
創建鏈接後,客戶機發送一個請求給服務器。格式爲:前邊是統一的資源標識符(URL),中間是協議的版本號,後邊是MIME信息(包括請求修飾符,客戶機信息和可能的內容)
服務器收到請求後,給予相應的的響應信息。格式爲:首先是一個狀態行(包括信息協議版本號、一個成功或錯誤的代碼),而後是MIME信息(包括服務器信息、實體信息、可能的內容)
客戶端接收到服務器返回的信息並顯示在用戶的顯示器上,而後客戶機已服務器斷開。
HTTP協議的主要概念
1.請求
在發起請求前,須要創建鏈接。
鏈接是一個傳輸層的實際環流,他創建在兩個相互同心的應用程序之間。在HTTP 1.1 協議中,request 和response 都有可能出現一個connection的投,其決定了當Client 和Server通訊時對於長連接的處理。
HPPT1.1.協議中,Client 和 Server 默認對方支持長連接,若是Client使用HTTP1.1協議,但又不想使用長連接,能夠再header中指明connection的值爲close;若是Server方也不想支持長連接,則在respone中說明connection 爲close。不管是Client好是Server方的connection爲close,都代表正在使用的TCP鏈接處理完畢以後會斷開 。之後Client再進行新的請求時必須創建TCP新的鏈接。
2.響應
3.報頭