1. 程式人生 > 實用技巧 >網路基礎—— HTTP協議概述

網路基礎—— HTTP協議概述

Web資源與URI

Web伺服器是Web資源的宿主,Web資源是Web內容的源頭。最簡單的Web資源就是存放在Web伺服器檔案系統中的靜態檔案。隨著網際網路的發展,所提供的服務也越來越豐富,靜態資源已經滿足不了使用者的多樣化需求了,需要根據使用者需求動態生成相應資源。

為了讓客戶端可以指定想要訪問的資源,我們需要為Web伺服器資源設定統一資源識別符號(URI),URI可以在世界範圍內唯一標識並定位某個資源。

URL是URI的一種形式,意為統一資源定位符。它描述了特定伺服器上某資源的特定位置,可以明確說明如何從一個精確、固定的位置獲取資源。

URL大都遵循一下標準:

  • URL的第一部分稱為方案,說明了訪問資源所使用的協議型別,通常為http://
    https://
  • 第二部分給出了伺服器的域名/IP地址和埠號(預設80),比如www.baidu.com
  • 其餘部分指定的是URL的路徑資訊,比如 /static/images/aa.png

HTTP事務

一個完整的HTTP請求與處理過程稱之為HTTP事務。一個HTTP事務由一條請求命令(從客戶端發往伺服器)和一個響應結果(從伺服器發往客戶端)組成。

HTTP報文

HTTP報文是由一行一行的簡單純文字字串組成的,從Web客戶端發往伺服器的HTTP報文稱為請求報文,相對的,從伺服器發往客戶端的報文稱為響應報文:

請求報文和響應報文的格式類似,都由三部分組成:

  • 起始行:報文的第一行就是起始行,在請求報文中用來說明要做什麼,在響應報文中用來說明出現了什麼情況。
  • 首部欄位:起始行後面有零個或多個首部欄位,每個首部欄位包含一個名字和對應的值,為了便於解析,兩者之間用冒號分隔,在請求報文中我們將其稱作請求頭,在響應報文中我們將其稱作響應頭。
  • 主體:報文主體和首部欄位之間通過一個空行隔開,請求主體中包含了要傳送給web伺服器的資料(一般POST請求都會包含請求主體,GET請求引數都在URL裡面,請求主體一般為空),響應主體中包含了伺服器返回給客戶端的資料,一般是HTML文件或者JSON格式資料。

HTTP連線的建立

HTTP連線步驟如下:

  • 瀏覽器從URL中解析出伺服器域名
  • 瀏覽器將伺服器的域名替換為伺服器的IP地址(通過DNS獲取)
  • 瀏覽器將埠號從URL中解析出來(預設為80)
  • 瀏覽器建立一條與Web伺服器的TCP連線;
  • 瀏覽器向伺服器傳送一條HTTP請求報文
  • 伺服器收到瀏覽器請求後進行處理並回送一條HTTP響應報文
  • 瀏覽器收到響應後將其顯示出來