第五章 應用協(xié)議的實現 計算機教學課件PPT
《第五章 應用協(xié)議的實現 計算機教學課件PPT》由會員分享,可在線閱讀,更多相關《第五章 應用協(xié)議的實現 計算機教學課件PPT(66頁珍藏版)》請在裝配圖網上搜索。
1、23nTCP/IP模型將模型將OSI參考模型中的會話層和表示層的功能參考模型中的會話層和表示層的功能合并到應用層。針對各種各樣的網絡應用,應用層引入了合并到應用層。針對各種各樣的網絡應用,應用層引入了許多協(xié)議,稱為應用協(xié)議。許多協(xié)議,稱為應用協(xié)議。n應用協(xié)議服務于各種應用功能:應用協(xié)議服務于各種應用功能:n收發(fā)電子郵件(收發(fā)電子郵件(E-mail)n上傳和下載文件上傳和下載文件n瀏覽網站瀏覽網站n登錄遠程服務器登錄遠程服務器n應用協(xié)議分為兩種傳輸協(xié)議:應用協(xié)議分為兩種傳輸協(xié)議:nUDP傳輸協(xié)議傳輸協(xié)議nTCP協(xié)議傳輸協(xié)議協(xié)議傳輸協(xié)議n本章重點討論基于底層本章重點討論基于底層TCP和和UDP協(xié)議
2、套接字上的網絡應協(xié)議套接字上的網絡應用層的編程實現。用層的編程實現。4n5.2.1 基于基于TCP協(xié)議傳輸協(xié)議的協(xié)議傳輸協(xié)議的 應用層協(xié)議應用層協(xié)議n5.2.2 基于基于UDP傳輸協(xié)議的傳輸協(xié)議的 應用層協(xié)議應用層協(xié)議n5.2.3 RFC (Request For Comment )文檔介紹)文檔介紹55.2.1 基于基于TCP協(xié)議的應用層協(xié)議協(xié)議的應用層協(xié)議n1TELNET,虛擬終端協(xié)議,虛擬終端協(xié)議n2FTP(File Transfer Protocol) ,文件傳輸協(xié)議,文件傳輸協(xié)議n3POP3(Post Office Protocol-Version 3) ,郵局協(xié)議,郵局協(xié)議-版本版
3、本3n4IMAP4(Internet Message Access Pprotocol-Version 4) ,Internet消息訪問協(xié)議消息訪問協(xié)議-版本版本4n5SMTP(Simple Mail Transfer Protocol) ,簡單郵件傳送協(xié)議,簡單郵件傳送協(xié)議n6HTTP(Hypertext Transfer Protocol) ,超文本傳輸協(xié)議,超文本傳輸協(xié)議n7HTTPS(Secure Hypertext Transfer Protocol) ,安全超文本,安全超文本傳輸協(xié)議傳輸協(xié)議6表表5-1 常見的應用層協(xié)議使用的常見的應用層協(xié)議使用的TCP協(xié)議端口協(xié)議端口 協(xié)議協(xié)議端
4、口端口服服 務務TELNETTELNET2323 遠程登錄服務遠程登錄服務FTPFTP2121和和2020 端口端口2121用來控制會話,端口用來控制會話,端口2020用來實際傳輸文用來實際傳輸文件內容件內容POP3POP3110110 訪問遠程服務器上的電子郵件服務訪問遠程服務器上的電子郵件服務IMAP4IMAP4143143 Internet Internet遠程信息存取服務遠程信息存取服務SMTPSMTP2525 發(fā)送電子郵件服務發(fā)送電子郵件服務HTTPHTTP8080 用于萬維網(用于萬維網(WWWWWW)的超文本傳送服務)的超文本傳送服務HTTPSHTTPS443443 安全超文本傳
5、送服務安全超文本傳送服務75.2.2 基于基于UDP協(xié)議的應用層協(xié)議協(xié)議的應用層協(xié)議n1SNMPn(Simple Network Management Protocol)n 簡單網絡管理協(xié)議簡單網絡管理協(xié)議n2DNSn(Domain Name Server)n域名解析協(xié)議域名解析協(xié)議85.2.3 RFC(Request For Comment) 文檔介紹文檔介紹nTCP/IP協(xié)議是以協(xié)議是以RFC文檔的形式發(fā)布的。文檔的形式發(fā)布的。RFC是描述互聯(lián)網相關是描述互聯(lián)網相關技術規(guī)范的文檔。技術規(guī)范的文檔。 nRFC所在的官方網站為:所在的官方網站為:nhttp:/www.ietf.org/rfc.
6、html。 RFCRFC編號編號協(xié)協(xié) 議議768768用戶數據報協(xié)議(用戶數據報協(xié)議(UDPUDP)783783日常文件傳輸協(xié)議(日常文件傳輸協(xié)議(TFTPTFTP)791791InternetInternet協(xié)議(協(xié)議(IPIP)792792InternetInternet控制消息協(xié)議控制消息協(xié)議(ICMPICMP)793793傳輸控制協(xié)議(傳輸控制協(xié)議(TCPTCP協(xié)議)協(xié)議)821821郵件傳輸協(xié)議(郵件傳輸協(xié)議(SMTPSMTP,最新,最新更新更新RFC5336RFC5336)RFCRFC編號編號協(xié)協(xié) 議議854854TelnetTelnet協(xié)議(協(xié)議(TELNETTELNET)959
7、959文件傳輸協(xié)議(文件傳輸協(xié)議(FTPFTP,最新更新,最新更新RFC3659RFC3659)11571157簡單網絡管理協(xié)議(簡單網絡管理協(xié)議(SNMPSNMP)19391939郵局協(xié)議郵局協(xié)議- -版本版本3 3(POP3POP3,最新更新,最新更新RFC5034RFC5034)19451945超級文本傳輸協(xié)議超級文本傳輸協(xié)議- -版本版本1.0 1.0 (HTTP1.0HTTP1.0)20602060InternetInternet消息訪問協(xié)議消息訪問協(xié)議- -版本版本4 4(IMAP4IMAP4)20682068超文本傳輸協(xié)議超文本傳輸協(xié)議- -版本版本1.11.1(HTTP1.1H
8、TTP1.1,為,為RFC1945RFC1945的更新版,第二次更新的更新版,第二次更新RFC2616RFC2616)9nSMTP是建立在是建立在TCP/IP協(xié)議基礎上的應用層協(xié)議。它規(guī)定協(xié)議基礎上的應用層協(xié)議。它規(guī)定了將電子郵件從發(fā)送方傳送到接收方的傳輸規(guī)則。了將電子郵件從發(fā)送方傳送到接收方的傳輸規(guī)則。n客戶客戶/郵件發(fā)送服務器模式:郵件發(fā)送服務器模式:n郵件發(fā)送服務器也稱郵件發(fā)送服務器也稱SMTP服務器或郵件服務器。服務器或郵件服務器。n詳細規(guī)則在詳細規(guī)則在RFC821文檔中網址為:文檔中網址為:nhttp:/www.ietf.org/rfc/rfc0821.txtn5.3.1 SMTP介
9、紹介紹n5.3.2 SMTP客戶端客戶端Java應用程序應用程序n5.3.3 SMTP客戶端客戶端Java Applet105.3.1 SMTP介紹介紹n當用戶需要發(fā)送郵件時,當用戶需要發(fā)送郵件時,SMTP客戶程序使用一組簡單的命客戶程序使用一組簡單的命令與令與SMTP服務器關聯(lián),并通過它把郵件發(fā)送出去,而后結服務器關聯(lián),并通過它把郵件發(fā)送出去,而后結束連接和發(fā)送。束連接和發(fā)送。n1SMTP請求請求/響應協(xié)議命令與格式響應協(xié)議命令與格式n命令和響應都是基于命令和響應都是基于ASCII文本,命令以文本,命令以CRLF符結束為一條命令符結束為一條命令格式,其中格式,其中CR為為“r”表示回車,表示
10、回車,LF為為“n”表示換行,表示換行,SP表示空格。表示空格。n應答碼:響應包括一個表示返回狀態(tài)的三位數字代碼。應答碼:響應包括一個表示返回狀態(tài)的三位數字代碼。 n2SMTP協(xié)議的傳輸模型協(xié)議的傳輸模型n3SMTP協(xié)議發(fā)送郵件過程協(xié)議發(fā)送郵件過程111SMTP請求請求/響應協(xié)議命令與格式響應協(xié)議命令與格式命命 令令格格 式式描描 述述HELO/EHLOHELO 指明郵件發(fā)送者的主機域名指明郵件發(fā)送者的主機域名MAIL FROMMAIL FROM: 指明郵件發(fā)送者的信箱名稱指明郵件發(fā)送者的信箱名稱RCPT TORCPT TO: 指明郵件接收者的信箱名稱指明郵件接收者的信箱名稱DATADATA
11、表示表示發(fā)送郵件內容(包括信頭和信體)發(fā)送郵件內容(包括信頭和信體)QUITQUIT 終止郵件會話終止郵件會話HELPHELP 查詢服務器支持什么命令查詢服務器支持什么命令RSETRSET 重設郵件連接重設郵件連接NOOPNOOP 無操作,服務器應響應無操作,服務器應響應OKTURNTURN 接收端和發(fā)送端交換角色接收端和發(fā)送端交換角色12 SMTP的應答碼的應答碼應應 答答 碼碼描描 述述214幫助信息幫助信息220服務就緒服務就緒221服務關閉服務關閉250郵件操作完成郵件操作完成354開始輸入郵件內容,以開始輸入郵件內容,以“”結束結束421服務未就緒,關閉傳輸通道服務未就緒,關閉傳輸通
12、道501命令參數格式錯誤命令參數格式錯誤502命令不支持命令不支持503錯誤的命令序列錯誤的命令序列504命令參數不支持命令參數不支持132SMTP協(xié)議的傳輸模型協(xié)議的傳輸模型圖圖 SMTP協(xié)議傳輸模型協(xié)議傳輸模型 143SMTP協(xié)議發(fā)送郵件過程協(xié)議發(fā)送郵件過程SMTP協(xié)議發(fā)送一封電子郵件從SMTP客戶端傳輸到SMTP服務器,只用表5-3所示中前5個命令即可??蛻舳伺c郵件服務器連接和發(fā)送郵件過程如下: 客戶端A與郵件服務器B建立TCP/IP協(xié)議連接;郵件服務器B響應,返回應答碼220,表示就緒。 客戶端A發(fā)送“HELO”命令以標識發(fā)件人自己的身份,即發(fā)件人主機域名,郵件服務器B響應,返回應答碼
13、250,表明可以接收。 客戶端A發(fā)送“MAIL FROM”命令,以標識該電子郵件的發(fā)件人郵件地址,服務器B返回應答碼250及OK作為響應,表明準備接收郵件。 客戶端A發(fā)送“RCPT TO”命令,以標識該電子郵件的接收人郵件地址,服務器B返回應答碼250及OK作為響應。 協(xié)商結束,發(fā)送郵件,客戶端A發(fā)送命令“DATA”,服務器B返回應答碼354,可發(fā)送內容,并說明發(fā)送“”表示結束??蛻舳薃發(fā)送郵件內容。 客戶端A發(fā)送“”表示結束輸入內容,服務器B返回應答碼250,表示此操作完畢。 結束此次發(fā)送,客戶端A發(fā)送命令“QUIT”退出。服務器B返回應答碼221,表示服務器B關閉。15客戶端服務器helo
14、250MAIL FROM250RCPT TO250DATA354數據.(表示結束)250QUIT250165.3.2 SMTP客戶端客戶端 Java應用程序應用程序 郵件發(fā)送SMTP客戶端Java Application應用程序SMTPClient5_1.java。17n安裝郵件服務器:jamesn登錄服務器:ntelnet localhost 4555nroot rootn注冊用戶nhelpnadduser tom 1234nadduser jack 5678nlistusersn發(fā)送郵件nSMTPClient5_1.java n接收郵件ntelnet localhost 110nuser
15、jacknpass 5678nlistnretr 11819*5.3.3 SMTP客戶端客戶端 Java Appletn郵件發(fā)送郵件發(fā)送SMTP客戶端客戶端nJava Applet應用程序應用程序SMTP_Applet5_2.javan網頁文件網頁文件SMTP_Applet5_2. html。nSMTP_Applet5_2.java程序的郵件發(fā)送:程序的郵件發(fā)送:SMTP服務器主機名、郵件收發(fā)地服務器主機名、郵件收發(fā)地址、郵件標題、郵件內容等信息是通過界面人機交互輸入。址、郵件標題、郵件內容等信息是通過界面人機交互輸入。 nSTMP客戶程序所在的主機名:客戶程序所在的主機名:“MyComput
16、er”nSTMP服務器所在的主機名為服務器所在的主機名為“l(fā)ocalhost”或或“”。n使用使用IceWarp 9.3.2郵件服務器郵件服務器20運行界面運行界面21nPOP3郵局協(xié)議:郵局協(xié)議:建立在建立在TCP/IP協(xié)議基礎上。協(xié)議基礎上。n客戶端客戶端/服務器模式接收電子郵件,郵件接收服務器服務器模式接收電子郵件,郵件接收服務器也稱也稱POP3服務器。服務器。n協(xié)議的詳細規(guī)則文檔協(xié)議的詳細規(guī)則文檔RFC1939n網址為:網址為:http:/www.ietf.org/rfc/rfc1939.txt。n5.4.1 POP3介紹介紹n5.4.2 POP3客戶端客戶端225.4.1 POP3介
17、紹介紹nPOP3郵件服務器接收并保存郵件郵件服務器接收并保存郵件 nPOP3分客戶端程序和服務器分客戶端程序和服務器 nPOP3也是命令請求也是命令請求/響應協(xié)議響應協(xié)議n在在TCP協(xié)議協(xié)議110號端口監(jiān)聽連接請求。號端口監(jiān)聽連接請求。 n1、合法身份登錄,即客戶端發(fā)送命令、合法身份登錄,即客戶端發(fā)送命令“USER”和和“PASS”。服。服務器應答返回務器應答返回“+OK”,表示用戶登錄成功,此時由認可狀態(tài)轉,表示用戶登錄成功,此時由認可狀態(tài)轉換為處理狀態(tài)。換為處理狀態(tài)。n2、客戶端發(fā)送一系列、客戶端發(fā)送一系列POP3命令,服務器應答命令,服務器應答 “+OK”成功和成功和“ -ERR”失敗兩
18、種。轉換為處理狀態(tài)失敗兩種。轉換為處理狀態(tài) 。nPOP3協(xié)議協(xié)議中有三種狀態(tài):認可、處理和更新狀態(tài)。中有三種狀態(tài):認可、處理和更新狀態(tài)。23POP3的主要命令、格式和描述的主要命令、格式和描述命令命令格格 式式狀態(tài)狀態(tài)描描 述述USERUSER 認可認可用戶名,此命令與下面的用戶名,此命令與下面的PASS命令若成功,將命令若成功,將導致狀態(tài)轉換導致狀態(tài)轉換PASSPASS 認可認可用戶密碼,命令若成功,用戶密碼,命令若成功,狀態(tài)由狀態(tài)由“認可認可”轉換為轉換為“處理處理”STATSTAT 處理處理請求服務器發(fā)回關于郵箱的統(tǒng)計資料,如郵件總請求服務器發(fā)回關于郵箱的統(tǒng)計資料,如郵件總數和總字節(jié)數;
19、信箱狀態(tài)數和總字節(jié)數;信箱狀態(tài)RETRRETR處理處理返回由參數標識的郵件的全部文本返回由參數標識的郵件的全部文本LISTLIST msg處理處理返回郵件數量和每個郵件的大小返回郵件數量和每個郵件的大小QUITQUIT 更新更新退出并把做過退出并把做過DELE標記的郵件刪掉標記的郵件刪掉DELEDELE 處理處理服務器將由參數標識的郵件標記為刪除,由服務器將由參數標識的郵件標記為刪除,由QUIT命令執(zhí)行命令執(zhí)行RSETRSET 處理處理服務器將重置所有標記為刪除的郵件,用于撤銷服務器將重置所有標記為刪除的郵件,用于撤銷DELE命令命令UIDLUIDL msg處理處理返回郵件的唯一標識符,返回郵
20、件的唯一標識符,POP3會話的每個標識會話的每個標識符都將是唯一的符都將是唯一的TOPTOP 處理處理服務器將返回由參數標識的郵件前服務器將返回由參數標識的郵件前n行內容,行內容,n必必須是正整數須是正整數NOOPNOOP 處理處理服務器返回一個肯定的響應服務器返回一個肯定的響應24常用命令n命令都是基于ASCII文本的,最常用的是nUSER、PASS、STAT、RETR、DELE和QUIT 255.4.2 POP3客戶端客戶端nPOP3客戶端客戶端Java Application應用程序應用程序POP3Client5_3.java如例程如例程5-3所示。所示。2627nFTP文件傳輸協(xié)議:建
21、立在文件傳輸協(xié)議:建立在TCP/IP協(xié)議基礎上協(xié)議基礎上 n客戶端客戶端/服務器模式進行文件的上傳和下載,稱服務器模式進行文件的上傳和下載,稱FTP客戶端(程序)和客戶端(程序)和FTP服務器。服務器。 nRFC959文檔的網址:文檔的網址:nhttp:/www.ietf.org/ rfc/rfc959.txt。n目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。對用戶透明和可靠高效地傳送數據。n5.5.1 FTP協(xié)議體系結構協(xié)議體系結構n5.5.2 FTP工作模式工作模式n5.5.3 服務器
22、端服務器端FTP程序程序n5.5.4 客戶端客戶端FTP程序程序28295.5.1 FTP協(xié)議體系結構協(xié)議體系結構nFTP客戶端分為三個層次:客戶端分為三個層次:n用戶接口用戶接口UI(User Interface)n用戶協(xié)議執(zhí)行器用戶協(xié)議執(zhí)行器PI(The User Protocol Interpreter)n用戶數據傳輸進程用戶數據傳輸進程DTP(The User Data Transfer Process););nFTP服務器分為兩個層次:服務器分為兩個層次:n服務器協(xié)議執(zhí)行器服務器協(xié)議執(zhí)行器PI(The Server Protocol Interpreter)n服務器數據傳輸進程服務器
23、數據傳輸進程DTP(The Server Data Transfer Process)。)。30FTP客戶端與服務器傳輸模型客戶端與服務器傳輸模型31FTP協(xié)議使用兩個層次的連接:協(xié)議使用兩個層次的連接:n第一個層次是由兩個第一個層次是由兩個PI形成的控制連接形成的控制連接n是由用戶是由用戶PI直接建立的專用于發(fā)送直接建立的專用于發(fā)送FTP命令的連接,向服務器命令的連接,向服務器PI提提出查看或下載文件的請求,連接遵循出查看或下載文件的請求,連接遵循Telnet協(xié)議,稱控制連接;協(xié)議,稱控制連接;n第二個層次是由第二個層次是由DTP形成的數據連接形成的數據連接n由用戶由用戶PI發(fā)出數據傳輸命令
24、,服務器發(fā)出數據傳輸命令,服務器PI響應,并控制服務器響應,并控制服務器DTP而而建立的專用于傳遞數據的連接,稱數據連接,它響應用戶端的請求建立的專用于傳遞數據的連接,稱數據連接,它響應用戶端的請求把指定的文件傳送到客戶端計算機中。把指定的文件傳送到客戶端計算機中。n一旦兩個一旦兩個DTP之間數據連接建好,就開始傳送數據。之間數據連接建好,就開始傳送數據。n這兩個層次的連接,也是兩條單獨的基于雙工通信鏈路的這兩個層次的連接,也是兩條單獨的基于雙工通信鏈路的TCP協(xié)協(xié)議連接。議連接。32FTP的主要命令、格式和描述的主要命令、格式和描述1、訪問控制命令、訪問控制命令 命命 令令格格 式式描描 述
25、述USERUSER 系統(tǒng)登錄的用戶名系統(tǒng)登錄的用戶名PASSPASS 系統(tǒng)登錄的用戶密碼系統(tǒng)登錄的用戶密碼CWDCWD 改變服務器上的工作目錄,即切換目錄改變服務器上的工作目錄,即切換目錄CDUPCDUP 切換到上一層目錄切換到上一層目錄QUITQUIT 從從FTP服務器上退出登錄服務器上退出登錄33FTP的主要命令、格式和描述的主要命令、格式和描述2、傳輸參數命令:、傳輸參數命令: 命命 令令格格 式式描描 述述PORTPORT IP地址和兩字節(jié)的端口地址和兩字節(jié)的端口ID(主動模式)(主動模式)TYPETYPE 數據類型(數據類型(A=ASCII,E=EBCDIC,I=binary)STR
26、USTRU 數據結構(數據結構(F=文件,文件,R=記錄,記錄,P=頁面)頁面)MODEMODE 傳輸模式(傳輸模式(S=流模式,流模式,B=塊模式,塊模式,C=壓縮模式)壓縮模式)PASVPASV 請求服務器等待數據連接(被動模式)請求服務器等待數據連接(被動模式)34FTP的主要命令、格式和描述的主要命令、格式和描述3、FTP服務命令服務命令 命命 令令格格 式式描描 述述RETRRETR 從服務器中獲得(找回)文件從服務器中獲得(找回)文件STORSTOR 向服務器中發(fā)送文件向服務器中發(fā)送文件STOUSTOU 存儲文件到服務器名稱上存儲文件到服務器名稱上DELEDELE 刪除服務器上的指
27、定文件刪除服務器上的指定文件LISTLIST 如果是文件名列出文件信息,如果是目錄則列如果是文件名列出文件信息,如果是目錄則列出文件列表出文件列表RMDRMD 刪除指定文件夾刪除指定文件夾MKDMKD 在服務器上建立指定目錄在服務器上建立指定目錄PWDPWD 顯示(打?。┊斍肮ぷ髂夸涳@示(打印)當前工作目錄HELPHELP 返回指定命令信息返回指定命令信息35FTP的部分應答碼的部分應答碼應應 答答 碼碼描描 述述150文件狀態(tài)正常,準備打開數據連接文件狀態(tài)正常,準備打開數據連接200命令執(zhí)行成功命令執(zhí)行成功220服務就緒,可以執(zhí)行新用戶的請求。如服務就緒,可以執(zhí)行新用戶的請求。如與服務器連接
28、成功與服務器連接成功221服務關閉控制連接。如果適當,請注銷服務關閉控制連接。如果適當,請注銷227進入被動模式進入被動模式230用戶登錄成功,繼續(xù)進行用戶登錄成功,繼續(xù)進行250目錄切換成功,已完成目錄切換成功,已完成257已創(chuàng)建文件夾已創(chuàng)建文件夾331用戶名正確,輸入密碼用戶名正確,輸入密碼應應 答答 碼碼描描 述述350請求的文件操作正在等待進一步的信息請求的文件操作正在等待進一步的信息421服務不可用,正在關閉控制連接。如果服務不可用,正在關閉控制連接。如果服務確定它必須關閉,將向任何命令發(fā)服務確定它必須關閉,將向任何命令發(fā)送這一應答送這一應答425無法打開數據連接無法打開數據連接45
29、0請求的文件操作未執(zhí)行請求的文件操作未執(zhí)行452未執(zhí)行請求的操作。系統(tǒng)存儲空間不夠未執(zhí)行請求的操作。系統(tǒng)存儲空間不夠500語法錯誤,命令無法識別語法錯誤,命令無法識別501在參數中有語法錯誤在參數中有語法錯誤502命令未實現命令未實現530未登錄未登錄550未執(zhí)行請求的操作。文件不可用未執(zhí)行請求的操作。文件不可用365.5.2 FTP工作模式(工作模式(1)nFTP協(xié)議有兩種工作模式:它們使用的端口不同,工作流程也不同。協(xié)議有兩種工作模式:它們使用的端口不同,工作流程也不同。nActive模式:主動方式(模式:主動方式(PORT)n命令通道建立:客戶端命令通道建立:客戶端PI使用隨機端口號使用
30、隨機端口號N呼叫服務器呼叫服務器PI的的21端口(默端口(默認)發(fā)送連接請求,服務器認)發(fā)送連接請求,服務器PI接收連接,建立一條控制連接,客戶端接收連接,建立一條控制連接,客戶端PI發(fā)送用戶名和密碼進行身份認證,確認后可發(fā)送發(fā)送用戶名和密碼進行身份認證,確認后可發(fā)送FTP的命令。的命令。N端口要求端口要求N1024。 n數據連接通道建立數據連接通道建立:由命令通道客戶端由命令通道客戶端PI用用PORT命令命令告知服務器告知服務器PI,客,客戶端的戶端的“IP地址和已打開地址和已打開M端口,可連接端口,可連接”;服務器;服務器PI接到命令后,利接到命令后,利用用20端口(默認)向客戶端的端口(
31、默認)向客戶端的M端口端口主動發(fā)送連接請求主動發(fā)送連接請求,服務器,服務器DTP與與客戶端客戶端DTP建立一條數據鏈路來傳送數據,建立一條數據鏈路來傳送數據,稱為主動模式稱為主動模式 。 M端口在端口在102565535 之間,隨機產生。之間,隨機產生。37FTP客戶FTP服務器21端口20端口控制連接數據連接FTP客戶FTP服務器21端口M2端口控制連接數據連接M端口主動模式主動模式被動模式被動模式M1端口385.5.2 FTP工作模式(工作模式(2)nPassive模式:被動方式(模式:被動方式(PASV)n命令通道建立:同主動方式;命令通道建立:同主動方式;n數據連接通道建立:通過命令通
32、道客戶端數據連接通道建立:通過命令通道客戶端PI發(fā)送發(fā)送PASV命令,告訴服務器命令,告訴服務器要采用被動模式建立連接。當服務器要采用被動模式建立連接。當服務器PI接收命令后,服務器就會自動監(jiān)接收命令后,服務器就會自動監(jiān)聽端口聽端口M1被動等待連接,并利用命令通道告訴客戶端被動等待連接,并利用命令通道告訴客戶端PI“M1端口,可連端口,可連接接”,客戶端在接到此信息后,就會自動選擇一個端口,客戶端在接到此信息后,就會自動選擇一個端口M2,與服務器,與服務器DTP的的M1端口建立數據連接通道。對服務器來說數據連接通道端口建立數據連接通道。對服務器來說數據連接通道DTP建立建立的過程中,是被動等待
33、連接,稱為被動模式。的過程中,是被動等待連接,稱為被動模式。 M1和和M2端口在端口在102565535中隨機產生。中隨機產生。395.5.3 服務器端服務器端FTP程序程序nFTP服務器程序為多線程,分為兩部分:主程序服務器程序為多線程,分為兩部分:主程序FtpServer5_4.java和命令和命令處理程序處理程序FtpConnection5_4.java,兩程序均為線程類,如例程,兩程序均為線程類,如例程5-4(a)和例程和例程5-4(b)所示。)所示。n主程序主程序FtpServer5_4為主線程類,由為主線程類,由main()方法啟動和運行主線程,方法啟動和運行主線程,run()方法
34、實現客戶線程。方法實現客戶線程。n其中,其中,main()方法調用命令處理程序方法調用命令處理程序FtpConnection5_4.java,并創(chuàng)建主線程,并創(chuàng)建主線程對象和其運行,如對象和其運行,如new FtpServer5_4().start()。nrun()方法系統(tǒng)自動調用,其中定義了服務器套接字方法系統(tǒng)自動調用,其中定義了服務器套接字ftpsocket,運行,運行accept()方方法來監(jiān)控端口法來監(jiān)控端口21,從而獲取客戶端套接字,將其賦給,從而獲取客戶端套接字,將其賦給client,以便與客戶端建立,以便與客戶端建立命令通道;命令通道;n以以client作為參數,建立命令處理程序
35、對象并運行,如作為參數,建立命令處理程序對象并運行,如new FtpConnection5_4(client).start()。n服務器套接字服務器套接字ftpsocket的監(jiān)控和建立命令處理程序對象都是在死循環(huán)的監(jiān)控和建立命令處理程序對象都是在死循環(huán)for(;)中進行的,新的客戶進入,便產生一個新客戶線程,從而在服務器中實現多中進行的,新的客戶進入,便產生一個新客戶線程,從而在服務器中實現多線程。線程。40關鍵命令關鍵命令n1主動模式主動模式PORT(PORT)命令命令n2被動模式被動模式PASV(PASSIVE)命令命令n3文件下載文件下載RETR(RETEIEVE)和文件和文件上傳上傳S
36、TOR(STORE)命令命令n4文件和目錄列表文件和目錄列表LIST (LIST)命令命令415.5.4 客戶端客戶端FTP程序程序nFTP客戶端程序客戶端程序FTPClient5_5.java,如例程,如例程5-5所示。主要有所示。主要有5種方種方法,各方法的作用和功能如下:法,各方法的作用和功能如下:n main(String args)主方法。創(chuàng)建)主方法。創(chuàng)建FTP客戶端程序客戶端程序FTPClient5_5的的對象對象client,使程序開始運行。,使程序開始運行。n FTPClient5_5()構造函數。調用構造函數。調用displayFile() 向服務器發(fā)送命令。向服務器發(fā)送命
37、令。n displayFile()發(fā)送命令。向服務器發(fā)送登錄、建立文件夾、查看文件列發(fā)送命令。向服務器發(fā)送登錄、建立文件夾、查看文件列表、文件操作和文件傳輸等命令,接收服務器應答信息和顯示信息。表、文件操作和文件傳輸等命令,接收服務器應答信息和顯示信息。n getReply(BufferedReader dataIn)方法接收方法接收FTP服務器應答碼和信服務器應答碼和信息。息。n writeMsg(String msg,String str) pw.println(msg)方法向方法向FTP服務服務器發(fā)送命令和信息。器發(fā)送命令和信息。42nHTTP超文本傳輸協(xié)議:建立在超文本傳輸協(xié)議:建立在
38、TCP/IP協(xié)議基礎上。協(xié)議基礎上。n傳輸超文本。也是應用最廣的網絡應用協(xié)議之一。傳輸超文本。也是應用最廣的網絡應用協(xié)議之一。n基于請求基于請求/響應模式??蛻敉ㄟ^瀏覽器訪問響應模式??蛻敉ㄟ^瀏覽器訪問HTTP服務器上的文檔和文服務器上的文檔和文件服務。件服務。 nRFC2068文檔為文檔為HTTP/1.1版本,網址:版本,網址:nhttp:/www.ietf.org/rfc/ rfc2068.txt。 n5.6.1 HTTP協(xié)議概述協(xié)議概述n5.6.2 HTTP協(xié)議內容協(xié)議內容n5.6.3 HTTP服務器實現服務器實現435.6.1 HTTP協(xié)議概述協(xié)議概述nHTTP協(xié)議是一種靈活和迅速的應
39、用于分布式、協(xié)作、超協(xié)議是一種靈活和迅速的應用于分布式、協(xié)作、超媒體信息系統(tǒng)所需的應用層協(xié)議。這是一個媒體信息系統(tǒng)所需的應用層協(xié)議。這是一個通用通用、無狀態(tài)無狀態(tài)、面向對象面向對象的協(xié)議,通過擴展它的請求方法(命令)可用于的協(xié)議,通過擴展它的請求方法(命令)可用于多種任務。多種任務。nHTTP客戶以客戶以Web瀏覽器作為客戶工具通過瀏覽器作為客戶工具通過HTTP協(xié)議向協(xié)議向HTTP服務器請求超文本文件,而超文本文件中包含著超服務器請求超文本文件,而超文本文件中包含著超鏈接。鏈接。 nHTTP服務器使得服務器使得Internet成為超文本文件的集合。成為超文本文件的集合。445.6.2 HTTP
40、協(xié)議內容協(xié)議內容n服務器:服務器:包括包括HTML文件,一個文件,一個HTTP駐留程序,即服務器程序,用于響應駐留程序,即服務器程序,用于響應HTTP客戶請求。客戶請求。n瀏覽器:瀏覽器:就是就是HTTP客戶,向服務器發(fā)送請求,當瀏覽器中輸入一個開始文件或客戶,向服務器發(fā)送請求,當瀏覽器中輸入一個開始文件或單擊一個超鏈接時,瀏覽器就向服務器發(fā)送了單擊一個超鏈接時,瀏覽器就向服務器發(fā)送了HTTP請求,此請求被送往由請求,此請求被送往由IP地址指定的地址指定的URL。n程序接收到請求,在進行必要的操作后回送所要求的文件。之前,要建立程序接收到請求,在進行必要的操作后回送所要求的文件。之前,要建立H
41、TTP客戶與客戶與HTTP服務器的連接,默認端口為服務器的連接,默認端口為80;之后,要關閉連接。;之后,要關閉連接。HTTP協(xié)議協(xié)議的內部操作過程分為的內部操作過程分為4個過程:個過程:建立連接、發(fā)送請求信息、發(fā)送響應信息和內容、關閉連接。建立連接、發(fā)送請求信息、發(fā)送響應信息和內容、關閉連接。 45客戶A服務器80端口客戶請求ss請求隊列客戶Bv v46HTTP協(xié)議協(xié)議兩個重點過程兩個重點過程 n1HTTP客戶發(fā)送請求信息客戶發(fā)送請求信息n完整請求完整請求=請求行請求行(通用信息頭通用信息頭|請求頭請求頭|實體頭實體頭)CRLF實體內容實體內容n格式:格式:Full-Request=Requ
42、est-Line*(General-Header|Request-Header|Entity-Header) CRLFEntity-Bodyn2HTTP服務器發(fā)送響應信息和內容服務器發(fā)送響應信息和內容n響應消息響應消息=狀態(tài)行狀態(tài)行(通用信息頭通用信息頭|響應頭響應頭|實體頭實體頭)CRLF實體內容實體內容n格式:格式:Full-Response=Status-Line*(General-Header|Response-Header|Entity-Header) CRLFEntity-Bodyn請求方式請求方式nGET客戶端請求訪問服務器上的一個文檔;(網頁)客戶端請求訪問服務器上的一個文檔;
43、(網頁)nPOST客戶程序發(fā)送大量信息給服務器。通常包含大量客戶程序發(fā)送大量信息給服務器。通常包含大量HTML表單數據。表單數據。nHEAD客戶端和服務器之間交流內部數據;服務器不會返回具體文檔。對用戶透明??蛻舳撕头掌髦g交流內部數據;服務器不會返回具體文檔。對用戶透明。nPUT 客戶程序上傳文檔給服務器??蛻舫绦蛏蟼魑臋n給服務器。nDELETE 客戶程序刪除服務器上的某個文檔。客戶程序刪除服務器上的某個文檔。47HTTP請求格式n請求由三部分組成:請求由三部分組成:n請求行:請求方式、請求行:請求方式、URI、HTTP協(xié)議版本協(xié)議版本n請求頭字段請求頭字段n請求正文請求正文n例:例:PO
44、ST /servlet/default.jsp HTTP/1.1POST /servlet/default.jsp HTTP/1.1Accept: text/plain; text/htmlAccept: text/plain; text/htmlAccept-Language: en-gbAccept-Language: en-gbConnection: Keep-AliveConnection: Keep-AliveHost: localhostHost: localhostReferer: http:/localhost/ch8/SendDetails.htmReferer: http:
45、/localhost/ch8/SendDetails.htmUser-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)Content-Length: 33Content-Length: 33Content-Type: application/x-www-form-urlencodedContent-Type: application/x-www-form-urlencodedAccept-Encoding: gzipA
46、ccept-Encoding: gzip,deflatedeflate CRLFCRLFLastName=Franks&FirstName=MichaelLastName=Franks&FirstName=Michaeln請求頭和請求正文之間必須以空行請求頭和請求正文之間必須以空行(CRLF)分割,它表示請求頭結束。分割,它表示請求頭結束。n正文可以包含客戶以正文可以包含客戶以POST方式提交的表單數據。方式提交的表單數據。 48HTTP響應格式n也由三部分組成:也由三部分組成:n響應行:響應行:HTTP協(xié)議的版本、狀態(tài)代碼、描述協(xié)議的版本、狀態(tài)代碼、描述n響應頭字段響應頭字段n響應正文響應正
47、文HTTP/1.1 200 OK Server: Microsoft-IIS/4.0Date: Mon, 3 Jan 1998 13:13:33 GMTContent-Type: text/htmlLast-Modified: Mon, 11 Jan 1998 13:23:42 GMTContent-Length: 112 CRLF HTTP Response ExampleWelcome to Brainy Softwaren響應頭和響應正文之間必須以空行響應頭和響應正文之間必須以空行(CRLF)分割,它表示響應頭結束。分割,它表示響應頭結束。495.6.3 HTTP服務器實現服務器實現nH
48、TTP服務器程序為多線程,適合同時并行處理服務器程序為多線程,適合同時并行處理多個請求,有一個主類多個請求,有一個主類HTTPServer5_6和一個和一個內部多線程類內部多線程類Handler。服務器主要工作由。服務器主要工作由Handler類完成。類完成。Handler類的設計可提供更好類的設計可提供更好的性能和正確處理的性能和正確處理I/O阻塞問題,客戶間可互不阻塞問題,客戶間可互不影響。影響。n該該HTTP服務器程序是服務器程序是Web服務器的簡單結構,服務器的簡單結構,實現了實現了HTTP1.0 GET請求的基本框架,不支持請求的基本框架,不支持其他請求,如其他請求,如POST等。等
49、。50nURL(Unifoem Resource Locator)是描述如何尋找是描述如何尋找Internet上資源的上資源的字符串,也是網絡地址類型之一。字符串,也是網絡地址類型之一。nURL指向網絡上某臺機器的一個文件(視頻、圖片、文檔等)、指向網絡上某臺機器的一個文件(視頻、圖片、文檔等)、Web站點、站點、FTP站點、新聞組、電子郵件地址,以及指向網絡上的其他資源,如數據站點、新聞組、電子郵件地址,以及指向網絡上的其他資源,如數據庫查詢和命令輸出。庫查詢和命令輸出。包中提供了幾個包中提供了幾個HTTP功能的類:功能的類:nURL、URLConnection和和HttpURLConnec
50、tion,其中,其中URLConnection為抽為抽象類,需要創(chuàng)建其子類。象類,需要創(chuàng)建其子類。n這些類封裝了這些類封裝了Socket套接字通信,不需要額外建立通信連接。套接字通信,不需要額外建立通信連接。n5.7.1 Java URL主類主類n5.7.2 URLConnection抽象類抽象類n5.7.3 用用URL和和URLConnection獲取資源獲取資源515.7.1 Java URL主類主類n統(tǒng)一資源定位器統(tǒng)一資源定位器URL具有兩個主要組成部分:訪具有兩個主要組成部分:訪問資源的協(xié)議及資源的位置。問資源的協(xié)議及資源的位置。 nURL格式:協(xié)議名格式:協(xié)議名:/主機名主機名:端口
51、號端口號/路徑路徑/文件文件n例如,例如,http:/:80/index.html或或http:/ 。n80端口號可省略端口號可省略 。n1URL類類n2常用成員方法常用成員方法521URL類類nURL類構造函數如下四個:類構造函數如下四個:n(1)public URL(String spec) throws MalformedURLExceptionn(2)public URL(String protocol, String host, int port, String file) throws MalformedURLExceptionn(3)public URL(String proto
52、col, String host, String file) throws MalformedURLExceptionn(4)public URL(URL context, String spec) throws MalformedURLExceptionnURL url=new URL(getDocumentBase(), myfile.html);532常用成員方法常用成員方法n boolean equals(Object obj):比較此:比較此URL是否等于另一個對象。是否等于另一個對象。n Object getContent():獲得此:獲得此URL的內容。的內容。n int get
53、DefaultPort():獲得與此:獲得與此URL關聯(lián)協(xié)議的默認端口號。關聯(lián)協(xié)議的默認端口號。n String getFile():獲得此:獲得此URL的文件名。如果沒有查詢部分,此方法將返回與的文件名。如果沒有查詢部分,此方法將返回與getPath()相同的結果。相同的結果。n String getHost():獲得此:獲得此URL的主機名(如果適用)。的主機名(如果適用)。n String getPath():獲得此:獲得此URL的路徑部分。的路徑部分。n int getPort():獲得此:獲得此URL的端口號。的端口號。n String getProtocol():獲得此:獲得此UR
54、L的協(xié)議名稱。的協(xié)議名稱。n String getQuery():獲得此:獲得此URL的查詢部分。的查詢部分。n URLConnection openConnection() throws IOException:返回一個:返回一個URLConnection對象,表示到對象,表示到URL所引用的遠程對象的連接。所引用的遠程對象的連接。n URLConnection openConnection(Proxy proxy) :與:與openConnection()類類似,所不同是連接通過指定的代理建立;不支持代理方式的協(xié)議處理程序將忽略該代似,所不同是連接通過指定的代理建立;不支持代理方式的協(xié)議處
55、理程序將忽略該代理參數并建立正常的連接。理參數并建立正常的連接。n InputStream openStream():打開到此:打開到此URL的連接并返回一個用于從該連接讀的連接并返回一個用于從該連接讀入的入的InputStream。n String toString():返回此:返回此URL的字符串表示形式。的字符串表示形式。54客戶A建立連接,讀取數據網絡資源URL對象555.7.2 URLConnection抽象類抽象類nURLConnection抽象類表示客戶應用程序和遠程服務器的通信連接。nURLConnection類的作用是解釋在瀏覽器顯示的文本。n1URLConnection抽象
56、類n2常用成員方法561URLConnection抽象類抽象類n定義:定義:npublic abstract class URLConnection extends Objectn此類的對象可通過相應的讀取和寫入方法調用此類的對象可通過相應的讀取和寫入方法調用URL的資源。的資源。通常,創(chuàng)建一個到通常,創(chuàng)建一個到URL的連接需要以下四個步驟:的連接需要以下四個步驟:n 通過在通過在URL對象調用對象調用openConnection()方法創(chuàng)建方法創(chuàng)建URLConnection連接對象。連接對象。n 處理設置參數和一般請求屬性。處理設置參數和一般請求屬性。n 使用使用connect()方法建立到
57、遠程對象的實際連接。方法建立到遠程對象的實際連接。n 遠程對象變?yōu)榭捎?。遠程對象的頭字段和內容變?yōu)榭稍L問。遠程對象變?yōu)榭捎?。遠程對象的頭字段和內容變?yōu)榭稍L問。57URL的連接步驟的連接步驟創(chuàng)建創(chuàng)建URLConnection對象對象connection,并打開到此,并打開到此URL引用資源的引用資源的通信連接:通信連接:URL url=new URL(some_url);/創(chuàng)建創(chuàng)建URL對象對象/ 創(chuàng)建創(chuàng)建URLConnection對象對象URLConnection connection=url.openConnection();/ 建立連接建立連接connection.connect();/
58、訪問遠程文件的頭字段和內容訪問遠程文件的頭字段和內容System.out.println(文件類型文件類型:+ connection.getContentType);582常用成員方法常用成員方法nURLConnection類有兩個成員域,包括由類有兩個成員域,包括由get和和set開頭的兩種成員方法。開頭的兩種成員方法。nURLConnection類成員域:類成員域:n protected boolean doInput變量:默認值為變量:默認值為true,允許應用程序從,允許應用程序從URL連連接讀取遠程服務器發(fā)送的數據。接讀取遠程服務器發(fā)送的數據。n protected boolean
59、doOutput變量:默認值為變量:默認值為false,允許應用程序由,允許應用程序由URL連接向遠程服務器發(fā)送數據。連接向遠程服務器發(fā)送數據。nURLConnection類提供了設置參數、讀取數據方法,方法都為類提供了設置參數、讀取數據方法,方法都為public。n abstract void connect() throws IOException:打開到此:打開到此URL引用的資源的引用的資源的通信連接。通信連接。nvoid setDoInput(boolean doinput):將此:將此URLConnection的的doInput字段字段值設置為指定的值。值設置為指定的值。nvoid
60、 setDoOutput(boolean dooutput):將此:將此URLConnection的的doOutput字段值設置為指定的值。字段值設置為指定的值。nvoid setUseCaches(boolean usecaches):如果連接中:如果連接中UseCaches標志為標志為true,則允許連接使用任何可用的緩存。,則允許連接使用任何可用的緩存。59n在建立到遠程服務器對象的連接后,訪問文件的頭字段和內容:在建立到遠程服務器對象的連接后,訪問文件的頭字段和內容:nObject getContent() throws IOException:獲取此:獲取此URL連接的內容。連接的內
61、容。nString getHeaderField(String name):返回指定頭字段的最后一次:返回指定頭字段的最后一次設置的值。設置的值。nString getHeaderField(int n):返回第:返回第n個頭字段的設置的值。個頭字段的設置的值。nString getHeaderFieldKey(int n):返回第:返回第n個頭字段的鍵。個頭字段的鍵。nInputStream getInputStream() throws IOException:返回從此:返回從此打開的連接讀取輸入流。打開的連接讀取輸入流。nOutputStream getOutputStream() th
62、rows IOException:返回寫:返回寫入到此連接的輸出流。入到此連接的輸出流。60客戶B建立連接,讀/寫數據網絡資源URLConnection對象對象inout61例程例程5-7,urlConnection5_7.javan實現了創(chuàng)建實現了創(chuàng)建URLConnection對象對象con和和URL對象對象url,并通過調用,并通過調用URLConnection不同方法獲得服務不同方法獲得服務器響應正文的相關信息;檢查服務器響應正文屬性(頭域)和設置;通過使用器響應正文的相關信息;檢查服務器響應正文屬性(頭域)和設置;通過使用HTTPURLConnection對對象,獲得與象,獲得與HTT
63、P協(xié)議相關的信息。運行結果如下:協(xié)議相關的信息。運行結果如下:n輸出服務器資源域的屬性信息:輸出服務器資源域的屬性信息: Content Type: text/html;charset=ISO-8859-1 Content Encoding: null Content Length: -1 Date: Sat Oct 17 22:44:38 CST 2009 Last Modified: Thu Jan 01 08:00:00 CST 1970 Expiration: Thu Jan 01 08:00:00 CST 1970 User-Agent: CERN-LineMode/2.15 lib
64、www/2.17b3 Referer: http:/ Server: Sun-Java-System-Web-Server/7.0 Date: Sat,17 Oct 2009 14:44:38 GMT Content-type: text/html;charset=ISO-8859-1 Set-cookie: JSESSIONID=CD8D947C0DB6621E17385BCDB515A759;Path=/ Transfer-encoding: chunked與與HTTP協(xié)議相關的信息,如狀態(tài)碼等。協(xié)議相關的信息,如狀態(tài)碼等。 Request Method: GET Response Mes
65、sage: OK Response Code: 20062635.7.3 用用URL和和URLConnection獲取資源獲取資源nURL和和URLConnection類都封裝了類都封裝了Socket套套接字通信,不需要通信連接,從網絡上獲取資接字通信,不需要通信連接,從網絡上獲取資源變得方便。源變得方便。n1用用URL方式獲取資源方式獲取資源n2用用URLConnection方式獲取資源方式獲取資源641用用URL方式獲取資源方式獲取資源n首先,在首先,在try/catch塊內部,創(chuàng)建捆綁資源地址塊內部,創(chuàng)建捆綁資源地址MyURL1的的URL對象對象url1;n第二,調用第二,調用openS
66、tream()方法,便可建立與下載資源的服務器方法,便可建立與下載資源的服務器(url1)的連接。該方法返回一個輸入流)的連接。該方法返回一個輸入流InputStream對象,通過賦對象,通過賦值創(chuàng)建一個捆綁值創(chuàng)建一個捆綁url1,連接到服務器上的輸入流對象,連接到服務器上的輸入流對象in1;n第三,由輸入流對象第三,由輸入流對象in1調用調用read()方法獲取遠程服務器上的資源;方法獲取遠程服務器上的資源;n第四,將獲取的資源第四,將獲取的資源c1,用,用write(char)c1)方法寫入文件輸出流方法寫入文件輸出流FileOutputStream(MyFile1)的對象的對象fout1所指定的本地計算機的所指定的本地計算機的MyFile1文件中。文件中。n如例程如例程5-8 URLResource5_8.java程序所示。程序所示。652用用URLConnection方式獲取資源方式獲取資源n首先,創(chuàng)建捆綁資源地址首先,創(chuàng)建捆綁資源地址MyURL2的的URL對象對象url2;n第二,通過賦值創(chuàng)建一個第二,通過賦值創(chuàng)建一個URLConnection對象對象con,便建立了與下載資
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復工安全生產培訓人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復工復產十注意節(jié)后復工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復工安全生產培訓勿忘安全本心人人講安全個個會應急
- 預防性維修管理
- 常見閥門類型及特點
- 設備預防性維修
- 2.乳化液泵工理論考試試題含答案