TCPIP協(xié)議及網(wǎng)絡(luò)編程技術(shù):第10章 應(yīng)用層常用協(xié)議與編程終版_第1頁
TCPIP協(xié)議及網(wǎng)絡(luò)編程技術(shù):第10章 應(yīng)用層常用協(xié)議與編程終版_第2頁
TCPIP協(xié)議及網(wǎng)絡(luò)編程技術(shù):第10章 應(yīng)用層常用協(xié)議與編程終版_第3頁
TCPIP協(xié)議及網(wǎng)絡(luò)編程技術(shù):第10章 應(yīng)用層常用協(xié)議與編程終版_第4頁
TCPIP協(xié)議及網(wǎng)絡(luò)編程技術(shù):第10章 應(yīng)用層常用協(xié)議與編程終版_第5頁
已閱讀5頁,還剩108頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)第10章應(yīng)用層常用協(xié)議與編程2017年5月主要內(nèi)容域名系統(tǒng) 遠程登錄協(xié)議文件傳輸協(xié)議超文本傳輸協(xié)議基于WinInet的應(yīng)用編程郵件傳輸協(xié)議基于信報API的應(yīng)用編程學習目標理解DNS、Telnet、FTP和HTTP的工作原理。了解基于套接字的應(yīng)用層協(xié)議編程方法。熟悉WinInet編程接口,掌握基于WinInet的編程方法。熟悉MAPI編程接口,掌握基于SMAPI的郵件應(yīng)用程序設(shè)計方法。域名系統(tǒng)域名系統(tǒng)概述域名系統(tǒng)(DomainNameSystem,DNS)是一種工作在TCP/IP的應(yīng)用層的分布式網(wǎng)絡(luò)目錄服務(wù)系統(tǒng),它通過一個遍布全球的分布式數(shù)據(jù)庫,提供主機名稱和IP地址之間的映射。它由名稱解析器、域名空間和DNS服務(wù)器構(gòu)成。名稱解析器和DNS服務(wù)器構(gòu)成客戶機/服務(wù)器結(jié)構(gòu)名稱解析器:請求DNS服務(wù)器的服務(wù)DNS服務(wù)器:響應(yīng)名稱解析器的請求域名空間:是DNS服務(wù)器給出響應(yīng)的依據(jù)域名系統(tǒng)域名系統(tǒng)概述域名系統(tǒng)域名系統(tǒng)概述命名機制平面命名機制:無層次命名機制,主機名采用無結(jié)構(gòu)的字符串。層次命名機制:有層次,倒置樹結(jié)構(gòu)域名系統(tǒng)域名系統(tǒng)概述因特網(wǎng)域名空間在因特網(wǎng)中,域名有兩種表示方法:完整域名(FullyQualifieldDomainName,F(xiàn)QDN),完整域名是指標號序列以圓點結(jié)束的域名,如“.”不完整域名(PartiallyQualitifiedDomainName,PQDN),不完整域名是指標號序列不以圓點結(jié)束的域名,如“”。域名系統(tǒng)域名系統(tǒng)概述因特網(wǎng)域名空間在因特網(wǎng)的域名系統(tǒng)中,根域位于DNS域名樹的最高層,但一般不出現(xiàn)在域名中。頂級域又稱為一級域,是按照組織類型和國家劃分,可以分為3個主要的域:通用頂級域名、國家頂級域名和反向域。在頂級域名的基礎(chǔ)上通常會繼續(xù)劃分為次級域,即二級域,它與具體的公司或組織相關(guān)聯(lián),如“”。而次級域下面的名稱空間稱為子域,往往是指各個公司或組織對名稱空間的進一步劃分。主機名是域名層次樹中的最末級名稱。域名系統(tǒng)域名系統(tǒng)概述因特網(wǎng)域名空間通用頂級域名列表域名系統(tǒng)域名系統(tǒng)概述DNS服務(wù)器在因特網(wǎng)中,域名層次結(jié)構(gòu)是一個非常復(fù)雜的樹型結(jié)構(gòu)。為此,引入了與域名管理類似的具有層次結(jié)構(gòu)的多臺DNS服務(wù)器來進行管理,組成了一個分布式管理系統(tǒng)。一臺DNS服務(wù)器負責管理其所在域中的一部分,并將其稱作區(qū)(Zone)。若某臺DNS服務(wù)器對一個域負責,并且該域沒有再劃分為一些更小的域,此時域和區(qū)的范圍相同,否則區(qū)只是域的一部分。每個區(qū)都與某臺DNS服務(wù)器中的一個區(qū)文件相對應(yīng)。因特網(wǎng)上的主機數(shù)量非常大,記錄主機信息的數(shù)據(jù)庫以區(qū)文件的形式分布在許多不同的DNS服務(wù)器上。域名系統(tǒng)域名系統(tǒng)概述DNS服務(wù)器DNS服務(wù)器主要包括3種類型:主服務(wù)器、次服務(wù)器和高速緩存服務(wù)器。主服務(wù)器是指擁有一個區(qū)文件原始版本的服務(wù)器,并且有關(guān)該區(qū)文件的任何變更都需要在主服務(wù)器的原始版本中進行。次服務(wù)器中的區(qū)文件是某個主服務(wù)器的區(qū)文件的復(fù)制版,關(guān)于該區(qū)文件的任何更改都需要在主服務(wù)器的原始版本中進行,因此次服務(wù)器中的區(qū)文件只是一個只讀文件,可以用來輔助域名解析。高速緩存服務(wù)器中不存在區(qū)文件,僅僅存放最近解析過的域名—IP地址映射表項,其主要用來輔助DNS服務(wù)器完成域名解析,以提高響應(yīng)效率。域名系統(tǒng)域名解析遞歸解析當一個DNS服務(wù)器接收到請求后,如果它本身就是授權(quán)服務(wù)器,則查詢其所存儲的域名空間信息并給出響應(yīng);如果它不是授權(quán)服務(wù)器,則將請求轉(zhuǎn)發(fā)給另一個DNS服務(wù)器;直到請求最終被響應(yīng)后,再逐級將響應(yīng)信息返回給請求客戶機。反復(fù)解析當一個DNS服務(wù)器接收到請求后,如果能給出解析結(jié)果則向客戶機返回最終結(jié)果,否則應(yīng)向客戶提供其認為能夠給出解析結(jié)果的DNS服務(wù)器的IP地址。客戶機收到該IP地址后再向該IP地址對應(yīng)的DNS服務(wù)器發(fā)出請求,直到獲得最終結(jié)果。域名系統(tǒng)域名解析反向解析為了實現(xiàn)由IP地址到域名的映射,DNS在域名空間中設(shè)置了一個稱為的特殊域,專門用于反向解析。為了能夠使反向解析采用與正向解析相同的解析方法,反向解析將IP地址的字節(jié)顛倒過來,構(gòu)成反向解析的名字空間。高速緩存機制DNS服務(wù)器采用了高速緩存技術(shù),存放最近解析過的域名—IP地址映射和描述解析該域名的DNS服務(wù)器位置的信息。這樣可以避免每次解析非本區(qū)域域名時的多次查詢,進而提高查詢效率。域名系統(tǒng)DNS報文包括請求報文和響應(yīng)報文12字節(jié)報文首部和4個長度可變的字段組成一般采用UDP傳輸,超過512字節(jié)采用TCP傳輸UDP和TCP中端口號均為53域名系統(tǒng)DNS報文報文首部包含標識、標志、查詢記錄數(shù)、回答記錄數(shù)、授權(quán)回答記錄數(shù)和附加信息記錄數(shù)6項,每項16字節(jié)請求報文中后三項為0標識字段用于匹配請求與響應(yīng)標志字段包含若干個子字段。域名系統(tǒng)DNS報文報文首部標志字段QR:報文類型標志,0查詢報文,1響應(yīng)報文OpCode:定義查詢響應(yīng)類型的標志,0標準,1相反,2服務(wù)器狀態(tài)請求AA:授權(quán)回答標志,1授權(quán)服務(wù)器,其他未授權(quán)服務(wù)器,只在響應(yīng)報文中有效TC:報文截斷標志,1表示響應(yīng)報文超過512字節(jié),并已截斷為512字節(jié)RD:遞歸回答標志,1表示客戶機希望得到遞歸回答RA:遞歸響應(yīng)標志,其值為1時表示可得到遞歸響應(yīng)rCode:一個4bit的子字段,表示在響應(yīng)中差錯狀態(tài)域名系統(tǒng)DNS報文報文首部標志字段rCode取值域名系統(tǒng)DNS報文查詢部分請求報文必須填寫這部分信息,利用它向DNS服務(wù)器提出查詢請求。主要包含三個部分:查詢名稱:要查詢的域名,由標號序列構(gòu)成,每個標號前有一個字節(jié)指出該標號的字節(jié)長度。查詢類型:定義查詢希望得到的回答類型,在DNS中大約規(guī)定了20個不同的類型值。查詢類:定義了使用DNS的特性協(xié)議類型。域名系統(tǒng)DNS報文查詢部分查詢類型列表域名系統(tǒng)DNS報文查詢部分協(xié)議類型列表域名系統(tǒng)DNS報文資源記錄DNS報文的后三個字段(回答部分、授權(quán)回答部分和附件信息部分)都是由一個或者多個資源記錄組成的資源記錄的格式域名系統(tǒng)DNS報文資源記錄域名:記錄中資源數(shù)據(jù)對應(yīng)的名稱,其格式與查詢部分的查詢名稱字段的格式相同。類型:指資源記錄的類型碼。生存時間:指定了客戶端在緩存中保留資源記錄的秒數(shù),通常資源記錄的生存時間為2天。資源數(shù)據(jù)長度:指定了以字節(jié)為單位的資源數(shù)據(jù)的長度。資源數(shù)據(jù):包含了DNS服務(wù)器返回給客戶端的查詢答案。域名系統(tǒng)DNS報文實例分析實例10.1:分析以下網(wǎng)絡(luò)分析工具捕捉到的DNS請求報文數(shù)據(jù)幀域名系統(tǒng)DNS報文實例分析實例10.1:分析以下網(wǎng)絡(luò)分析工具捕捉到的DNS請求報文數(shù)據(jù)幀域名系統(tǒng)DNS報文實例分析實例10.2:分析以下網(wǎng)絡(luò)分析工具捕捉到的DNS響應(yīng)報文數(shù)據(jù)幀域名系統(tǒng)DNS報文實例分析實例10.2:分析以下網(wǎng)絡(luò)分析工具捕捉到的DNS響應(yīng)報文數(shù)據(jù)幀域名系統(tǒng)DNS報文實例分析實例10.2:分析以下網(wǎng)絡(luò)分析工具捕捉到的DNS響應(yīng)報文數(shù)據(jù)幀遠程登錄協(xié)議應(yīng)用Telnet協(xié)議能夠把本地用戶所使用的計算機變成遠程主機系統(tǒng)的一個仿真終端,即實現(xiàn)對遠程主機系統(tǒng)的遠程登錄,使本地用戶可以訪問遠程資源。工作在應(yīng)用層的Telnet以TCP為傳輸層協(xié)議,使用的端口號是23,可在本地主機和遠程主機之間以半雙工方式進行通信。遠程登錄協(xié)議Telnet協(xié)議主要提供了3種基本服務(wù)通過定義網(wǎng)絡(luò)虛擬終端為遠程系統(tǒng)提供標準接口。這樣,客戶機程序不必詳細了解遠程系統(tǒng),只需構(gòu)造使用標準接口的程序。引入了允許客戶機和服務(wù)器協(xié)商選項的機制,而且還提供了一組標準選項。對稱處理連接的兩端,即不強迫客戶機從鍵盤輸入,也不強迫客戶機在屏幕上顯示輸出。遠程登錄協(xié)議使用Telnet協(xié)議進行遠程登錄時需要滿足的條件在本地計算機上必須安裝有包含Telnet協(xié)議的客戶機程序;必須知道遠程主機的IP地址或域名;必須知道登錄標識與口令。遠程登錄協(xié)議工作原理Telnet遠程登錄服務(wù)可分為4個基本過程依據(jù)遠程主機的IP地址或域名以及端口號,本地系統(tǒng)與遠程主機系統(tǒng)建立TCP連接;本地系統(tǒng)終端上接收的用戶信息以NVT(網(wǎng)絡(luò)虛擬終端)格式傳送到遠程主機系統(tǒng),并在遠程主機系統(tǒng)中將其轉(zhuǎn)換為遠程主機系統(tǒng)的數(shù)據(jù)格式;遠程主機系統(tǒng)的響應(yīng)信息以NVT格式返回給本地主機系統(tǒng),并在本地主機系統(tǒng)轉(zhuǎn)換為本地主機系統(tǒng)的數(shù)據(jù)格式,交付給本地主機系統(tǒng)終端;最后,本地主機系統(tǒng)終端對遠程主機進行撤銷連接,即撤銷一個TCP連接。遠程登錄協(xié)議工作原理遠程登錄協(xié)議工作原理網(wǎng)絡(luò)虛擬終端Telnet協(xié)議專門定義一種通用字符終端——網(wǎng)絡(luò)虛擬終端NVT。它是一個虛擬設(shè)備,其定義了一套自己的字符集,通信的雙方都必須能進行物理終端和NVT的相互轉(zhuǎn)換。用于解決通信雙方格式上的異構(gòu)性。對于發(fā)送數(shù)據(jù),客戶機軟件把來自用戶終端的按鍵和命令序列轉(zhuǎn)換為NVT格式,并發(fā)送到服務(wù)器,服務(wù)器將NVT格式再轉(zhuǎn)換為遠程系統(tǒng)需要的格式。對于返回數(shù)據(jù),遠程服務(wù)器將數(shù)據(jù)從遠程系統(tǒng)的格式轉(zhuǎn)換為NVT格式,返反給客戶機,客戶機將接收到的NVT數(shù)據(jù)格式再轉(zhuǎn)換為本地格式。遠程登錄協(xié)議工作原理Telnet控制命令作為應(yīng)用層的協(xié)議,Telnet協(xié)議支持多種控制命令,并且通過這些控制命令來控制客戶端和服務(wù)器端的交互過程及相關(guān)細節(jié),同時它們本身也作為傳送數(shù)據(jù)的一部分在客戶端和服務(wù)端之間傳輸。遠程登錄協(xié)議工作原理Telnet控制命令詳細命令遠程登錄協(xié)議工作原理Telnet選項使用選項協(xié)商機制解決異構(gòu)性問題,有39個選項選項協(xié)商控制命令組成遠程登錄協(xié)議工作原理Telnet選項選項協(xié)商是對稱的,有多種組合遠程登錄協(xié)議遠程登錄實用程序Telnet缺省狀態(tài)是禁用的,使用前需啟動Win7打開步驟:控制面板程序打開關(guān)閉windows功能勾選Telnet客戶端遠程登錄協(xié)議Telnet應(yīng)用編程由于Telnet協(xié)議是建立在傳輸層協(xié)議TCP上的應(yīng)用層協(xié)議,因此基于Telnet協(xié)議的應(yīng)用編程主要是在TCP應(yīng)用編程的基礎(chǔ)上加上對Telnet控制命令的處理以及NVT格式轉(zhuǎn)換操作。遠程登錄協(xié)議Telnet應(yīng)用編程TelnetEX程序采用了MFC的單文檔方式進行設(shè)計,同時按照界面類和功能類分開的原則設(shè)計了CClientTelnet類來實現(xiàn)Telnet客戶端的主要功能。用戶界面功能通過菜單驅(qū)動并在視圖類CTelnetExView中實現(xiàn)。(詳細實現(xiàn)見代碼)遠程登錄協(xié)議Telnet應(yīng)用編程遠程登錄協(xié)議Telnet應(yīng)用編程遠程登錄協(xié)議Telnet應(yīng)用編程遠程登錄協(xié)議Telnet應(yīng)用編程遠程登錄協(xié)議Telnet應(yīng)用編程文件傳輸協(xié)議文件傳輸協(xié)議(FileTransferProtocol,F(xiàn)TP)的主要作用讓用戶連接到遠程計算機進行文件查看把文件從遠程計算機上拷到本地計算機把本地計算機的文件送到遠程計算機FTP屬于TCP/IP協(xié)議族的應(yīng)用層協(xié)議,其傳輸層使用的是TCP,基于客戶機/服務(wù)器模式工作,為數(shù)據(jù)傳輸提供了可靠保證。文件傳輸協(xié)議FTP支持的文件類型FTP可以用來實現(xiàn)文件在不同主機上的傳遞,因此也存在異構(gòu)性問題。FTP通過采用支持有限數(shù)量的文件類型(ASCII碼、二進制等)和文件結(jié)構(gòu)(字節(jié)流或記錄文件)的措施來解決異構(gòu)性問題。支持的文件類型包含:ASCII文件:默認文件類型,數(shù)據(jù)在傳輸過程中使用與Telnet相同的格式,即NVTASCII碼。EBCDIC文件:是一種文本類型,用8位代碼表示一個字符,該文本文件在傳輸時要求兩端都使用EBCDIC碼。圖像(或二進制)文件:在此類型下傳輸?shù)臄?shù)據(jù)被看作連續(xù)的二進制位。本地文件:字節(jié)的大小由本地主機定義,即每個字節(jié)的比特數(shù)由發(fā)送方規(guī)定。文件傳輸協(xié)議FTP支持的文件類型文件數(shù)據(jù)結(jié)構(gòu)文件結(jié)構(gòu):這是FTP默認的方式,文件被認為是一個連續(xù)的字節(jié)流。文件內(nèi)部沒有表示結(jié)構(gòu)的信息。記錄結(jié)構(gòu):文件是由一系列記錄組成的結(jié)構(gòu)。這只適用于文本文件。頁面結(jié)構(gòu):也稱作塊結(jié)構(gòu)。當文件是由非連續(xù)的多個部分組成時,使用該結(jié)構(gòu),這種文件稱為隨機訪問文件。每頁都伴隨一個頁號來傳輸,從而以順序的方式來完成傳輸。文件傳輸協(xié)議FTP支持的文件類型文件傳輸方式流模式:是默認方式,數(shù)據(jù)以字節(jié)流的形式傳送。流模式可以用于以上3種文件結(jié)構(gòu),只是對記錄結(jié)構(gòu),有專用的兩個字節(jié)序列碼標識記錄結(jié)束(EOR)和文件結(jié)束(EOF)。塊模式:文件以塊形式傳輸,塊帶有自己的首部,其中包含16位計數(shù)字段和8位描述子代碼字段。計數(shù)字段說明了數(shù)據(jù)塊的字節(jié)數(shù),而描述子代碼字段則定義了數(shù)據(jù)塊的結(jié)束標記等內(nèi)容。壓縮模式:用來對連續(xù)出現(xiàn)的相同字節(jié)進行壓縮,因此對于提高帶寬利用效率有很多好處,但現(xiàn)在已很少使用。文件傳輸協(xié)議FTP工作原理FTP的工作過程其實就是客戶機程序根據(jù)用戶需要發(fā)送命令,服務(wù)器程序響應(yīng)命令的過程。需要建立兩種類型的連接:控制連接和數(shù)據(jù)連接??刂七B接傳送客戶機程序發(fā)出的命令和服務(wù)器返回的響應(yīng)信息,而數(shù)據(jù)連接則負責傳輸文件的內(nèi)容。文件傳輸協(xié)議FTP工作原理FTP的工作過程啟動FTP服務(wù)器:由于FTP采用了客戶機/服務(wù)器工作模式,因此在創(chuàng)建FTP會話之前,首先必須啟動FTP服務(wù)器,并使其處于等待客戶機程序的FTP請求狀態(tài)。打開FTP并建立控制連接:啟動FTP客戶機程序,并向FTP服務(wù)器的21端口(控制連接端口)發(fā)出主動連接的請求,以期獲得FTP服務(wù)器的相應(yīng)權(quán)限。服務(wù)器響應(yīng)請求后便在用戶協(xié)議解釋器和服務(wù)器協(xié)議解釋器之間建立了一條TCP連接。文件傳輸協(xié)議FTP工作原理FTP的工作過程建立數(shù)據(jù)連接并進行文件傳輸:用戶通過客戶機程序輸入FTP命令,服務(wù)器接收命令。如果命令正確且需要進行文件傳輸,服務(wù)器使用TCP20端口在雙方之間建立另一條TCP連接,即數(shù)據(jù)連接,并通過該連接進行文件傳輸。當本次命令的文件傳輸完畢,關(guān)閉該數(shù)據(jù)連接。關(guān)閉FTP:用戶執(zhí)行完其所需的FTP命令后,發(fā)出退出FTP命令,控制連接關(guān)閉,本次FTP服務(wù)結(jié)束。文件傳輸協(xié)議FTP工作原理FTP主要命令和應(yīng)答FTP功能的實現(xiàn)主要依賴于命令和應(yīng)答信息。FTP的命令和應(yīng)答信息都在控制連接上傳輸。由用戶協(xié)議解釋器負責發(fā)送命令和解釋收到的應(yīng)答信息,由服務(wù)器協(xié)議解釋器執(zhí)行命令并把執(zhí)行情況以應(yīng)答信息的形式發(fā)送給客戶端。所有的FTP命令和應(yīng)答信息都在控制連接上以NVTASCII碼形式傳輸,并且每個命令或應(yīng)答信息都以<CR/LF>對結(jié)尾。在FTP中,將標準的FTP命令分為3類:存取控制命令、傳輸參數(shù)命令和FTP服務(wù)命令,文件傳輸協(xié)議FTP工作原理FTP主要命令和應(yīng)答文件傳輸協(xié)議FTP工作原理FTP應(yīng)答文件傳輸協(xié)議FTP工作原理匿名FTP匿名FTP服務(wù)是指在FTP服務(wù)器上建立了用戶名為“anonymous”的特殊用戶,這樣在因特網(wǎng)上任何人在任何地方都可使用該用戶名登錄FTP服務(wù)器進行文件的上傳或下載,而無需成為該FTP服務(wù)器的注冊用戶。服務(wù)器提供匿名FTP服務(wù)時,往往指定某個目錄向公眾公開,允許匿名訪問。其他目錄處于隱藏狀態(tài),只有注冊用戶才可以訪問。文件傳輸協(xié)議FTP應(yīng)用實例超文本傳輸協(xié)議萬維網(wǎng)技術(shù)萬維網(wǎng)是WWW技術(shù)的中文名稱,利用萬維網(wǎng)技術(shù),用戶能夠在因特網(wǎng)上迅速方便地獲取豐富的信息資源。目前WWW是因特網(wǎng)中發(fā)展最快和應(yīng)用最廣泛的網(wǎng)絡(luò)服務(wù)。統(tǒng)一資源定位符統(tǒng)一資源定位符(UniformResourceLocator,URL)也稱為Web地址,即網(wǎng)址。其規(guī)定了某一特定信息資源在WWW中存放地點的統(tǒng)一描述形式。URL地址的一般格式為:協(xié)議://主機域名(或IP地址)[:端口號]/目錄路徑/文件名/[:參數(shù)][?查詢]超文本傳輸協(xié)議萬維網(wǎng)技術(shù)統(tǒng)一資源定位符(URL)“協(xié)議”是指傳輸協(xié)議,如HTTP、FTP、TELNET和GOPHER等,最常用的是HTTP。“主機域名”是指存放資源的主機名稱,既可以使用域名也可以使用IP地址?!岸丝谔枴笔侵高B接到服務(wù)器的TCP端口號,各種傳輸協(xié)議都有默認端口號,如果輸入時忽略則使用默認端口號。“目錄路徑”是指所訪問資源在服務(wù)器上的目錄路徑?!拔募笔侵感枰L問的資源文件的名稱。“參數(shù)”用于指定特殊參數(shù)的可選項?!安樵儭币话阌脕韨魉蛯Ψ?wù)器上的數(shù)據(jù)庫進行動態(tài)查詢時所需要的參數(shù)。超文本傳輸協(xié)議萬維網(wǎng)技術(shù)統(tǒng)一資源定位符注意:萬維網(wǎng)上的服務(wù)器很多是區(qū)分大小寫字母的,因此要特別注意使用正確的URL大小寫形式。URL地址還有相對地址和絕對地址之分。其中絕對地址是指給出協(xié)議和主機域名的完整地址;而相對地址是指在主機確定的情況下,略去協(xié)議和主機的地址。超文本傳輸協(xié)議萬維網(wǎng)技術(shù)萬維網(wǎng)的工作過程用戶確定要訪問網(wǎng)頁的URL,并將其輸入到瀏覽器的地址欄中。瀏覽器向DNS服務(wù)器發(fā)出請求,獲取Web服務(wù)器域名所對應(yīng)的IP地址。瀏覽器向指定IP地址的Web服務(wù)器發(fā)出與端口80建立一條TCP連接的請求。80端口是Web服務(wù)器提供Web服務(wù)的端口。在得到Web服務(wù)器確認并且TCP連接建立成功后,瀏覽器再向Web服務(wù)器發(fā)出一條請求傳輸網(wǎng)頁的HTTP命令。當Web服務(wù)器收到請求后,向瀏覽器發(fā)送其所需的網(wǎng)頁文件。網(wǎng)頁文件發(fā)送完成后,由Web服務(wù)器主動關(guān)閉TCP連接。至此,HTTP的工作過程結(jié)束。瀏覽器顯示所收到的網(wǎng)頁文件。如果網(wǎng)頁文件中包含圖片等信息,還要再次與Web服務(wù)器建立TCP連接下載相應(yīng)圖片信息等。超文本傳輸協(xié)議超文本傳輸協(xié)議HTTP是作為一種請求/應(yīng)答協(xié)議來實現(xiàn)的,即客戶機請求Web服務(wù)器上的一個頁面文件,Web服務(wù)器則以該頁面文件來應(yīng)答。超文本傳輸協(xié)議超文本傳輸協(xié)議工作原理超文本傳輸協(xié)議超文本傳輸協(xié)議工作原理首先客戶機程序創(chuàng)建一個套接字,同時向服務(wù)器發(fā)出TCP連接請求,并通過服務(wù)器的確認建立TCP連接。客戶機程序根據(jù)需要利用TCP連接向服務(wù)器發(fā)送相應(yīng)的請求命令。HTTP服務(wù)器也可以由其他類型的網(wǎng)關(guān)充當代理服務(wù)器,這樣,HTTP便可以允許用戶訪問其他因特網(wǎng)協(xié)議,如SMTP、FTP、Gopher等。服務(wù)器接收到客戶機程序的請求命令后進行相應(yīng)的處理,然后將處理結(jié)果以響應(yīng)消息的形式通過TCP連接返回給客戶機程序。完成本次請求/應(yīng)答后,客戶機程序和服務(wù)器程序都可以通過關(guān)閉套接字來結(jié)束本次的TCP連接。超文本傳輸協(xié)議超文本傳輸協(xié)議報文格式HTTP報文包括請求行/狀態(tài)行、信息首部、空行和信息體組成。請求報文格式超文本傳輸協(xié)議超文本傳輸協(xié)議請求報文格式主要請求命令超文本傳輸協(xié)議超文本傳輸協(xié)議請求報文格式信息首部User-Agent:產(chǎn)生請求的瀏覽器類型;Accept:客戶端可識別的響應(yīng)內(nèi)容類型列表;星號“*”用于按范圍將類型分組,用“*/*”指示可接受全部類型,用“type/*”指示可接受type類型的所有子類型;Accept-Language:客戶端可接受的自然語言;Accept-Encoding:客戶端可接受的編碼壓縮格式;Accept-Charset:可接受的應(yīng)答的字符集;Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機;Connection:連接方式(close或keepalive);Cookie:存儲于客戶端擴展字段,向同一域名的服務(wù)端發(fā)送屬于該域的cookie超文本傳輸協(xié)議超文本傳輸協(xié)議報文格式響應(yīng)報文格式超文本傳輸協(xié)議超文本傳輸協(xié)議響應(yīng)報文格式狀態(tài)碼:響應(yīng)類型,3位10進制數(shù)組成1xx:表示服務(wù)器已接收了客戶端請求,客戶端可繼續(xù)發(fā)送請求;2xx:表示服務(wù)器已成功接收到請求并進行處理;3xx:表示服務(wù)器要求客戶端重定向;4xx:表示客戶端的請求有非法內(nèi)容;5xx:表示服務(wù)器未能正常處理客戶端的請求而出現(xiàn)意外錯誤;超文本傳輸協(xié)議超文本傳輸協(xié)議響應(yīng)報文格式狀態(tài)短語:描述狀態(tài)碼信息,常用的狀態(tài)短語:200OK:表示客戶端請求成功;400BadRequest:表示客戶端請求有語法錯誤,不能被服務(wù)器所理解;401Unauthorized:表示請求未經(jīng)授權(quán),該狀態(tài)代碼必須與WWW-Authenticate報頭域一起使用;403Forbidden:表示服務(wù)器收到請求,但是拒絕提供服務(wù),通常會在響應(yīng)正文中給出不提供服務(wù)的原因;404NotFound:請求的資源不存在,例如,輸入了錯誤的URL;500InternalServerError:表示服務(wù)器發(fā)生不可預(yù)期的錯誤,導(dǎo)致無法完成客戶端的請求;503ServiceUnavailable:表示服務(wù)器當前不能夠處理客戶端的請求,在一段時間之后,服務(wù)器可能會恢復(fù)正常;超文本傳輸協(xié)議超文本傳輸協(xié)議響應(yīng)報文格式信息首部,可能包括:Location:Location響應(yīng)報頭域用于重定向接受者到一個新的位置。Server:Server響應(yīng)報頭域包含了服務(wù)器用來處理請求的軟件信息及其版本。Vary:指示不可緩存的請求頭列表。Connection:close,keep-aliveWWW-Authenticate:WWW-Authenticate響應(yīng)報頭域必須被包含在401(未授權(quán)的)響應(yīng)消息中,這個報頭域和前面講到的Authorization請求報頭域是相關(guān)的超文本傳輸協(xié)議超文本傳輸協(xié)議HTTP應(yīng)用實例(1)輸入信息基于Winlnet的應(yīng)用編程基于Windows的因特網(wǎng)應(yīng)用編程,主要分4類:直接使用Winsock編程,包括直接使用WinsockAPI或者使用MFC的相關(guān)類(CAsyncSocket和CSocket),利用它們可以編寫因特網(wǎng)客戶端程序,也可以編寫服務(wù)器端程序。使用信報接口(MAPI)函數(shù)可以方便地開發(fā)郵件、傳真程序,并可以實現(xiàn)不同郵件系統(tǒng)之間的交互。利用因特網(wǎng)服務(wù)端應(yīng)用程序接口(ISAPI)來增強、擴展HTTP服務(wù)器功能。本書不進行介紹,有興趣的同學可以參考其他資料進一步了解。利用因特網(wǎng)客戶端程序接口(WinInet)來開發(fā)HTTP、FTP、Gopher客戶機程序。基于Winlnet的應(yīng)用編程WinInet(Win32InternetExtensions)是Microsoft在MFC中提供的用于因特網(wǎng)客戶機應(yīng)用程序開發(fā)的一個類集。該類集提供了訪問HTTP、FTP、Gopher等相關(guān)協(xié)議的簡便方法,使因特網(wǎng)客戶機應(yīng)用程序?qū)TTP、FTP、Gopher服務(wù)器的訪問就像從本地硬盤上讀取文件一樣容易。利用WinInet,可以在一個較高的層次編寫因特網(wǎng)客戶機應(yīng)用的程序而無需了解WinSock、TCP/IP或某些特定的因特網(wǎng)協(xié)議的具體細節(jié)。基于Winlnet的應(yīng)用編程WinInet類集的組成基于Winlnet的應(yīng)用編程WinInet工作原理開始Internet會話讀取或設(shè)置Internet查詢選項建立回調(diào)函數(shù)以監(jiān)視會話狀態(tài)連接到Internet服務(wù)器、Intranet服務(wù)器或本地文件對文件讀取處理異常結(jié)束Internet會話基于Winlnet的應(yīng)用編程WinInet工作原理基于Winlnet的應(yīng)用編程基于Winlnet的FTP應(yīng)用編程基于Winlnet的應(yīng)用編程基于Winlnet的FTP應(yīng)用編程實例實現(xiàn)了對指定FTP服務(wù)器的登錄、FTP服務(wù)器中指定目錄的文件列表、選定文件的下載、以及指定文件的上傳等操作。在設(shè)計中,引入了一個CMyFTPClient類來封裝FTP的主要操作功能。(參見代碼)基于Winlnet的應(yīng)用編程基于Winlnet的HTTP應(yīng)用編程基于Winlnet的應(yīng)用編程基于Winlnet的HTTP應(yīng)用編程實例在設(shè)計中,引入了一個CMyHTTPClient類來封裝HTTP頁面下載的操作功能。(參見代碼)郵件傳輸協(xié)議電子郵件(Electronicmail,E-mail)最早出現(xiàn)在ARPAnet中相對于傳統(tǒng)郵件具有巨大的優(yōu)勢,得到了快速的發(fā)展郵件傳輸協(xié)議電子郵件系統(tǒng)工作原理需要發(fā)送者郵件代理、發(fā)送者郵件服務(wù)器、接收者郵件服務(wù)器,接收者代理4個程序的參與。郵件傳輸協(xié)議電子郵件系統(tǒng)工作原理在郵件傳輸過程中,起關(guān)鍵作用的是兩個郵件傳輸協(xié)議:SMTP和POP3郵件傳輸協(xié)議SMTPSMTP(SimpleMailTransferProtocol)是簡單郵件傳輸協(xié)議的縮寫,是建立在傳輸層協(xié)議TCP上的可靠高效的郵件傳輸協(xié)議,采用請求/應(yīng)答方式來實現(xiàn)。整個工作過程包括連接建立、郵件傳送和連接釋放3個階段。連接建立:SMTP是基于客戶機/服務(wù)器模式工作的,郵件服務(wù)器在TCP的25端口守候客戶機的請求。當需要發(fā)送郵件時,發(fā)送主機的SMTP客戶機向連接主機的SMTP服務(wù)器的TCP端口25發(fā)出建立連接請求,得到服務(wù)器確認后連接建立。此后,SMTP客戶機再次向SMTP服務(wù)器發(fā)送HELO命令,并附上發(fā)送方主機名以確認SMTP服務(wù)器是否已經(jīng)準備好接收郵件。如果SMTP服務(wù)器應(yīng)答“250XXXX”表示已準備好接收郵件。郵件傳輸協(xié)議SMTP郵件傳送SMTP客戶機得到SMTP服務(wù)器的肯定回答后,隨即可利用MAIL命令告訴SMTP服務(wù)器新的郵件發(fā)送操作已經(jīng)開始。如果SMTP服務(wù)器已經(jīng)準備好接收郵件,則以250應(yīng)答代碼應(yīng)答。其后SMTP客戶機可以用RCPT命令發(fā)送郵件接收者的目的地址,以便SMTP服務(wù)器把郵件內(nèi)容最終傳送到收件人的郵箱中。如果命令被接收,則返回250應(yīng)答碼。然后SMTP客戶機可利用DATA命令告訴SMTP服務(wù)器下面將要發(fā)送郵件內(nèi)容。如果命令被接收,則SMTP服務(wù)器以354應(yīng)答碼應(yīng)答,并認定以下的各行都是郵件內(nèi)容。發(fā)送完畢后,再發(fā)送<CR/LF>表示郵件內(nèi)容結(jié)束。如果SMTP服務(wù)器成功接收郵件內(nèi)容,則以250應(yīng)答碼應(yīng)答。郵件傳輸協(xié)議SMTP連接釋放:郵件內(nèi)容發(fā)送完成后,SMTP客戶機應(yīng)發(fā)送QUIT命令請求釋放TCP連接。待SMTP服務(wù)器應(yīng)答后,全部過程結(jié)束,釋放TCP連接。郵件傳輸協(xié)議SMTPSMTP常用命令郵件傳輸協(xié)議SMTPSMTP應(yīng)答碼郵件傳輸協(xié)議POP3POP3(PostOfficeProtocol3)是郵局協(xié)議版本3的縮寫。它是實現(xiàn)從郵件服務(wù)器的郵箱中獲取郵件并傳送到本地主機的應(yīng)用層協(xié)議,采用請求/應(yīng)答方式來實現(xiàn)。其工作過程包括連接建立與認證階段、郵件操作階段和關(guān)閉連接與更新階段。連接建立與認證階段:POP3工作于客戶機/服務(wù)器模式,POP3服務(wù)器在TCP端口110上守候客戶機請求。當用戶要通過本地主機的郵件代理從POP3服務(wù)器上獲取所需郵件時,向POP3服務(wù)器發(fā)出建立一條TCP連接的請求,當連接建立后POP3服務(wù)器發(fā)出確認信息。此后用戶需要提供用戶名(USER)和口令(PASS)并得到POP3服務(wù)器確認后,才有權(quán)訪問自己的郵箱。郵件傳輸協(xié)議POP3郵件操作階段:當用戶通過認證后,便有權(quán)對自己郵箱中的郵件進行檢索(SATA、LIST)、下載(RETR)和刪除(DELE)等操作。關(guān)閉連接與更新階段:當用戶完成相應(yīng)的郵件操作后,可以向POP3服務(wù)器發(fā)出QUIT命令,POP3服務(wù)器接收到該命令后便進入更新狀態(tài),即釋放操作階段中取得的資源,并將邏輯刪除的郵件進行物理刪除,然后發(fā)送消息,最后關(guān)閉客戶機與POP3服務(wù)器之間的TCP連接。郵件傳輸協(xié)議POP3POP3常用命令命令集由命令及相應(yīng)的參數(shù)組成,以CR/LF結(jié)束應(yīng)答分兩種,+OK和-ERR,其后跟一些附加信息進行描述郵件傳輸協(xié)議多功能因特網(wǎng)郵件擴充多功能因特網(wǎng)郵件擴充(MultipurposeInternetMailExtension,MIME)是SMTP的一個輔助協(xié)議,它并沒有改動或取代SMTP。通過MIME協(xié)議的使用使得用戶可以在一封電子郵件中附加各種其他格式的文件一起發(fā)送,進而克服了SMTP的一些不足。郵件傳輸協(xié)議多功能因特網(wǎng)郵件擴充MIME主要包括3部分內(nèi)容:5個新的郵件部首字段,這些字段提供了有關(guān)郵件信體的信息;定義了許多郵件內(nèi)容的格式,對多媒體電子郵件的表示方法進行標準化;定義了傳送編碼,可對任何內(nèi)容格式進行轉(zhuǎn)換,而不會被郵件系統(tǒng)改變。郵件傳輸協(xié)議多功能因特網(wǎng)郵件擴充MIME增加的5個新的郵件部首:MIME版本(MIME-Version):用來標識MIME的版本。內(nèi)容—類型(Content-Type):說明郵件的性質(zhì),共有7種基本內(nèi)容類型和15種子類型。內(nèi)容—傳送—編碼(Content-Transfer-Encoding):表明在傳送時郵件的信體是如何編碼的。內(nèi)容—標識(Content-Id):郵件的唯一標識符,用戶代理可以根據(jù)其值識別MIME的入口。內(nèi)容—描述(Content-Description):用于說明郵件的內(nèi)容(圖像、語音、視頻),和郵件主題類似,允許用戶添加關(guān)于報文體的說明性信息。郵件傳輸協(xié)議多功能因特網(wǎng)郵件擴充MIME支持的7種基本內(nèi)容類型和15種子類型郵件傳輸協(xié)議多功能因特網(wǎng)郵件擴充MIME支持的5種內(nèi)容傳送編碼基于信報API的應(yīng)用編程在應(yīng)用程序中添加郵件支持功能常用的方法:調(diào)用外部程序。直接對SMTP/POP3編程。使用信報API(MessageApplica

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論