一、應用程序體系結構
兩種主流體系結構:CS結構和P2P結構。
二、CS結構
1.有一個總是打開的主機稱爲服務器,它服務於來自許多其他稱爲客戶的主機的請求。
2.另一個特徵是服務器具有固定的、周知的地址,該地址稱爲IP地址。
三、P2P
1.應用程序在間斷連接的主機對之間直接使用通信,這些主機對被稱爲對等方。
2.另一個特性是自擴展性。
3.未來P2P會面臨三個挑戰:ISP友好、安全性和激勵。
四、進程通信
1.客戶和服務器進程
發起通信的進程被標識爲客戶,會話開始時等待聯繫的進程是服務器。
2.進程與計算機網絡之間的接口
進程通過一個稱爲套接字socket的軟件接口向網絡發送報文和從網絡接收報文。
套接字socket也成爲應用程序和網絡之間的API。
應用程序開發者可以控制套接字在應用層端的一切,但是對於該套接字的運輸層端幾乎沒有控制權。
對運輸層的控制僅限於:選擇運輸層協議;也許能設定幾個運輸層參數。
3.進程尋址
主機的地址即IP地址和定義接收進程的標識符即port端口號。
五、可供運輸層使用的運輸服務
1.可靠數據傳輸
2.吞吐量:具有吞吐量要求的應用程序被稱爲貸款敏感的應用;與之對應的是彈性應用。
3.定時或者叫時延
4.安全性
六、因特網提供的運輸服務
1.TCP
面向連接的服務:這條連接是全雙工的;
可靠的數據傳送服務;
擁塞控制機制;
2.UDP
非可靠的數據傳送服務;
沒有擁塞控制機制;
七、應用層協議
應用層協議定義了運行在不同的端系統上的應用程序如何相互傳遞報文。
特別定義了以下內容:
交換的報文類型,例如請求報文和響應報文;
各種報文類型的語法,如報文中的各個字段以及這些字段是如何描述的;
字段的意義,即這些字段中包含的信息的意義;
一個進程如何以及何時發送報文,對報文進行相應的規則。
應用層協議只是網絡應用的一部分。
八、HTTP概況
1.Web的應用層協議是超文本傳輸協議HTTP(HyperText Transfer Protocol),它是Web的核心。
2.HTTP由客戶程序和服務器程序實現。
3.服務器向客戶端發送被請求的文件,而不存儲任何關於該客戶的狀態信息。假如某個特定的客戶在短短的幾秒鐘之內兩次請求同一個對象,服務器會發送兩次該對象。
4.因爲第三點,我們說HTTP是一個無狀態協議(stateless protocol)。
九、非持續連接和持續連接
非連續連接:每個請求/響應是經過一個單獨的TCP連接發送;
持續連接:所有的請求/相應都經過同一個TCP連接發送。
1.採用非持續連接的HTTP
往返時間RTT(Round-Trip Time):該時間是指一個短分組從客戶到服務器然後再返回客戶所花費的時間。
三次握手的前兩次耗費了一個RTT。
缺點:一個RTT用於創建TCP;另一個RTT用於請求和接收一個對象。給Web服務器帶來了嚴重的負擔。
2.採用連續連接的HTTP
十、HTTP報文格式
1.HTTP請求報文
2.HTTP相應報文
十一、用戶與服務器的交互:cookie
cookie允許站點對用戶進行跟蹤。
cookie可用於標識一個用戶。用戶首次訪問一個站點時,可能需要提供一個用戶標識。在後繼會話中,瀏覽器向服務器傳遞一個cookie首部,從而向該服務器標識了用戶。因此cookie可以在無狀態的HTTP之上建立一個用戶會話層。
十二、Web緩存
Web緩存器(Web cahce)也叫代理服務器(proxy server)。
因特網上部署Web緩存器有兩個原因:
首先,Web緩存器可以大大減少對客戶請求的響應時間;
其次,Web緩存器能夠大大減少一個機構的接入鏈路到因特網的通信量。
此外,Web緩存器能從整體上大大減低因特網上的Web流量,從而改善了所有應用的性能。
內容分發網絡(Content Distribution Network,CDN):
CDN公司在因特網上安裝了許多地理上分散的緩存器,因而使大量流量實現了本地化。
十三、條件GET方法
Web緩存器引入新的問題,即緩存器中的副本可能是陳舊的。
如果請求報文使用的是GET方法,並且包含一條“If-Modified-Since”首部行,則這個請求報文是條件GET報文。
條件GET的思想就是覈對請求對象的修改時間,而不是覈對全部信息。當返回的首部行爲304 Not Modified時,說明可以使用緩存器中的對象。