圖解http 筆記
一,了解web以及網絡基礎
1,使用http協議訪問web
web頁面是由web瀏覽器根據地址欄中指定的url從web服務器獲取文件資源等信息然後顯示的頁面。
像這種通過發送請求獲取服務器資源的web瀏覽器都可以稱為 客戶端(client);
web使用HTTP(超文本傳輸協議)的協議作為規範, 可以說web是建立在http協議上通信的。
2,http的誕生
HTTP/0.9 : http與1990年問世,那時並沒有作為正式的標準建立。
HTTP/1.0 :http正式作為標準是在1996年5月,雖說是初級標準,但現在仍然廣泛使用於服務器端。
HTTP/1.1 :目前主流的http版本。
3,網絡基礎 TCP/IP
通常使用的網絡(包括互聯網)是在tcp/ip協議族的基礎上運作的。而http屬於它內部的一個子集。
網絡通信中的規則集合起來統稱為tcp/ip。
tcp/ip的分層: 應用層、傳輸層、網絡層和數據鏈路層。
應用層: 決定了向用戶提供應用服務時通信的活動。 tcp/ip協議內預存了各類通用的應用服務。比如 FTP(文件傳輸協議)、DNS(域名系統)。 HTTP協議也處於該層。
傳輸層: 對上層應用層提供處於網絡連接中的兩臺計算機之間的數據傳輸。 在傳輸層有兩個性質不同的協議: TCP(傳輸控制協議)和 UDP(用戶數據報協議)。
網絡層: 又名網絡互連層,用來處理在網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了 通過怎樣的路徑(傳輸路線)到達對方計算機,並把數據包傳送給對方。與對方計算機之間通過多臺計算機或網絡設備進行傳輸時,網絡層所起的作用就是在眾多的選項內選擇一條傳輸線路。
鏈路層: 又名數據鏈路層、網絡接口層。用來處理連接網絡的硬件部分。包括控制操作系統,硬件設備驅動,NIC(網絡適配器,即網卡),及光纖等物理可見部分,硬件上的範疇都在鏈路層的作用範圍內。
利用tcp/ip協議族進行網絡通信時,會通過分層順序與對方進行通信。發送端從應用層往下走,接收端則由應用層往上走。
舉例http請求: 首先,作為發送端的客戶端在應用層(http協議)發出一個想看到某個web頁面的http請求。
接著為了傳輸方便,在傳輸層(TCP協議)把從應用層收到的數據(http請求報文)進行分割,並在每個報文上打上標記序號及端口號後轉發給網絡層。
在網絡層(ip協議),增加作為通信目的地的MAC地址後轉發給鏈路層,這樣一來,發送網絡的通信請求就準備齊全了。
接收端的服務器在鏈路層收到數據,按序往上層發送,一直到應用層,才算是真正接收到了客戶端發來的http請求。
4,與http關系密切的協議: IP、TCP和DNS
負責傳輸的IP協議:
按層次的話,IP協議位於傳輸層。幾乎所有使用網絡的系統都會用到ip協議。
IP協議的作用是把各種數據包傳送給對方。要確保確實傳送到對方那裏,要滿足各類條件。其中兩個重要的條件是IP地址和MAC地址。
IP地址致命了節點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP地址可以和MAC地址進行配對。IP地址可變換,但MAC地址基本不會更改。
IP間的通信依賴MAC地址。一般的網絡通信都是需要經過多臺計算機和網絡設備中轉的,在中轉時,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標。這時就會采用ARP協議, 這時一種用以解析地址的協議。根據通信放的ip地址就可以反查出MAC地址。
確保可靠性的TCP協議
按層次分,TCP位於傳輸層,提供可靠的字節流服務。也就是說 TCP協議為了更容易傳送大數據,把數據分割。然後確認數據最終是否送達到對方。
為了確保無誤的將數據送達目標處,TCP協議采用了三次握手策略。 發送端首先發送一個帶SYN標誌的數據包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的數據報以示傳達確認信息。最後,發送端再回傳一個帶ACK標註的數據包,代表‘握手’結束。 如果握手過程中某個階段中斷,則TCP協議會再次以相同順序發送相同的數據包。
負責域名解析的DNS服務
DNS和HTTP協議一樣位於應用層。它提供域名到IP地址之間的解析服務。
計算機可以被賦予IP地址,也可以被賦予主機名和域名。用戶通常使用主機名或域名來訪問對方的計算機,因為相比IP的一長串數字更容易記憶。 所以DNS服務就用來通過域名或主機查找IP地址,或者逆向的從IP地址反查找域名。
圖解http 筆記