HTTP協議之HTTP的結構

一.前言:

會使用電腦的人基本上都會使用IE/Firefox/Chrome等網頁瀏覽器的地址欄輸入url地址來訪問一個網站,那麼網站頁面是怎麼展示到用戶面前的呢?固然web頁面是不能憑空顯示出來的,瀏覽器根據用戶輸入的url地址向指定的web服務器請求資源,而後將請求的資源解析顯示到web頁面。那麼web瀏覽器又是怎樣經過url請求到web頁面的?web服務器又是怎麼響應瀏覽器的請求的?web瀏覽器是經過HTTP(HyperText Transfer Protocl)超文本傳輸協議做爲規範,來完成客戶端到服務器端的一系列流程。web

二.簡介:

Http協議是一種普遍流行的網絡應用層協議。設計HTTP最初的目的是爲了提供發佈和接收HTML頁面的方法。用於客戶端和服務器端通訊的通訊的規則的制定(所謂協議就是約定的規則,比如人與人之間的交流沒有約定的規則是沒法交流的).只要是遵照Http協議的瀏覽器,服務器之間就能夠進行通訊。瀏覽器

三.HTTP的特色:

  1. 支持客戶端/服務器模式服務器

  2. 簡單快速cookie

  3. 靈活網絡

  4. 無鏈接 所謂無鏈接是指默認http協議限制每一次鏈接只處理一個請求。服務器處理完客戶端的請求,並受到客戶端的應答後即斷開鏈接。app

  5. 無狀態 是指Http協議對事務處理沒有記憶能力,服務器不知道客戶端是什麼狀態,客戶端的每一請求都是獨立的,服務器根據請求,響應客戶端的請求,但不會記錄任何客戶端信息ide

四.Http優缺點:

http的無鏈接,採起這種方式能夠節約大量時間。可是隨着互聯網的發展,網頁不在是簡單的靜態頁面,須要處理大量的圖片等,這樣每一次訪問都須要創建一次鏈接效率很低。Http 1.1Keep-Alive 被提出用來解決這效率低的問題。網站

HTTP的無狀態這種特性有優勢也有缺點,優勢在於解放了服務器,每一次請求「點到爲止」不會形成沒必要要鏈接佔用,缺點在於每次請求會傳輸大量重複的內容信息。客戶端與服務器進行動態交互的 Web 應用程序出現以後,HTTP 無狀態的特性嚴重阻礙了這些應用程序的實現,畢竟交互是須要承前啓後的。兩種用於保持 HTTP 鏈接狀態的技術就應運而生了,一個是 Cookie,而另外一個則是 Session。url

五.HTTP協議的結構:

請求報文:
  1. 請求首部: 
    spa

  • 請求行:包含請求的方法,請求的URL和請求的HTTP版本

  • 請求首部字段:從客戶端向服務器端發送請求報文是使用的首部。補充說明了請求的附加內容、客戶端信息、響應內容優先級等信息。

  • 通用首部字段:請求報文和響應報文都會用到的首部

  • 實體首部字段:針對請求報文和響應報文實體部分使用的字段。補充說明了資源內容、更新時間等與實體有關的信息。

  • 其餘:如set-cookies等非Http協議的請求頭

空行:[CR+LF]由它來劃分

報文主體:應該被髮送的數據(並不必定要有報文主體)

響應報文:
  1. 報文首部: 

  • 狀態行:包含Http版本號,響應結果狀態碼和緣由語句

  • 響應首部字段:從服務器向客戶端返回響應豹紋是使用的首部。補充說明了響應的附加內容,也會要求客戶端附加額外的內容信息 。

  • 通用首部字段:同上

  • 實體首部字段:同上

  • 其餘:同上

空行:同上

報文主體:同上

Chrome請求www.baidu.com如圖: 
圖片

請求和響應的內容:

圖片

相關文章
相關標籤/搜索