HTTP涉及到的知識非常多,要深刻全面的掌握HTTP,可以從外圍的相關概念開始各個擊破。
1 B/S 結構
B/S 結構是Browser/Server(瀏覽器-伺服器)結構的簡稱,是Web的發展興起的的一種網絡結構模式,與C/S結構不同,其客戶端只需要瀏覽器即可,而不需要安裝專門的軟體,客戶端通過瀏覽器經Web伺服器與資料庫進行通信,而這個通信使用的就是HTTP協議。
簡而言之,B/S架構的工作模式就是瀏覽器請求,伺服器響應。
我們平常上網瀏覽網頁就是最形象的例子。首先在瀏覽器輸入網址,訪問目標伺服器,目標伺服器返回我們請求的頁面內容,瀏覽器將頁面呈現在窗口裡。
2 URI和URL
似乎我們比較熟悉URL,因為聽得次數和見得次數比較多,但也僅僅是面熟而已,背後的知識未必了解。但是,作為前端的你,不能知道的如此泛泛。先擺出三個概念:URI,URL和URN。
URI:Uniform Resource Identifier,統一資源標識
URL:Uniform Resource Locator,統一資源定位
URN:Uniform Resource Locator,統一資源名稱
三者的關係是:URI包含URL和URN,URL 只是 URI 的一個子集,或者說URL和URN是URI的兩種形式。
形象的理解就是URL就是你快遞單上你家的地址,URN就是你的手機號或者身份證。通過URL可以找到你家(唯一),通過URN可以找到你(唯一)。
URI的文法如下:
3 TCP/IP的分層
之前提到過TCP/IP協議的概念和分為四個層,但是沒有對四個層進行詳細的討論。這裡就接上,首先回顧下TCP/IP分為應用層、傳輸層 、網絡層和鏈路層。
1 應用層
應用層負責的是應用程式的相互通信。應用層面向不同的網絡應用引入了不同的應用層協議,其中,有基於TCP協議的,如FTP文件傳輸協議、簡單電子郵件傳輸(SMTP)、網絡遠程訪問協議(TELNET)、HTTP。
2、傳輸層 傳輸層的功能是使源端主機和目標端主機上的對等實體可以進行會話。在傳輸層有兩個性質不同的協議,TCP和UDP。這一層負責數據的傳送,並且確定數據已被送達並接收。
3、網絡層也叫互連網絡層,是整個TCP/IP協議族的核心部分。它的功能是把分組發往目標網絡或主機。網絡層用來處理在網絡上流動的數據包,數據包是網絡傳輸的最小數據單位。網絡互連層定義了分組格式和協議,最熟悉的就是IP協議,Internet Protocol,注意這個IP不是指IP位址的意思。
4、鏈路層鏈路層也有叫網絡接口層,用來處理連接網絡的硬體部分。接收IP數據報並進行傳輸,從網絡上接收物理幀,抽取IP數據報轉交給下一層,對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數據。
用一次通信把四個層連接起來的就是:
4 DNS
DNS是英文 Domain Name System的縮寫,即域名系統。它包含IP位址與對應域名之間的映射,它所提供的服務是用來將主機名和域名轉換為IP位址的工作,並且DNS也是應用層協議。之所以需要這麼一個服務是因為,對於人來說,具有含義特定的字符比單純的數字IP位址更易於記憶和傳播,而計算機則相反,必須通過IP位址進行定位。所以才會有專門有這麼一個DNS解析服務。而域名解析也是你在瀏覽器輸入域名開始訪問的第一步。需要注意的是DNSDNS伺服器一般分根DNS伺服器,頂級DNS伺服器,權威DNS伺服器三種。
有了以上的概念,我們大概能勾勒出我們常見的輸入網址到打開頁面背後的通信過程了。