一、思考,當咱們在瀏覽器地址欄中輸入地址,點擊enter,瀏覽器就會反饋給咱們相應的頁面數據,那麼這個數據咱們是怎麼獲得的?web
web的界面是根據咱們輸入的URL,瀏覽器從服務器端獲取對應的文件資源等信息,而後顯示在瀏覽器上面。瀏覽器
像這種經過發送請求獲取服務器資源的web瀏覽器等,均可以稱之爲客戶端(client)服務器
web使用http(超文本傳輸協議)協議做爲規範,來完成從客戶端到服務端等一系列的運做流程,而協議指的就是規則的約定,能夠說,web是創建在http協議上進行通訊的網絡
爲了理解http,有必要簡單介紹下tcp/ip協議族tcp
計算機與網絡設備之間互相通訊,雙方就必須基於一樣的方法。好比:如何發現通訊目標、由誰發起通訊、使用什麼語言通訊、怎麼結束通訊都須要事先肯定,全部這些都須要一種規則,操作系統
這就是協議。協議中存在多種的內容;從電纜的規格到ip地址的選定方法,尋找異地用戶的方法,創建通訊的順序,以及web頁面顯示須要處理的步驟等等設計
像這樣把與互聯網相關聯的協議集合起來統稱爲tcp/ip。dns
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的子集
本文(轉自老張)