TCP/IP(六)應用層(DNS和HTTP協議)


前言

到這一篇我已經把TCP/IP五層模型詳細的說明了一遍,大體的從物理層到最上層的應用層做了一個大概的了解,其實總體學下來東西非常的多,我們需要經常的去系統性的去學習它。不然過一段時間就忘記了!

回顧一下前面的知識:

  

  OSI體系結構分為7層:物理層、鏈路層、網路層、傳輸層、會話層、表示層、應用層。

  TCP/IP5層參考模型:物理層、數據鏈路層、網絡層、傳輸層、應用層

  TCP/IP的體系結構分為4層:網絡接口層(物理層、鏈路層)、網際層(網絡層IP)、傳輸層(UDP/TCP)、應用層(會話層、表示層、應用層)

  原理體系結構:物理層、鏈路層、網絡層、傳輸層、應用層(會話層+表示層+應用層)  

    OSI七層協議體系結構:優點:概念清楚,理論完整,缺點但是復雜而不實用

    TCP/IP協議族四層,缺點:太簡單,但被廣泛使用

  結合上面兩個的優缺點,就有了5層協議的原理體系結構,即簡潔又能把概念描述清楚。

一、應用層概述

1.1、應用層簡介

  在百度中的介紹:

      

  位於計算機網絡體系結構的最上層,前面四層做的所有事情就是為了他服務,他也是設計和建立計算機網絡的最終目的,通俗的講,就是我們開發的應用軟件,就處於這一層

  比如,QQ,瀏覽器訪問網頁,等等你看得到的應用軟件都是在這一層,但是這些軟件在運行的過程中,也需要依靠一些特定的協議才能完成相應的功能,

  比如瀏覽器通過網址訪問網頁,其中是如何做到的,這就是我們所要學習的東西。

1.2、應用層中的應用軟件分兩種:客戶/服務器和P2P體系結構

  1)客戶/服務器(client/server)

    這種類型,就是我們很熟悉的客戶端,服務器模型,客戶端請求服務器,服務器響應客戶端這樣的一種方式進行“交流”

  2)P2P

    也稱為對等體系結構。P2P相當於每個人的電腦度可以當服務器,也可以當客戶端,不單單限制於只能客戶端訪問服務器,

    你自己的計算機可以去訪問別人的計算機上的內容,別的同樣可以訪問你計算機上的內容,這樣達到一種共享的狀態。

二、應用層協議之DNS協議

2.1、DNS協議概述

  Domain Name System 域名系統。也可以叫做域名解析協議。在我們在瀏覽器訪問網頁的時候,通常度是用我們所熟悉的一連串有意義的英文字符標識,比如www.baidu.com、www.sohu.com等。

  但是我們學了前面的知識,計算機並不是通過這些字符串去找到對應的計算機,而是通過32位的二進制,也就是我們的IP地址來找。所以就有了DNS協議。他的作用就是將域名解析成對應的IP地址

  因為讓我們人去記那些IP地址,很難記得住,所以就想辦法讓IP地址轉變為了現在的域名,在進行訪問的時候,只需要將域名解析為對應的IP地址就行了,這個域名也很有講究,其中分為好多層域名,

  是獨一無二的。這里不細講這個,只要我們知道,域名通過DNS能找到對應的IP地址就行了。

2.2、DNS協議工作過程

  1)通過域名訪問網頁

  2)計算機會先將域名發送到一個解析域名的服務器

    2.1)在其服務器上有很多服務器,能解析各種各樣的域名,比如有專門解析.org的,解析.com的,解析.net的。等等,最主要的有一個根域名服務器

    2.2 )域名解析(在服務器上查找IP地址)的過程有兩種算法,迭代查詢,遞歸查詢。一般是兩種查詢的結合

    2.3 )本機計算機找到其中一台解析域名的服務器(可能是.com),如果沒有找到對應的IP地址,那么就會去找根域名服務器,根域名服務器知道所有的子服務器,

      所以他肯定知道該域名所對應的IP地址在那個子服務器中,所以告訴第一次查詢的服務器要他去另一台服務器上找,找到了,就將其返回給計算機,

      以后在有另一台計算機也通過這個域名訪問,那么第一台服務器會有原來的域名IP地址的緩存,就不用去找根服務器了

  3)找到了,就能找到我們要訪問的服務器了。

  

