應用層原理

一. 應用結構體系結構:包括客戶端 - 服務端體系結構和P2P體系結構。

1. 客戶端 - 服務端體系結構是存在一個經常開機的服務器,接受來自各方客戶端的請求,如瀏覽器請求。

2. P2P體系結構是應用程序在間斷連接的主機之間使用直接通信,此時,主機可以當客戶端(接受)也可以當服務端(發送),如共享文件。

二. 進程間通信

1. 進程:在操作系統中運行的程序,它是有操作系統定義的程序,專門負責進行通信的,而應用程序在某個操作系統中要進行通信(計算機網絡交換報文),必須調用進程。

2. 客戶和服務端進程:網絡應用程序由成對進程組成,一端進程標識爲客戶端,另一端進程標識爲服務端。舉個例子,你要瀏覽google網站,首先你要打開瀏覽器,此時在你的主機就建立了一個進程(客戶端),你輸入google的網址,等待google服務器的響應,如果google服務器沒有打開這個網站的進程,你就會返回一個錯誤。所以作爲服務端,會一直開着服務進程等待客戶機來連接。

3. 套接字(socket):是應用層和運輸層的接口,負責發送或接受網絡報文。進程就像是一座房子,建好了房子你得有個門吧,你要出去會見朋友,朋友也要來做客,而套接字(socket)就是進程的 "門" ,也成爲應用程序和網絡之間的應用程序編程接口(API)。

4. 進程尋址:要向另一臺運行的主機進程發送分組,必須要指定地址(IP地址)和用於接受分組的通道(接收socket),也成爲端口號。


三. HTTP協議

web相關概念:

(1). web頁面:有對象組成。一個對象又一個文件組成,如html文件,圖片,視頻文件等。

(2). web瀏覽器:實現了HTTP的客戶端。

(3). web服務端:實現了HTTP的服務端。(Apache, IIS,nginx等web服務器)


1. HTTP:定義了web客戶機向web服務端請求web頁面的方式,以及web服務器向客戶機發送頁面的方式。

2. HTTP基本原理:HTTP使用TCP作爲它的支撐運輸協議,HTTP客戶機首先向服務端發起TCP連接,一旦連接成功,瀏覽器和服務器進程就可以通過套接字接口訪問TCP。(web套接字接口一般爲80端口)

3. HTTP原理:


過程:

1. 非持續連接的HTTP

客戶機先向服務器發出TCP報文段請求連接,服務器響應向客戶機發出TCP報文段(這是一個往返時間RTT),建立好了TCP連接通道之後,客戶機向服務器發起HTTP請求文件,服務器響應,向客戶機傳輸文件(服務器傳輸文件時間)並等待客戶機接受收文件,客戶機完全接收文件(存在接收文件時間)後,服務器關閉TCP連接,又是一個RTT。客戶機瀏覽一個web頁面要經歷過 "三次握手" ,總的響應時間爲2*RTT+文件/接收傳輸時間。(後面再講TCP報文段格式)

2. 持續連接的HTTP

服務器在發送響應後保持該TCP的連接不間斷,connection:keep-alive


四. HTTP報文格式

1.HTTP請求格式:



2. HTTP響應格式:


實例:


3. cookie:

HTTP服務器是無狀態的,不會識別用戶,但是服務器又希望能夠識別用戶身份,所以HTTP使用了cookie,它允許站點對用戶進行跟蹤,識別用戶身份,比如你上網購物,沒有用戶身份識別,你打開一個頁面就是一個新的身份,服務器不知道,存在cookie,你可以以你本人的身份去瀏覽整個網站的所有商品。建立cookie如圖:


cookie技術存在四個組件:

(1)存在HTTP響應報文中的一個cookie首部行

(2)存在HTTP請求報文中的cookie首部行

(3)用戶瀏覽器中保留的cookie文件

(4)位於web站點的後端數據庫中

實例:


4. Web緩存

Web緩存器也叫代理服務器,它能夠代表初始Web服務器來滿足HTTP請求的網絡實體,有自己的磁盤存儲空間,保存最近請求過的對象的副本。如圖:


請求過程:

(1)瀏覽器向緩存服務器發送一個TCP連接,並向web緩存器發送一個HTTP請求

(2)web緩存器檢查本地是否存儲了對象,如果存儲了就向客戶機瀏覽器發送HTTP響應報文

(3)如果本地沒有該對象,則web緩存器向初始服務器請求TCP連接發送HTTP請求,初始服務器發送具有該對象的HTTP響應

(4)web緩存器在本地存儲一個對象副本,並向瀏覽器發送該對象副本。

5. 條件GET方法:HTTP允許web緩存器證實它的對象是最新的,web緩存器向初始服務器發送含有 "If-Modified-Since:"的首部行,它將和初始服務器的 "Last-Modified" 做對比,如果一致,則返回一個不包含對象(節省帶寬)帶有 "304 Not Modified" 的響應報文 ,說明對象是最新的,可以發送給客戶機瀏覽器。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章