天天看點

網絡基礎知識(三)HTTP簡介

作者:AndrewNotes
網絡基礎知識(三)HTTP簡介

一、相關概念

超文本

包含有超連結(Link)和各種多媒體元素标記(Markup)的文本。           

超文本傳輸協定(HTTP)

一種按照URL訓示,将超文本文檔從一台主機(Web伺服器)傳輸到另一台主機(浏覽器)的應用層協定,以實作超連結的功能。
           

Http協定是TCP/IP協定族的一個子集。

tcp/ip 是個協定族 從鍊路層 一直到到應用層。而http 隻是應用層的一個web通訊協定。

主流版本:http1.1,為1.0的更新版

URL

# URL,即統一資源定位符(Uniform Resource Locator),用來唯一地辨別網際網路中的某一個文檔。
# 組成:URL由協定、主機和端口(預設為80)以及檔案路徑三部分構成,
# 例如
https://www.andrewnotes.com/andrew/2039.html
協定://主機域名和端口/檔案路徑

# URI
2039.html

統一資源辨別符(Uniform Resource Identifier,URI)是一個用于辨別某一網際網路資源名稱的字元串。表示的是web上每一種可用的資源,如 HTML文檔、圖像、視訊片段、程式等都由一個URI進行辨別的。

URL是URI的一個子集。它是Uniform Resource Locator的縮寫,譯為“統一資源定位符”。

通俗地說,URL是Internet上描述資訊資源的字元串,主要用在各種WWW客戶程式和伺服器程式上。

采用URL可以用一種統一的格式來描述各種資訊資源,包括檔案、伺服器的位址和目錄等。URL是URI概念的一種實作方式。

# URI和URL之間的差別
URI和URL都定義了資源是什麼,但URL還定義了該如何通路資源。URL是一種具體的URI,它是URI的一個子集,它不僅唯一辨別資源,而且還提供了定位該資源的資訊。URI 是一種語義上的抽象概念,可以是絕對的,也可以是相對的,而URL則必須提供足夠的資訊來定位,是絕對的。

           

二、HTTP工作原理

## 在浏覽器輸入URL後發生了什麼

https://www.andrewnotes.com/andrew/2039.html           
1 浏覽器分析超連結中URL             (單身狗拿到小姐姐照片,分析)---> (找到婚介,哥,你把這個小姐姐電話号發給我呗)
 -先去本地DNS找
如果本地DNS中有域名解析,則将結果返給浏覽器                      
 -DNS伺服器(本地沒有則去本地用戶端設定的DNS找(LDNS),如其緩存有記錄,則返給浏覽器;如無,則會繼續請求其他DNS)
.com
.cn
.org
.gov
.edu
...

找法:遞歸or疊代

2 DNS(婚介中心)将域名解析成IP位址(電話号碼)返給浏覽器   (婚介找到小姐姐手機号,返給單身狗)

3 浏覽器通過解析後的IP與端口(80)與伺服器建立(TCP/IP)連接配接           (單身欣喜若狂,開始連接配接)
 -三次握手

4 浏覽器請求文檔,GET,請求下載下傳2039.html傳回給伺服器(發送HTTP封包)   (單身大哥發送邀約請求)

5 伺服器讀取請求并響應,将目錄下找到的2039.html傳回給浏覽器,(并傳回一條HTTP相應封包)
 -網站叢集架構細節
6 關閉http連接配接,斷開TCP/IP           (挂掉電話)
 -四次揮手
7 浏覽器展示web界面     (見面)

           

三、示例:用wireshark配合顯示

1.浏覽器分析URL

參數傳遞
一個URL有可能會很長,以 & 為分隔符每一個&後面都是一個參數,如下所示:

https://www.baidu.com/s?ie=utf-8
&f=8
&rsv_bp=1
&rsv_idx=1
&tn=baidu
&wd=%E6%9B%BE%E8%80%81%E6%B9%BF
&rsv_pq=c177c4df0026ba3e
&rsv_t=e001VxO8FQ8I6s1o1i0km8IYEX2%2F7PwwkwTB6FC%2FXU9Mmwz24Z4i%2BnYoP0I&rqlang=cn&rsv_enter=1
&rsv_dl=tb
&rsv_sug2=0
&inputT=1729
&rsv_sug4=1728
           

2.PC浏覽器向DNS發起請求Query,DNS伺服器回複IP

網絡基礎知識(三)HTTP簡介

3.建立TCP連接配接(三次握手)

4.伺服器回應

5.完成響應

四、HTTP請求方法、狀态碼

每個請求封包中都包含一個方法。用以告訴伺服器端需要執行的具體動作。如:擷取指定頁面、删除伺服器上某檔案等

# 一個動作對應一個方法
# 常見:
方法       含義
GET     請求擷取一個Web頁面
POST   明文送出資料,讀取界面
DELETE 調用後端接口删除Web頁面
PUT     調用後端,存儲,上傳一個Web頁面
# 不常見:
CONNECT 用于代理伺服器(如VPN)
HEAD 請求讀取一個Web頁面的頭部
TRACE 用于測試,要求伺服器送回收到的請求
OPTION 查詢特定選項
           

響應封包中的狀态碼(status-code)

網絡基礎知識(三)HTTP簡介
## 重要:常見狀态碼
狀态碼含義
200成功

301永久重定向(跳轉) 永久vip 即使服務停了還是會跳到443 80-->443
302臨時重定向(跳轉) 臨時體驗卡 服務停了就不會跳了
304本地緩存     存到浏覽器緩存
307内部重定向(跳轉)

400用戶端錯誤       bad request
401認證失敗         使用者名or密碼輸錯一次就報一次401
403找不到首頁,權限不足   比如我修改html目錄權限
404找不到頁面       比如伺服器端把html檔案移走了

500内部錯誤         (代碼問題,伺服器問題)
502找不到後端主機   (哪台出現502,就去哪台機器檢查
503伺服器過載,比如通路頻率過快(一直重新整理)
504後端主機逾時           

繼續閱讀