HTTP簡介(TCP/IP協議族簡介)
-
1.1HTTP有什么用
-
1.2 一些名詞和必要知識的儲備
-
1.3HTTP的作業流程
1.1 HTTP有什么用
? 我們在web browser輸入URL后便可以看到web頁面,我們作為用戶端(client)將訪問請求發送給服務器端(server),服務器將我們獲取的檔案資源(source)傳送給我們的程序就建立在HTTP之上,
? HTTP全稱Hypertext Transfer Protocol,超文本傳輸協議,但其實HTTP翻譯成傳輸協議并不嚴謹,我的好伙伴劉指導將其翻譯為超文本承載協議我覺得也是非常形象的,因為整個通信程序是需要多個協議以及軟體硬體層面的協助作業才完成的,后面會提到TCP/IP協議族,協議的意思是規則的預定,也就是client與server在傳輸互動的程序中都要遵守的約定和準則,
1.2 一些名詞和必要知識的儲備
? 1.2.1 TCP/IP協議族的作用
? TCP/IP協議族一般指互聯網相關的協議族的總稱,它包含多種多樣的內容,從電纜、線路這些硬體到IP地址選定方式、雙方建立通信的順序以及web頁面顯示需要處理的步驟等軟體層面的內容,計算機和網路之間要互相通信,雙方就要遵守相同的規則,因此TCP/IP協議族的作用就是讓不同系統不同設備之間實作資源的交換,
? 1.2.2 TCP/IP的分層管理
? TCP/IP協議族運用分層管理的原因不是為了復雜化問題而是為了讓問題更加簡單,當不同設備進行資源交換時,很可能會因為其硬體或系統的不同而導致其無法正常通訊,這時只需要改動相應的板塊即可成功實作通訊,
? 一般來說TCP/IP協議族分為四部分
應用層 該層決定了向客戶提供應用服務時通信的活動,其中預存了各類通用的應用服務,比如FTP(File Transfer Protocol)以及DNS(Domain Name System)服務就是其中兩類,HTTP也屬于這一層面,
傳輸層 該層對上層應用層提供處于網路連接中的兩臺計算機的資料傳輸服,在傳輸層中有兩種不同的協議:TCP(Transmission Control Protocol,傳輸控制協議)以及UDP(User Data Protocol,用戶資料包協議)
網路層(又名網路互連層) 該層處理網路上流動的資料包,資料包是網路傳輸中最小的資料單位,網路層規定了傳輸路線,也就是從A怎么到B,并且將資料包從A傳輸至B,在網路通信中若到達對方需要多臺計算機或網路設備進行傳輸時,網路層就會決定走哪一條線路即規定傳輸路線,
鏈路層(又名資料鏈路層,網路介面層) 這部分屬于整個程序中的硬體部分,包括作業系統,設備驅動,NIC(Network Interface Card,俗稱網卡),光纖燈硬體設施,只要是硬體范疇的都屬于鏈路層,
? 1.2.3 TCP/IP通信傳輸
? 前文提到過HTTP并沒有涉及傳輸這一程序,其實HTTP更像是快遞盒需要其他工具或協議來完成快遞盒的運輸,這一程序就是TCP/IP協議族共同完成的,
? 可以通過這種圖片簡單了解流程(圖片來源:《圖解HTTP》)
? 
? 正如前面所說的HTTP就像快遞包裝盒,而在其他層的幫助下成功地從發送端運到了接收端,在發送端每經過一層就會在外面被打上一層”包裝紙“,這個程序叫封裝(encapsulate)而當“貨物”到達接受端時每經過一層則會撕下一層包裝紙,最終到達用戶(client)手中時便是自己需要的資源(當然可能是由client傳向server但在每次傳輸中必有一個發送端和一個接收端理解即可),
? 1.2.4 IP
? 我們常常說的ip其實是ip地址,這里的IP(Internet Protocol)則是一種協議,位于網路層,其作用就是將各種資料包傳給對方,要想這一程序進行順利,雙方就必須滿足各類條件,最重要的兩點就是ip地址和mac地址,ip地址就是互聯網協議地址而MAC(Media Access Control Address)地址是NIC(Network Interface Card)的物理地址,一般來說ip地址可變而MAC地址不變,
? ip間的通信依賴于MAC地址,這時候就需要用到ARP協議將ip地址決議成MAC地址,以便計算機和網路設備找到目的地和路徑,
? 1.2.5 TCP
? TCP(Transmission Control Protocol)位于傳輸層,提供可靠的位元組流服務(Byte System Server),其實就是將大塊的資料檔案分割成報文段(segment)為單位的資料包,為什么說是可靠的,這就要提到***三次握手(three-way handshaking)***,TCP在建立通信傳輸資料時會使用到TCP標志(flag),發送端會在資料包中插上SYN(synchronize)標志,接收端成功收到資料則會回傳一個帶有SYN/ACK(acknowledgment)標志的資料包,發送端收到后再發送一個帶ACK的資料包結束這次傳輸,俗稱三次握手,當然除此之外TCP還有其他方式保證傳輸的可靠性,這里不做贅述,
? 1.2.6 DNS
? DNS(Domain Name System)服務位于應用層,提供ip地址之間的決議服務,我們常用的網址,其實是為了方便人們理解記憶,但是計算機并擅長理解字母和句子,他們更適合理解數字的含義,因此DNS就是將域名決議成ip地址再傳給計算機和網路設備以便通信建立,
1.3 HTTP的作業流程
? 因為HTTP是直接與發送端、接收端直接接觸了一個協議,再HTTP中發送端一般稱為客戶端(client),接收端是服務器(server),HTTP與他們直接對話,因此在內容上也與他們直接掛鉤,
? 簡單來描述流程就是客戶端發送請求報文,服務器接收到請求報文后進行處理再發送回應報文給客戶端,傳輸程序前面也說過需要協議族一起完成,也就是客戶端和服務器寫信內容是HTTP報文但也需要其他工具人進行運輸,當然HTTP相關知識還有很多比如報文內容,cookie,管線化等等,
?
?
?
?
?
?
?
,
作者:Zephyra
?
?
?
?
?
?
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/316532.html
標籤:其他
