1讼油、計算機網(wǎng)絡(luò)應(yīng)用體系結(jié)構(gòu)
有三種類型:
- 客戶/服務(wù)器(C/S)結(jié)構(gòu):最主要的特征是通信只在客戶端和服務(wù)器之間進(jìn)行晓折,客戶與客戶之間不進(jìn)行直接通信惑朦。
- P2P(Peer to Peer)結(jié)構(gòu):每個對等端都同時具備C/S應(yīng)用的客戶與服務(wù)器的特征,是一個服務(wù)器與客戶的結(jié)合體漓概,對等端(既能接收請求漾月,又能發(fā)送請求)之間直接通信
- 混合結(jié)構(gòu):既有中心服務(wù)器的存在,又有對等端(客戶)間的直接通信
2胃珍、網(wǎng)絡(luò)應(yīng)用通信基本原理
C/S通信基本原理:服務(wù)器端運行的是服務(wù)器進(jìn)程梁肿,被動地等待客戶請求服務(wù);客戶端運行的是客戶進(jìn)程觅彰,主動發(fā)起通信吩蔑,請求服務(wù)器提供服務(wù)。
應(yīng)用進(jìn)程間遵循應(yīng)用層協(xié)議來交換應(yīng)用層報文填抬。
3烛芬、域名系統(tǒng)(DNS)
域名:采用特定的字符符號以特定的結(jié)構(gòu)來表示計算機的名稱,即層次樹狀結(jié)構(gòu)的命名方法飒责;
3.1 層次化域名空間
層次樹狀結(jié)構(gòu)的命名方法:
樹形結(jié)構(gòu):
- 便于計算機查找蛀骇。比如 www.baidu.com 會先查找頂級域名com域,再查找baidu域读拆,最后找www域
- 便于分布式管理擅憔,整個域名非常多,所有數(shù)據(jù)如果存在一臺服務(wù)器上檐晕,非常龐大暑诸,也難以查找,所以把整個域名體系分開辟灰,在不同的服務(wù)器上進(jìn)行存儲和查找个榕;
3.2 域名服務(wù)器
- 域名解析:將域名映射為IP地址的過程。在瀏覽器中輸入域名回車的時候芥喇,瀏覽器會提交一個域名解析的請求發(fā)送給域名服務(wù)器西采,讓域名服務(wù)器查找這個域名對應(yīng)的IP地址是多少。
- 域名服務(wù)器:為了實現(xiàn)域名解析继控,需要建立分布式數(shù)據(jù)庫械馆,存儲網(wǎng)絡(luò)中域名與IP地址的映射關(guān)系數(shù)據(jù)胖眷,這些數(shù)據(jù)庫存儲在域名服務(wù)器上,域名服務(wù)器根據(jù)用戶的請求提供域名解析服務(wù)霹崎。
- 域名服務(wù)器分類:
- 根域名服務(wù)器:主要管理根域
- 頂級域名服務(wù)器:主要管頂級域
三種頂級域名:1珊搀、國家頂級域名nTLD 2、通用頂級域名gTLD 3尾菇、基礎(chǔ)設(shè)施頂級域名ARPA - 權(quán)威域名服務(wù)器:管理更下層次的域名
- 本地域名服務(wù)器:為用戶提供服務(wù)境析,服務(wù)窗口,可以向其他域名服務(wù)器發(fā)送請求
題:
- 目前存在13個DNS根域名服務(wù)器
- a.root-server.net是一臺DNS根域名服務(wù)器的域名派诬;(a-m)
- 根域名服務(wù)器都是由位于同一個地理位置的服務(wù)器集群組成(錯) 大多數(shù)根域服務(wù)器都是由獨立的多臺物理服務(wù)器構(gòu)成的服務(wù)器集群劳淆,而有的根域名服務(wù)器則是由分布在不同地理位置的多臺鏡像服務(wù)器組成的
- DNS根域服務(wù)器對于DNS系統(tǒng)的整體運行具有極為重要的作用。
3.3 域名解析過程
- 遞歸查詢:代替查詢主機或其他域名服務(wù)器默赂,進(jìn)行進(jìn)一步的域名查詢憔儿,并將最終解析結(jié)果發(fā)送給查詢主機或服務(wù)器。一層一層查詢放可,再一層一層返回。a向b提問朝刊,b不知道耀里,b問c,c不知道拾氓,c問d冯挎,d知道,將結(jié)果返回c再返回b再返回a咙鞍。
- 迭代查詢:只是將下一步要查詢的服務(wù)器告知查詢主機或服務(wù)器房官,不會幫主機進(jìn)行查詢。续滋。a向b提問翰守,b不知道,b告訴a疲酌,c可能知道蜡峰,a再去問c,c告訴a朗恳,d可能知道湿颅,a問d,d知道粥诫,將結(jié)果返回a油航。
遞歸查詢問題:每天會有大量的查詢請求,如果每次都需要本地域名發(fā)給根域服務(wù)器怀浆,根域服務(wù)器的負(fù)載將會非常大谊囚,再由根域服務(wù)器向頂級域名服務(wù)器進(jìn)行查詢怕享,還要等待結(jié)果返回,工作量會非常大秒啦,會非常慢熬粗。
現(xiàn)實中往往是兩種方式結(jié)合起來查詢。
4余境、萬維網(wǎng)應(yīng)用
4.1驻呐、萬維網(wǎng)應(yīng)用結(jié)構(gòu)
瀏覽器通過超文本傳輸協(xié)議(HTTP)向服務(wù)器發(fā)起請求。
點擊一個鏈接芳来,客戶機通過該鏈接向域名服務(wù)器發(fā)送請求含末,通過解析域名得到web服務(wù)器的IP地址,客戶機根據(jù)該IP地址向服務(wù)器發(fā)起一個TCP連接(TCP保證傳輸?shù)目煽啃裕┘瓷啵⑦B接之后在應(yīng)用層的基礎(chǔ)上使用HTTP協(xié)議佣盒,發(fā)出HTTP報文(攜帶URL),服務(wù)器根據(jù)報文和URL來找到相應(yīng)的網(wǎng)頁資源顽聂,該資源(HTML等)會作為HTTP報文的響應(yīng)返回給瀏覽器肥惭,瀏覽器收到HTML等等資源后再進(jìn)行解釋解讀,再以特定的格式顯示在瀏覽器中紊搪。
4.2蜜葱、HTTP
概念:超文本傳輸協(xié)議,定義瀏覽器如何向web瀏覽器發(fā)送請求以及web服務(wù)器如何向瀏覽器進(jìn)行相應(yīng)
版本:http/1.0 http/1.1 http/2 http/3
兩種連接:
- 非持久連接:
- 串行方式請求每個對象耀石,且每次都要新建立TCP連接牵囤,比如請求一個html,過程是這樣的:建立TCP連接滞伟,請求web頁面揭鳞,釋放斷開TCP,瀏覽器開始解析頁面梆奈,發(fā)現(xiàn)有三張圖片野崇;建立TCP連接,請求第一張圖片亩钟,釋放斷開TCP舞骆;建立TCP連接,請求第二張圖片径荔,釋放斷開TCP督禽;建立TCP連接,請求第三張圖片总处,釋放斷開TCP狈惫。
- 并行方式請求每個對象,每個請求建立一個TCP連接。比如請求一個html胧谈,過程是這樣的:首先建立一個TCP連接忆肾,獲取到html頁面,釋放斷開TCP菱肖,瀏覽器開始解析頁面客冈,發(fā)現(xiàn)有三張圖片;并行建立3個TCP連接稳强,同時請求三個圖片資源场仲,然后釋放連接。
- 持久連接:建立一個連接后退疫,請求對象渠缕,請求完對象后不馬上斷開連接,再請求第二個對象褒繁,第三個對象亦鳞,請求完成后再斷開連接。
- 非流水方式持久連接:建立一個連接棒坏,請求獲取html文件燕差,獲取文件之后請求第一個圖片,獲取第一個圖片后再獲取第二個圖片坝冕,獲取后再獲取第三個圖片徒探,獲取成功后斷開連接;
- 流水方式持久連接:建立一個鏈接徽诲,請求獲取html文件,同時請求三個圖片吵血,獲取到三個圖片之后谎替,斷開連接。
HTTP報文:
- 請求報文:從客戶端向服務(wù)器發(fā)送請求報文蹋辅。
- GET:請求讀取由URL所標(biāo)識的信息
- HEAD:請求讀取由URL所標(biāo)識的信息的首部钱贯,無需在響應(yīng)報文中返回對象
- POST:給服務(wù)器添加信息
- OPTIONS:請求一些選項的信息
- PUT:在指明的URL下存儲一個文檔
- 響應(yīng)報文:從服務(wù)器到客戶的回答。
- 1xx 信息成功 通告信息侦另,可能還需進(jìn)一步交互
- 2xx 成功 成功完成客戶請求的操作秩命,并進(jìn)行相應(yīng)
- 3xx 重定向 表示資源已移走,需要向新url發(fā)起請求
- 4xx 客戶端錯誤 由于客戶端錯誤褒傅,無法成功響應(yīng)
- 5xx 服務(wù)端錯誤 由于服務(wù)器端錯誤弃锐,無法成功響應(yīng)
4.3、Cookie
Cookie中文名稱為小型文本文件殿托,指某些網(wǎng)站為了辨別用戶身份霹菊、進(jìn)行會話跟蹤而存儲在用戶本地終端上的數(shù)據(jù)。
彌補了HTTP協(xié)議無狀態(tài)性的不足支竹,有利于進(jìn)行用戶跟蹤并提供針對性的服務(wù)旋廷,但也帶來一些安全問題鸠按。
第一次訪問某個網(wǎng)站,沒有攜帶cookie進(jìn)行訪問饶碘,網(wǎng)站沒有識別到cookie目尖,就會為該用戶創(chuàng)建一個id,然后把該id存進(jìn)數(shù)據(jù)庫里扎运,訪問記錄也會存進(jìn)數(shù)據(jù)庫瑟曲,然后把這個id通過普通http響應(yīng)報文進(jìn)行setCookie,把cookie設(shè)置到瀏覽器上绪囱;第二次進(jìn)該網(wǎng)頁的時候测蹲,就會攜帶cookie發(fā)起http請求,網(wǎng)站會根據(jù)cookie去數(shù)據(jù)庫里搜索上次訪問的頁面或數(shù)據(jù)鬼吵,返回給用戶扣甲,同時存下這次的瀏覽記錄;第三次訪問同理第二次齿椅。
5琉挖、Internet電子郵件
5.1、電子郵件系統(tǒng)主要包括郵件服務(wù)器涣脚、簡單郵件傳輸協(xié)議(SMTP)示辈、用戶代理和郵件讀取協(xié)議等
5.2、SMTP:SMTP是Internet電子郵件中核心應(yīng)用層協(xié)議遣蚀,實現(xiàn)郵件服務(wù)器之間或用戶代理到郵件服務(wù)器之間的郵件傳輸矾麻。
SMTP使用傳輸層TCP實現(xiàn)可靠數(shù)據(jù)傳輸,端口號25芭梯。
SMTP是通過3個階段的應(yīng)用層交互完成郵件的傳輸险耀,分別是握手階段、郵件傳輸階段和關(guān)閉階段玖喘。
SMTP的基本交互方式是SMTP客戶端發(fā)送命令甩牺,命令后面可能攜帶參數(shù),SMTP服務(wù)器對命令進(jìn)行應(yīng)答累奈。
5.3贬派、電子郵件格式與MIME
- 電子郵件包含首部、空白行澎媒、主體3部分
- MIME(多用途互聯(lián)網(wǎng)郵件擴展):原來郵件只能傳輸ASCII碼文本內(nèi)容搞乏,后來使用MIME,可以傳輸別的信息戒努,中文查描、圖片等等。將非7位ASCII碼文本內(nèi)容轉(zhuǎn)換為7位ASCII碼文本內(nèi)容,然后再利用SMTP進(jìn)行傳輸冬三。在郵件首部增加MIME首部行匀油,說明主題內(nèi)容,原本的數(shù)據(jù)類型以及采用的編碼標(biāo)準(zhǔn)等勾笆。
5.4敌蚜、郵件讀取協(xié)議
- 郵局協(xié)議:POP3 發(fā)指令給服務(wù)器,服務(wù)器把郵件下載到用戶電腦上窝爪,用戶進(jìn)行操作弛车,對郵件的操作是對本地的操作
- 互聯(lián)網(wǎng)郵件訪問協(xié)議:IMAP 通過指令,操作郵箱蒲每,對郵件的操作是對服務(wù)器的操作
- 通過瀏覽器訪問郵件使用HTTP協(xié)議 不依賴郵件客戶端軟件
6纷跛、FTP:文件傳輸協(xié)議
FTP-在互聯(lián)網(wǎng)的兩個主機間實現(xiàn)文件互傳的應(yīng)用層協(xié)議。
C/S模式邀杏,采用控制連接
(21端口)傳輸控制命令贫奠,數(shù)據(jù)連接
(20端口)傳輸文件內(nèi)容
7、P2P應(yīng)用 - 對等模式
優(yōu)勢:充分聚集利用了端系統(tǒng)(對等方主機)的計算能力以及網(wǎng)絡(luò)傳輸帶寬望蜡,對服務(wù)器的依賴很小唤崭。