計算機網路 應用層

2021-08-19 22:14:16 字數 4051 閱讀 1008

計算機網路分層:

應用層是網路應用程式和及應用層協議存留的地方。

應用層協議分布在多個端系統上,乙個端系統中的應用程式使用協議與另乙個端系統中的應用程式交換資訊的分組。 

該層資訊被稱為報文。

常用的應用層協議有:http,smtp,ftp, dns

1.基本概念

執行在不同端系統的程式的通訊是通過程序完成的。

程序通過套接字的軟體介面向網路傳送報文和從網路接收報文。

應用程式開發者對運輸層的控制僅限於:

2.運輸服務

運輸層服務的要求:

運輸服務:udp,tcp。

tcp:

(1)需要建立連線。在應用層資料報文開始流動之前。tcp讓客戶端和伺服器就交換了運輸層控制資訊。就是3次握手。

握手之後,乙個tcp連線就建立了。

(2)可靠的資料傳送服務。無差錯、按適當順序交付。

udp:

無連線(就是沒有握手過程),到達的報文可能是亂序到達。

1.http請求報文格式

http請求報文主要由請求行、請求頭部、請求正文3部分組成

(a)請求行

由3部分組成,分別為:請求方法、url(

見備註1

)以及協議版本,之間由空格分隔

請求方法包括get、head、put、post、trace、options、delete以及擴充套件方法,當然並不是所有的伺服器都實現了所有的方法,部分方法即便支援,處於安全性的考慮也是不可用的

協議版本的格式為:http/主版本號.次版本號,常用的有http/1.0和http/1.1

(b)請求頭部

請求頭部為請求報文新增了一些附加資訊,由「名/值」對組成,每行一對,名和值之間使用冒號分隔

常見請求頭如下:

(c)請求正文

可選部分,比如get請求就沒有請求正文

get請求示例:

post請求示例:

2.http響應報文格式

http響應報文格式:

http響應報文主要由狀態行、響應頭部、響應正文3部分組成

(a)狀態行

由3部分組成,分別為:協議版本,狀態碼,狀態碼描述,之間由空格分隔

狀態**為3位數字,200~299的狀態碼表示成功,300~399的狀態碼指資源重定向,400~499的狀態碼指客戶端請求出錯,500~599的狀態碼指服務端出錯(http/1.1向協議中引入了資訊性狀態碼,範圍為100~199)

這裡列舉幾個常見的:

狀態

狀態碼

說明

200

響應成功

302

跳轉,跳轉位址通過響應頭中的

location

屬性指定

(jsp

中forward

和redirect

之間的區別

400

客戶端請求有語法錯誤,不能被伺服器識別

403

伺服器接收到請求,但是拒絕提供服務(認證失敗)

404

請求資源不存在

500

伺服器內部錯誤

(b)響應頭部

與請求頭部類似,為響應報文新增了一些附加資訊

常見響應頭部如下:

響應

響應頭

說明

server

伺服器應用程式軟體的名稱和版本

content-type

響應正文的型別(是還是二進位制字串)

content-length

響應正文長度

content-charset

響應正文使用的編碼

content-encoding

響應正文使用的資料壓縮格式

content-language

響應正文使用的語言

示例:

3.web快取

4.條件get方法

檔案傳送協議ftp(file transfer protocol)是網際網路上使用最廣泛的檔案傳送協議。

ftp 提供互動式的訪問,允許客戶指明檔案的型別與格式,並允許檔案具有訪問許可權。ftp 遮蔽了各計算機系統的細節,因而適合於在異構網路中任意計算機之間傳送檔案。

檔案傳送協議 ftp 只提供檔案傳送的一些基本的服務,它使用tcp 可靠的運輸服務。ftp 的主要功能是減少或消除在不同作業系統下處理檔案的不相容性。

ftp 使用客戶伺服器方式。乙個 ftp 伺服器程序可同時為多個客戶程序提供服務。ftp 的伺服器程序由兩大部分組成:乙個主程序,負責接受新的請求;另外有若干個從屬程序,負責處理單個請求。

主程序的工作步驟如下:

開啟熟知埠(埠號為 21),使客戶程序能夠連線上。

等待客戶程序發出連線請求。

啟動從屬程序來處理客戶程序發來的請求。從屬程序對客戶程序的請求處理完畢後即終止,但從屬程序在執行期間根據需要還可能建立其他一些子程序。

回到等待狀態,繼續接受其他客戶程序發來的請求。主程序與從屬程序的處理是併發地進行。

ftp的工作程序如下圖所示:

控制連線在整個會話期間一直保持開啟,ftp客戶發出的傳送請求通過控制連線傳送給伺服器端的控制程序,但控制連線不用來傳送檔案。

實際用於傳輸檔案的是「資料連線」。伺服器端的控制程序在接收到 ftp 客戶傳送來的檔案傳輸請求後就建立「資料傳送程序」和「資料連線」,用來連線客戶端和伺服器端的資料傳送程序。

資料傳送程序實際完成檔案的傳送,在傳送完畢後關閉「資料傳送連線」並結束執行。

當客戶程序向伺服器程序發出建立連線請求時,要尋找連線伺服器程序的熟知埠(21),同時還要告訴伺服器程序自己的另乙個埠號碼,用於建立資料傳送連線。

接著,伺服器程序用自己傳送資料的熟知埠(20)與客戶程序所提供的埠號碼建立資料傳送連線。

由於 ftp 使用了兩個不同的埠號,所以資料連線與控制連線不會發生混亂。

網域名稱系統(domain name system) dns:乙個由分層 dns 伺服器實現的分布式資料庫;乙個允許主機查詢分布式資料庫的應用層協議。 dns執行在 udp 之上,使用 53 號埠。 用於將使用者提供的主機名解析為 ip 位址。

結構: 

1. 分布式、層次資料庫 根dns伺服器;頂級域(tld)伺服器;權威dns伺服器。 

2. dns快取

計算機網路 應用層

運輸層為應用程序提供了端到端的通訊服務。但不同的網路應用程序之間,還需要有不同的通訊規則。因此在運輸層協議之上,還需要有應用層協議。應用程序之間的通訊必須遵守嚴格的規則。應用層的協議應當定義 1 網域名稱系統dns 網域名稱到ip位址的解析是由分布在網際網路上的許多網域名稱伺服器程式共同完成的。網域...

計算機網路 應用層

我們現在已經了解了運輸層為應用程式提供了端到端的通訊服務,但是不同的應用程序之間,還需要不同的通訊協議,因此在運輸層協議上方還有應用層協議,這是因為每個應用層協議都是為了解決一類問題,而問題的解決又要通過不同主機的多個應用程序之間通訊和協同工作來完成,應用程序之間的通訊需要遵守嚴格的規則,應用層的具...

計算機網路 應用層

網路應用模型 c s模型 區分處理請求的伺服器和發出請求的客戶機 p2p模型 每台機器既是伺服器也是客戶機 網域名稱解析過程 m.xyz.com 迭代查詢 1 客戶機向其本地網域名稱伺服器發出dns請求報文 2 本地網域名稱伺服器接收到請求後,查詢本地快取,假設沒有該記錄,則以dns客戶的身份向根網...