第六章 應用程式層(DNS和http協議詳解)

來源:互聯網
上載者:User

標籤:color   英文   提高   傳輸層   哪些   使用者   理論   htm   興趣   

    序言

       這是電腦網路基礎的最後一篇博文了,大體的從物理層到最上層的應用程式層做了一個大概的瞭解,花了也有快1個月的時間了,在本章結尾會給你們我學習該課程的視頻資料,我希望能幫到所有想學習想提高自己技術的同學,我看到很多厲害的的部落格的文章都被鎖了,我希望高手度能夠協助剛成長並且想努力提高技術的人。所以等我以後牛逼了,肯定會協助哪些迷茫的人,因為自己曾經迷茫過,走了很多彎路。

                                                            --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相當於每個人的電腦度可以當伺服器,也可以當用戶端,不單單限制於只能Client Access Server,你自己的電腦可以去訪問別人的電腦上的內容,別的同樣可以訪問你電腦上的內容,這樣達到一種共用的狀態。

 

三、應用程式層協議的舉例。

      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

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

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

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

                平常會省略協議和連接埠號碼,因為這些度是預設的,在訪問首頁時,路徑也會省略。比如www.baidu.com這個預設進入百度的首頁 完整寫法 http://www.baidu.com:80/index.htm 

          超文本傳送協議HTTP。

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

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

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

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

                  請求行            響應行

                  要求標頭部           響應體

                  請求資料           響應資料

          請求報文格式

              

          響應報文格式

              

 

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

          請求報文:

              

              

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

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

            3、User-Agent:使用什麼Proxy 伺服器,這裡就是FireFox,也就是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講的很簡單,但是http協議的內容實在是太多了,只能取重要的一點點講解一下,有興趣的同學可以自己去網上找找http的書籍觀看,推薦一本HTTP權威指南,我有電子版,資源串連會在下面,可以自己去下載。。後續有時間,我也會花時間把這本書看完,然後寫成博文。

 

      電腦網路教程視頻資源連結      密碼:9wr2

      

      HTTP權威指南        密碼:k07z

 

 

      如果失效了,請加我qq:526745683 向我索取資源,註明部落格園。謝謝

 

第六章 應用程式層(DNS和http協議詳解)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.