http協議(一)基礎知識


我自己寫的隨筆一般是偏學習筆記性質的,或者一點個人理解,適合新人,大牛可以忽略這個。。。。。。

參考書籍——《圖解http》

 

當我們在瀏覽器的地址欄中輸入網址,然后點擊回車,接着,瀏覽器就會呈現出我們需要的web界面,那么,這個界面是怎么產生的?

web的界面是根據我們輸入的URL(網址、地址),瀏覽器從服務器端獲取對應的文件資源等信息,然后顯示在瀏覽器上面。

像這種通過發送請求獲取服務器資源的web瀏覽器等,都可以稱之為客戶端(client)

web使用http(超文本傳輸協議)協議作為規范,來完成從客戶端到服務端等一系列的運作流程,而協議指的就是規則的約定,可以說,web是建立在http協議上進行通信的

關於http的產生和發展,這里就不贅述了,有興趣的童鞋可以百度。。。。。。

 

為了理解http,有必要簡單介紹下tcp/ip協議族

計算機與網絡設備之間互相通信,雙方就必須基於同樣的方法。比如:如何發現通信目標、由誰發起通信、使用什么語言通信、怎么結束通信都需要事先確定,所有這些都需要一種規則,

這就是協議。協議中存在多種的內容;從電纜的規格到ip地址的選定方法,尋找異地用戶的方法,建立通信的順序,以及web頁面顯示需要處理的步驟等等

像這樣把與互聯網相關聯的協議集合起來統稱為tcp/ip

 

tcp/ip的分層

tcp/ip很重要的一個特點就是分層。按照層次分為以下四層:應用層,傳輸層,網絡層和數據鏈路層

分層的好處:如果互聯網只由一個協議統籌,那么某一地方出問題,整體都會出現問題,無法使用;分層后,只需替換出現問題的或者需要修改的即可,而且分層后針對具體的設計也變得更為簡單

 

應用層:體系的最高層,應用進程間通信交互的規則

tcp/ip協議族預存了各類通用的應用服務,比如:

ftp:文件傳輸協議

dns:域名系統協議

http:萬維網應用協議

smtp:電子郵件協議

以上幾種是常用的幾種,還有很多其他的協議,感興趣的可以找找其他專業的書籍看看

 

傳輸層:提供處於網絡連接中的兩台計算機間的數據傳輸,其中包括tcp和udp兩種性質不同的協議

tcp:傳輸控制協議,傳輸的單位為報文段,提供面向連接的,可靠的數據傳輸服務

udp:傳輸單位為用戶數據報,它是盡最大努力的提供數據傳輸服務,不保證可靠性

 

網絡層:又名網絡連接層

用來處理在網絡上流動的數據包(封裝)。數據包是網絡傳輸的最小數據單位。該層規定了通過怎樣的路徑到達對方計算機並把數據包傳給對方

 

鏈路層:又名數據鏈路層,網絡接口層

處理連接網絡的硬件部分。比如控制操作系統、硬件的驅動、網絡適配器、光釺等

 

數據的封裝

用戶端發送一個請求,從應用層開始,一直到鏈路層,每一層都會被打上該層所屬的首部信息;反之,接收端在層與層之間傳輸時,每經過一層會去掉該層的首部信息,這種做法叫做封裝

 

與http密切相關的協議

IP協議:位於網絡層,作用是把各種數據包傳送給對方,而要准確的把數據傳送給對方,就需要滿足各類條件,其中有2個很重要的條件:ip地址和mac地址

ip地址相信有點基礎的人都知道,就是節點被分配到的地址,mac地址則是指網卡所屬的固定地址,ip和mac地址可以進行配對

ip間的通信依賴於mac地址,在信息傳輸中,有時候由於中轉太多,因此會采用ARP協議,這是個用來解析地址的協議,通過ip地址就可以反查出對應的mac地址

 

tcp協議:位於傳輸層,確保傳輸的可靠性

數據傳輸中為了傳輸方便,會將大塊數據分割成報文段,而tcp協議能確認數據最終是否傳送給對方

為了准確傳輸,傳輸中采用了三次握手策略(這種手段可以理解為多次確認,來確保數據傳輸的可靠性)

 

dns協議:負責域名解析,位於應用層,提供域名到ip地址間的解析

通過域名查找ip地址,或者逆向從ip地址反查域名

 

URL和URI

URL:統一資源定位符:表示資源的地點,具體指向(門牌號)

URI:統一資源標識符:用字符串標識某些互聯網資源(該門牌號的地方具體有什么資源)

URL是URI的子集

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM