前段時間作項目的時候,發現對於先後端交互仍是很迷糊,有時候出現一個問題後會查好久的時間...
因此先找了《圖解HTTP》這本書來看,如下爲邊看邊記的點。javascript
Web瀏覽器根據URL從Web服務器獲取文件資源等信息,從而顯示出Web頁面。
經過發送請求獲取服務器資源的Web瀏覽器,稱爲客戶端。
Web使用一種名爲HTTP的協議做爲規範,完成從客戶端到服務器端等一系列運做流程。 java
WWW三種構建技術:後端
一般使用的網絡(包括互聯網)是在TCP/IP協議族的基礎上運做的。HTTP屬於它內部的一個子級。瀏覽器
把互聯網相關聯的協議集合起來總稱爲TCP/IP。服務器
TCP/IP協議族裏最重要的一點——分層。
按層次分別分爲如下4層:應用層、傳輸層、網絡層和數據鏈路層。
網絡
IP網絡協議位於網絡層,「IP」實際上是一種協議的名稱。
做用:把各類數據包傳送給對方。要保證確實傳送到對方那裏,則須要知足的最重要的兩個條件是IP地址和MAC地址
IP地址(可變換)指明瞭節點被分配到的地址,MAC地址(基本不會改)是指網卡所屬的固定地址。IP地址能夠和MAC地址進行配對。
使用ARP協議憑藉MAC地址進行通訊
IP間的通訊依賴MAC地址。 在網絡上,通訊的雙方在同一局域網內的狀況是不多的,一般是通過多臺計算機和網絡設備中轉才能鏈接到對方,而在進行中轉時,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標。這時採用ARP協議。ARP是一種用以解析地址的協議,根據通訊方的IP地址就能夠反查出對應的MAC地址。
在到達通訊目標前的中轉過程當中,計算機和路由器等網絡設備只能獲悉很粗略的傳輸路線。(路由選擇機制) 大數據
TCP處於傳輸層,提供可靠的字節流服務(爲了方便傳輸,將大塊的數據分割成以報文段爲單位的數據包進行管理)。TCP協議爲了更容易傳送大數據才把數據分割,並且TCP協議可以確認數據最終是否送達到對方。操作系統
爲了準確無誤地將數據送達目標處,TCP協議採用了三次握手策略。
發送端(帶SYN標誌的數據包)->接收端收到的話(帶有SYN/ACK標誌的數據包以示傳達確認信息)->發送端收到(帶ACK標誌的數據包)->接收端(握手結束)
若在握手的過程當中某個階段莫名終端,TCP協議會再次以相同的順序發送相同的數據包。 3d
DNS服務:和HTTP協議同樣位於應用層的協議,提供域名到IP地址之間的解析服務。
計算機既能夠被賦予IP地址(計算機更擅長處理一長串數字,更容易被計算機理解),也能夠被賦予主機名和域名(更符合人類的記憶習慣)。
DNS協議提供經過域名查IP地址,或逆向從IP地址反查域名的服務。 cdn
與URI(統一資源標識符)相比,咱們更熟悉URL(統一資源定位符)。
URI用字符串表示某一互聯網資源,而URL表示資源的地點(互聯網上所處的位置)。課件URL是URI的子集。
表示指定的URI,要使用涵蓋所有必要信息的絕對URI、絕對URL以及相對URL(是指從瀏覽器中基本URI處指定的URL,形如/image/haha.gif)。
並非全部的應用程序都符合RFC(一些用來指定HTTP協議技術標準的文檔)。