應用層(HTTP協議和DNS協議)


1.計算機網絡模型

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

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

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

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

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

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

2.應用層

1、概念

      位於計算機網絡體系結構的最上層,前面四層做的所有事情就是為了它服務,它也是設計和建立計算機網絡的最終目的,通俗的講,就是我們開發的應用軟件,就處於這一層,比如,QQ,瀏覽器訪問網頁,等等你看得到的應用軟件都是在這一層,但是這些軟件在運行的過程中,也需要依靠一些特定的協議才能完成相應的功能,比如瀏覽器通過網址訪問網頁,其中是如何做到的,這就是我們所要學習的東西。

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

       客戶/服務器(client/server)

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

       P2P

          也稱為對等體系結構。P2P相當於每個人的電腦都可以當服務器,也可以當客戶端,不單單限制於只能客戶端訪問服務器,你自己的計算機可以去訪問別人的計算機上的內容,別的同樣可以訪問你計算機上的內容,這樣達到一種共享的狀態。

應用層的協議

DNS協議

Domain Name System 域名系統。也可以叫做域名解析協議。在我們在瀏覽器訪問網頁的時候,通常都是用我們所熟悉的一連串有意義的英文字符標識,比如www.baidu.com、www.sohu.com等。 但是我們學了前面的知識,計算機並不是通過這些字符串去找到對應的計算機,而是通過32位的二進制,也就是我們的IP地址來找。所以就有了DNS協議。它的作用就是將域名解析成對應的IP地址。因為讓我們人去記那些IP地址,很難記得住,所以就想辦法讓IP地址轉變為了現在的域名,在進行訪問的時候,只需要將域名解析為對應的IP地址就行了,這個域名也很有講究,其中分為好多層域名,是獨一無二的。這里不細講這個,只要我們知道,域名通過DNS能找到對應的IP地址就行了

DNS協議是如何工作的呢?

          1、通過域名訪問網頁

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

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

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

             2.3 本機計算機找到其中一台解析域名的服務器(可能是.com),如果沒有找到對應的IP地址,那么就會去找根域名服務器,根域名服務器知道所有的子服務器,所以他肯定知道該域名所對應的IP地址在那個子服務器中,所以告訴第一次查詢的服務器要他去另一台服務器上找,找到了,就將其返回給計算機,以后在有另一台計算機也通過這個域名訪問,那么第一台服務器會有原來的域名IP地址的緩存,就不用去找根服務器了。

HTTP協議

HTTP協議簡介

HTTP(超文本傳輸協議)是應用層上的一種客戶端/服務端模型的通信協議,它由請求和響應構成,且是無狀態的。(暫不介紹HTTP2)

  • 協議
    協議規定了通信雙方必須遵循的數據傳輸格式,這樣通信雙方按照約定的格式才能准確的通信。
  • 無狀態
    無狀態是指兩次連接通信之間是沒有任何關系的,每次都是一個新的連接,服務端不會記錄前后的請求信息。
  • 客戶端/服務端模型

五層網絡模型

URL構成

統一資源定位符URL。

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

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

              協議:http

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

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

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

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

超文本傳送協議HTTP

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

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

          什么意思呢?在通過URL訪問你服務器時,就會發送一個請求報文,告訴服務器需要哪些東西,服務器知道后,返回一個響應報文給客戶端,其中就會帶有一些網頁信息。就是通過這個來達到傳送網頁資源的目的。

請求報文和響應報文

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

                  請求行            響應行(狀態行)

                  請求頭部(請求頭)           響應頭部(首部行)

                  請求數據(請求體)           響應數據(響應體,實體主體)

請求報文格式

請求(Request)

客戶端發送一個HTTP請求到服務端的格式:

請求行
請求頭
請求體

響應報文格式

響應(Response)

服務端響應客戶端格式:

狀態行
響應頭
響應體

HTTP協議實測分析

通過訪問www.sohu.com來看看我們發送的請求報文和響應報文是什么樣的

1、GET /http://www.sohu.com HTTP/2 請求行,只不過這里被分開了,請求的方式 URL 版本

這里說明一下協議版本一般都是HTTP/1.1

 2、Host:主機名 www.solu.com      

            3、User-Agent:使用什么代理服務器,這里就是FireFox,也就是火狐

            4、Accept:能接收的數據類型有哪些

            5、Accept-Language:表示用戶希望優先想得到的版本,一次排列下去,先是中文,再是英文

            6、Accept-Encoding:通知服務端可以發送的數據壓縮格式

            7、Cookie:瀏覽器端的一個技術,在服務器上記錄用戶信息,但是也會在瀏覽器中保存一份。

            8、Connection:連接的方式,有兩種,非持續連接和持續連接,非持續連接,一次請求/響應就對應一個TCP連接,接到了響應該連接就關閉,然后在發送請求就在建立TCP連接,持續連接就相反,這里使用的是持續連接

            9、Upgrade-Insecure-Requests:該指令用於讓瀏覽器自動升級請求從http到https,用於大量包含http資源的http網頁直接升級到https而不會報錯.簡潔的來講,就相當於在http和https之間起的一個過渡作用,這個可以放一放,不懂沒關系。

響應報文

這其中就來簡單看看響應行中的狀態碼

狀態碼

HTTP狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的類型,后兩個數字有分類的作用。HTTP狀態碼共分為5種類型:

更詳細的狀態碼可查看 HTTP狀態碼

但一般我們只需要知道幾個常見的就行,比如 200,400,401,403,404,500,502.

狀態碼由三位數字組成,可以分為5大類共33種

            1xx:表示通知信息的,比如請求收到了或正在進行處理

            2xx:表示成功,也就是服務器接收到了你的請求,並成功處理了,一般最喜歡看到的就是200了

                200:這次請求成功了。

            3xx:表示重定向,服務器告訴瀏覽器要完成請求你必須采取進一步的行動,也就是去訪問另一個網頁,

            4xx:表示客戶的差錯,比如請求中有錯誤的語法或不能完成

                404錯誤:就是找不到資源,就是你的URL寫的有錯誤,使定位不到正確的資源

            5xx:服務器的差錯,如服務器失效,或者內部出現異常不能完成你的請求

                500錯誤:就是服務器寫的代碼中有問題。

請求方法

截止到HTTP1.1共有下面幾種方法:

請求和響應常見通用頭

注意

Content-Type,內容類型,一般是指網頁中存在的Content-Type,用於定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件。

常見的媒體格式類型如下:

以application開頭的媒體格式類型:

常見請求頭

常見響應頭


免責聲明!

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



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