應用層是tcp/ip五層(四層)模型的最頂層,主要負責程式間的溝通,如簡單電子郵件傳輸(smtp),檔案傳輸協議(ftp),網路遠端訪問協議(telnet)等,網路程式設計主要就是針對應用層
http協議——超文字傳輸協議
1 http協議介紹
http協議是程式設計師自己定義的乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。http是乙個無狀態的協議。
http協議(hypertext transfer protocol)是用於從www伺服器傳輸超文字到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。
2 url介紹
2.1 url格式及欄位
2.2 urlencode和urldecode
在上面了解過url的格式後,但是在查詢一些包含特殊字元的資訊時卻看到一些不一樣的資訊
在問號?後面的字段是查詢字串,我們查詢的內容為c++,那麼在問號後面顯示的資訊應該為wd=c++,但是實際上顯示的內容為wd=c%2b%2b,這是為什麼??
因為在url中本身是包含一些字元的,所以url就規定在引數中出現的特殊字元必須進行轉義——將字元變為16進製制,然後從右到左取四位,每兩位做一位,前面加上%,所以就變為上面的格式了
3 http協議格式
http協議分為http請求和http響應,因此兩種格式也不相同,但是大體分為四部分
3.1 http請求格式
主要分為四部分:
(1)請求行:在http請求報文中第一行,以空格為界,分為三個區域:【請求方法,常為get/post】+【請求的資源url】+【http協議版本,常為1.0/1.1】;
(2)請求報頭header:在http請求報文中從第二行到空行之前的即為請求報頭,是請求屬性,均以冒號分割的鍵值對形式呈現,每組屬性間用 \n 分隔;
(3)空行:表示報頭已完,不能省略
(4)請求正文body:空行以後的均是請求正文,表示要提交給瀏覽器看的訊息,允許為空字串。
其中:
1)get方法:請求訊息在正文中
2)post方法:請求訊息在報文中
3.2 http響應格式
主要分四部分:
(1)響應行:在http請求報文中第一行,以空格為界,分為三個區域:【協議版本號】+【狀態碼】+【狀態碼解釋】;
(2)響應報頭header:在http請求報文中從第二行到空行之前的即為請求報頭,表示請求的屬性;
(3)空行:表示報頭已完,不能省略;
(4)響應正文body:空行以後的均是請求正文,允許為空字串,這部分內容為真實能夠看到的(html/js/css頁面)
下面是乙個例項
4 http的方法
5 http狀態碼
比較常見的狀態碼:200(ok),404(not found),403(forbidden),302(redirect,重定向)
TCP IP五層模型 應用層 DNS協議
1.定義 網域名稱解析協議,把網域名稱解析成對應的ip位址。2.分類 迭代解析 dns所在伺服器若沒有可以響應的結果,會向客戶機提供其他能夠解析查詢請求的dns伺服器位址,當客戶機傳送查詢請求時,dns伺服器並不直接回覆查詢結果,而是告訴客戶機另一台dns伺服器位址,客戶機再向這台dns伺服器提交請...
TCP IP五層(四層)模型
tcp ip五層 四層 模型中包含的協議有很多,其中典型代表是tcp協議和ip協議。應用層 應用程式直接打交道的協議。在實際開發中涉及最多的部分,甚至需要自己設計應用層協議。傳輸層 負責端到端之間的傳輸。只關注起點和終點 網路層 負責點到點之間的傳輸 需要規劃路徑 資料鏈路層 負責相鄰點之間具體如何...
TCP IP五層(或四層)模型
1 tcp連線 手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過無線網路建立tcp連線。tcp協議可以對上層網路提供介面,使上層網路資料的傳輸建立在 無差別 的網路之上。建立起乙個tcp連線需要經過 三次握手 第一次握手 客戶端傳送syn包 syn j 到伺服器,並進入s...