第六章 應用層 DNS和http協議詳解

2021-09-07 07:54:59 字數 3986 閱讀 4523

序言

--wh

一、回顧

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

2、tcp/ip的體系結構分為4層:網路介面層(物理層、鏈路層)、網際層(網路層ip)、傳輸層(udp/tcp)、應用層(會話層、表示層、應用層)

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

我寫文章的過程就是按照第三點這樣的排列順序,這三者的關係不要弄混淆了,其中的關係是

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

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

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

前面4層每層的作用和功能是什麼?前面講解的非常清楚

物理層(一)

物理層(二)

鏈路層(一)

鏈路層(二)

鏈路層(三)

網路層(一)

運輸層(一)三次握手,四次揮手

二、應用層

1、概念

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

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

客戶/伺服器(client/server)

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

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

三、應用層協議的舉例。

1、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位址的快取,就不用去找根伺服器了。

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

2、http協議

統一資源定位符url。

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

格式:《協議》://《主機》:《埠》/《路徑》

協議:http

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

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

超文字傳送協議http。

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

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

什麼意思呢?在通過url訪問你伺服器時,就會傳送乙個請求報文,告訴伺服器需要哪些東西,伺服器知道後,返回乙個響應報文給客戶端,其中就會帶有一些網頁資訊。就是通過這個來達到傳送網頁資源的目的,現在來具體看看,請求報文和響應報文的格式。

格式度一樣,內容不一樣,格式都市

請求行            響應行

請求頭部           響應體

請求資料           響應資料

請求報文格式

響應報文格式

通過訪問www.solu.com來看看我們傳送的請求報文和響應報文是什麼樣的

請求報文:

1、get / http/1.1 請求行,只不過這裡被分開了,請求的方式  url 版本 

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之間起的乙個過渡作用,這個可以放一放,不懂沒關係。

以上2到9就是請求頭部,由於一般請求報文度不會有請求資料的,所以在9後面就沒有內容了,一般如果想要傳送資料過去度會通過在網域名稱後面加?然後將資料創送過去

響應報文

這其中就來簡單看看響應行中的狀態碼把,響應體中內容太多,一下子講解不清楚

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

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

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

200:這次請求成功了。

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

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

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

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

500錯誤:就是伺服器寫的**中有問題。

五、總結

http權威指南        密碼:k07z

第六章 應用層 DNS和http協議詳解

序言 wh 一 回顧 1 osi體系結構分為7層 物理層 鏈路層 網路層 傳輸層 會話層 表示層 應用層。2 tcp ip的體系結構分為4層 網路介面層 物理層 鏈路層 網際層 網路層ip 傳輸層 udp tcp 應用層 會話層 表示層 應用層 3 原理體系結構 物理層 鏈路層 網路層 傳輸層 應用...

第六章 HTTP首部

http 協議的請求和響應報文中必定包含 http 首部。請求報文由方法 uri http 版本 http 首部欄位等部分構成。響應報文由 http 版本 狀態碼 數字和原因短語 http 首部字段 3 部分構成。http 首部欄位是構成 http 報文的要素之一。結構 由首部欄位名和字段值構成的中...

shell 第六章 陣列應用

第六章 shell陣列應用 1.陣列基本概述 2.陣列基本使用 3.陣列遍歷與迴圈 01.什麼是陣列?陣列其實也算是變數,傳統的變數只能儲存乙個值,但陣列可以儲存多個值。02.陣列的分類 shell陣列分為普通陣列和關聯陣列。普通陣列 只能使用整數作為陣列索引。關聯陣列 可以使用字串作為陣列索引。0...