網路基礎—— HTTP協議概述
阿新 • • 發佈:2020-08-24
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響應報文
- 瀏覽器收到響應後將其顯示出來