Web應用與應用層協議html
本篇博文中的主要參考文獻是《計算機網絡高級教程》,分別是吳功宜老先生和吳英教授合著。這部教程是我研究生老師所推薦的網絡必讀科目,因爲該教程講解的基礎知識詳細,但內容頗多,達700多頁。特將各章節主要內容總結,後續各章節將逐步更新,因爲本人學識有限,僅總結的是做者本身認爲重要的內容。算法
文章中的Why表示產生的背景,也就是說爲何會產生該技術,What表示該技術是什麼,How表示該技術是如何使用的。如下將用字母表示各問題。瀏覽器
應用層協議分爲3種基本類型:基礎設施類、網絡應用類、網絡管理類。緩存
基礎設施類包括:服務器
支持Internet運行的全局基礎設施類應用層協議——DNS(域名服務協議);支持各個網絡系統運行的局部基礎設施類應用層協議 ——DHCP(動態主機配置協議)。網絡
網絡應用類包括:基於C/S工做模式與基於P2P工做模式的應用層協議。 併發
基於C/S工做模式的應用層協議包括:Telent(網絡終端協議)、SMTP(電子郵件服務協議)、FTP(文件傳輸協 議)、HTTP(WEB服務協議)。spa
基於P2P工做模式的應用層協議包括:文件共享協議、即時通訊協議、流媒體協議、共享存儲協議、協同工做協議。計算機網絡
網絡管理類:主要是SNMP(簡單網絡管理協議)。代理
下面咱們來看基礎設施類中的Telent(網絡終端協議):
Why:不一樣型號計算機之間的差別性,就是異構計算機系統之間的互聯問題。
What:Telent引入NVT(網絡虛擬終端)的概念,提供一種專門的鍵盤定義,用來屏蔽不一樣計算機系統對鍵盤輸入的差別性。
How:用戶的實終端採用用戶終端的格式和本體Telnet客戶通訊;遠程計算機採用主機系統格式與Telent服務器通訊。在Telent客 戶進程與Telent服務器進程之間,經過NVT(網絡虛擬終端)標準來進行通訊。以下圖所示:
SMTP(簡單郵件傳輸協議):
電子郵件系統分爲郵件服務器端和郵件客戶端。
郵件服務器端包括用來發郵件的SMTP服務器、用來接收郵件的POP3(郵局協議)、或IMAP(交互式郵件存取協議)服務器以及用來存儲電子郵件的電子郵箱。
郵件客戶端包括用戶發送郵件的SMTP代理、用來接收郵件的POP3代理以及爲用戶提供管理界面的用戶接口程序。
FTP(文件傳輸協議):
What:文件傳輸服務是由FTP應用程序提供,而FTP應用程序遵循的是TCP/IP中的FTP協議。它運行用戶將文件從一臺計算機傳輸到另 一 臺計算機,並能保證傳輸的可靠性。
How:首先創建控制鏈接,FTP控制鏈接的端口號爲21;再創建數據鏈接,FTP數據鏈接的端口號是20。其次在FTP數據傳輸創建之 後, FTP客戶就能夠從FTP服務器下載或上傳文件。
最後結束數據傳輸時,首先釋放FTP數據鏈接,而後再釋放FTP控制鏈接。以下圖所示:
匿名FTP服務:
What:提供服務的人或機構在其FTP服務器的帳戶上創建了一個公開帳戶,並賦予該帳戶訪問公共目錄的權限,以提供免費的服務。
How:用戶訪問匿名服務的FTP服務器,不須要輸入用戶名和密碼。若是輸入的話,可用anonymous做爲用戶名,guest做密碼。
Web應用:
支持Web服務的三個關鍵技術:
HTTP(超文本傳輸協議):它是在Web瀏覽器和Web服務器之間的傳輸協議。
URL(統一資源定位符):用來標識Web中的資源,便於用戶查找。
HTML(超文本標註語言)
URL(統一資源定位符):
Why:在Internet中,必需要制定一種方法來標記能夠提供給用戶共享的每個文件或對象。
What:由三部分組成:協議類型、主機名、路徑及文件名。
例如:HTTP://www.nanki.edu.cn/index.html
http:指出要使用的協議類型,www.nanki.edu.cn指出要訪問的服務器的主機名,index.html指出要訪問的主頁的路徑與文件名。
HTTP協議:
下面咱們來了解一下該協議的特性。
1) 無狀態協議
Why:爲了提升Web服務器的併發處理能力
What:服務器再接收到HTTP請求報文後,返回應答報文以後不保存有關Web瀏覽器的任何信息。即便是同一個Web瀏覽器在幾秒鐘以內兩次訪問同一個Web服務器,它也必須分別創建兩次鏈接。
2) 非持續鏈接
What:若是客戶須要向服務器發出多個服務請求報文,而服務器須要對每個請求報文進行應答,那麼就須要爲每個客戶與服務 器的請求報文與應答報文創建一個TCP鏈接。
3) 持續鏈接
What:全部客戶與服務器的請求報文與應答報文均可以經過一個TCP鏈接來完成
持續鏈接有兩種工做方式:非流水線與流水線
非流水線方式的特色是:客戶端只有在接收到前一個響應時才能發出新的請求,這時服務器每發送一個對象以後,要等待下一個請求的到來,鏈接處於空閒狀態,浪費服務器的資源。
流水線方式:客戶端在沒有收到前一個響應時就可以發出新的請求,客戶端請求像流水線做業般,連續地發送到服務器端,服務器能夠連續地發送應答報文。
(CDN)內容分發網技術研究
Why:爲了緩解Internet用戶增長與網絡服務等待時間增加的矛盾。
What:若是某個內容被不少用戶關注,那就將它緩存在離用戶最近的結點上;選擇合適的緩存節點爲用戶提供服務。
(DNS)域名系統
Why:早期主機名到地址的映射是放到主機文件(hosts.txt)中,主機名到IP地址的解析須要將hosts.txt文件傳送到各個主機來實現,這使得網絡信息中心主機負載太重。
What:其是Internet中的主機按照必定的規則,用天然語言表示的名字,它與肯定的IP地址相對應。
1) 域名空間:定義一個包括全部可能出現的主機名字的域名空間。
2) 域名註冊:保證每臺主機域名的惟一性。
3) 域名解析:提供一種有效的域名與IP地址轉換機制。
How:將主機名轉換成IP地址,使得用戶方便的訪問各類Internet資源與服務。
區、域與域名服務器:
Why:例如設置管理nanki.edu.cn域的域名服務器最簡單的方法是設置一個域名服務器,管理全部南開大學內部的域名。但這種集中管理的方法帶來的是域名系統運行效率低下,不能知足服務質量的要求。
How:
1) 根據須要將一個域劃分紅不重疊的多個區。
2) 每一個區設置相應的權限域名服務器,用來保存該區內因此主機的域名與IP地址映射關係數據。區是域名服務器管轄的範圍。
3) 區和區的域名服務器相互鏈接,構成支持整個域的域名服務器體系。
域名解析算法:
遞歸解析
What:在遞歸解析過程當中,若是本地域名服務器沒有要解析的域名信息,那麼本地服務器將接管向其餘域名服務器請求解析的責任,再將最終結果返回給客戶。
反覆解析
What:本地域名服務器若是不能返回最終的解析結果,那麼它只能返回它認爲能夠解析的域名服務器的IP地址。客戶端解析程序就向下一個域名服務器發出解析請求,直至最終得到須要的解析結果。