三 、應用層協議之HTTP協議

3.1、HTTP協議簡介

  1)超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標准。
  2)HTTP是一個客戶端和服務器端請求和應答的標准(TCP)。客戶端是終端用戶,服務器端是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口為80)的HTTP請求。

   (我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲着(一些)資源,比如HTML文件和圖像。(我們稱)這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個中間層,

   比如代理,網關,或者隧道(tunnels)。盡管TCP/IP協議是互聯網上最流行的應用,HTTP協議並沒有規定必須使用它和(基於)它支持的層。 事實上,HTTP可以在任何其他互聯網協議上,或者在其他網絡上實現。

   HTTP只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
  3)通常,由HTTP客戶端發起一個請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,

       比如"HTTP/1.1 200 OK",和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。

   HTTP使用TCP而不是UDP的原因在於(打開)一個網頁必須傳送很多數據,而TCP協議提供傳輸控制,按順序組織數據,和錯誤糾正。
  4)通過HTTP或者HTTPS協議請求的資源由統一資源標示符(Uniform Resource Identifiers)(或者,更准確一些,URLs)來標識。

3.2、統一資源定位符URL

  URL:統一資源定位符,通過下面格式,可以看出,就是用來定位我們所需要資源在服務器上的位置。

  格式:<協議>://<主機>:<端口>/<路徑>

  協議:http

  主機:域名/IP地址,原理度一樣,到頭來還是會轉換為IP地址,通過這個才能找到目標服務器

  端口: 在傳輸層需要使用的,訪問目的主機的哪個端口號。 

  路徑:精准的定位我們所需要的資源位置、    

  平常會省略協議和端口號,因為這些都是默認的,在訪問主頁時,路徑也會省略。比如www.baidu.com這個默認進入百度的主頁 完整寫法 http://www.baidu.com:80/index.html 。

3.3、超文本傳輸協議

  1)作用

    怎樣向服務器請求文檔、服務器怎么把文檔傳送給瀏覽器,通俗點講,就是我們想服務器訪問網頁資源時,服務器如何把網頁上的東西傳給我們。

  客戶端向服務器:請求報文    服務器向客戶端:響應報文

  其實就是:在通過URL訪問你服務器時,就會發送一個請求報文,告訴服務器需要哪些東西,服務器知道后,返回一個響應報文給客戶端,其中就會帶有一些網頁信息

        就是通過這個來達到傳送網頁資源的目的,現在來具體看看,請求報文和響應報文的格式。

3.4、請求和響應報文的格式

  格式都一樣,內容不一樣。 

    請求行            響應行

    請求頭部           響應體

    請求數據           響應數據

  1)請求報文格式圖

    

  2)響應報文格式圖

    

這個后面我會詳細的寫一篇文章類學習HTTP協議。

3.5、HTTP協議功能

     HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,
  還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。
    HTTP是客戶端瀏覽器或其他程序與Web服務器之間的應用層通信協議。在Internet上的Web服務器上存放的都是超文本信息,客戶機需要通過HTTP協議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,
  僅可用於Web訪問,也可以用於其他因特網/內聯網應用系統之間的通信,從而實現各類應用資源超媒體訪問的集成。
    我們在瀏覽器的地址欄里輸入的網站地址叫做URL (Uniform Resource Locator,統一資源定位符)。就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。當你在
  瀏覽器的地址框中輸入一個URL或是單擊一個超級鏈接時,URL就確定了要瀏覽的地址。瀏覽器通過超文本傳輸協議(HTTP),將Web服務器上站點的網頁代碼提取出來,並翻譯成漂亮的網頁。
 

 


免責聲明!

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



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