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

前言算法

到這一篇我已經把TCP/IP五層模型詳細的說明了一遍,大致的從物理層到最上層的應用層作了一個大概的瞭解,其實整體學下來東西很是的多,咱們須要常常的去系統性的去學習它。否則過一段時間就忘記了!瀏覽器

回顧一下前面的知識:緩存

  

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

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

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

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

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

    TCP/IP協議族四層,缺點:太簡單,但被普遍使用spa

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

1、應用層概述

1.一、應用層簡介

  在百度中的介紹:

      

  位於計算機網絡體系結構的最上層,前面四層作的全部事情就是爲了他服務,他也是設計和創建計算機網絡的最終目的,通俗的講,就是咱們開發的應用軟件,就處於這一層,

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

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

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

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

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

  2)P2P

    也稱爲對等體系結構。P2P至關於每一個人的電腦度能夠當服務器,也能夠當客戶端,不僅僅限制於只能客戶端訪問服務器,

    你本身的計算機能夠去訪問別人的計算機上的內容,別的一樣能夠訪問你計算機上的內容,這樣達到一種共享的狀態。

2、應用層協議之DNS協議

2.一、DNS協議概述

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

  可是咱們學了前面的知識,計算機並非經過這些字符串去找到對應的計算機,而是經過32位的二進制,也就是咱們的IP地址來找。因此就有了DNS協議。他的做用就是將域名解析成對應的IP地址。

  由於讓咱們人去記那些IP地址,很難記得住,因此就想辦法讓IP地址轉變爲了如今的域名,在進行訪問的時候,只須要將域名解析爲對應的IP地址就好了,這個域名也頗有講究,其中分爲好多層域名,

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

2.二、DNS協議工做過程

  1)經過域名訪問網頁

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

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

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

    2.3 )本機計算機找到其中一臺解析域名的服務器(多是.com),若是沒有找到對應的IP地址,那麼就會去找根域名服務器,根域名服務器知道全部的子服務器,

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

      之後在有另外一臺計算機也經過這個域名訪問,那麼第一臺服務器會有原來的域名IP地址的緩存,就不用去找根服務器了。

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

  

三 、應用層協議之HTTP協議

3.一、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.二、統一資源定位符URL

  URL:統一資源定位符,經過下面格式,能夠看出,就是用來定位咱們所須要資源在服務器上的位置。

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

  協議:http

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

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

  路徑:精準的定位咱們所須要的資源位置、    

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

3.三、超文本傳輸協議

  1)做用

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

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

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

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

3.四、請求和響應報文的格式

  格式都同樣,內容不同。 

    請求行            響應行

    請求頭部           響應體

    請求數據           響應數據

  1)請求報文格式圖

    

  2)響應報文格式圖

    

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

3.五、HTTP協議功能

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