Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)
應用層(下)
--E-mail,WWW
一、E-mail/電子郵件系統
1、電子郵件系統的組成結構
? ? 1)MTS(MessageTansfer System),郵件傳輸系統。
? ? 2)UA(UserAgent),用戶代理
? ? 用戶代理UA就是用戶與電子郵件系統的接口軟件,如軟件outlook、express、foxmail等。用戶代理的功能是:撰寫、顯示和處理郵件。
? ? 3)MTA(MessageTransfer Agent),郵件傳輸代理。
? ? 即郵件服務器:負責發送和接收郵件,同時還要向發信人報告郵件傳送的情況(已交付、被拒絕、丟失等)。郵件服務器按照客戶服務器方式工作。
郵件服務器需要使用兩個不同的協議:
? ? 4)簡單郵件傳輸協議SMTP用于向郵件服務器發送郵件。
? ? 5)郵局協議POP(Post Office Protocol) 用于收信人從郵件服務器的信箱中收取郵件。
2、傳輸過程
3、SMTP
SMTP使用TCP可靠傳輸E-mail消息,從客戶端到服務器端,使用端口25。
? ? 1)SMTP交互過程:
? ? ? ?(1)直接傳輸:從發送服務器到接收服務器。
? ? ? ?(2)傳輸的三個階段:
? ? ? ? ? ? ? --握手(問候)
? ? ? ? ? ? ? --傳輸消息
? ? ? ? ? ? ? --釋放
? ? ? ?(3)命令/響應交互
? ? ? ? ? ? ? 命令:ASCII碼
? ? ? ? ? ? ? 響應:狀態碼和短語
? ? 消息必須用7位的ASCII。
? ? 實際上,每一個郵件服務器上都有SMTP客戶端和SMTP服務端,當它發信時,執行客戶端的功能;當它收信時,執行服務端的功能。
? ? 2)Internetemail信件的格式。
? ? ? ?一個電子郵件分為信封和內容兩大部分。
? ? ? ?RFC822只規定了郵件內容中的首部(header)格式,而對郵件的主體(body)部分則讓用戶自由撰寫。
? ? ? ?用戶寫好首部后,郵件系統將自動地將信封所需的信息提取出來并寫在信封上。所以用戶不需要填寫電子郵件信封上的信息。
? ? ? ?郵件內容首部包括一些關鍵字,后面加上冒號。最重要的關鍵字是:To和Subject。
4、MIME
? ? RFC822的問題:
? ? ? ? 如何傳輸多媒體信息,如聲音、圖像、動畫和可執行程序等二進制文件等。
? ? ? ? 如何來解決字符集編碼問題。
? ? 解決方式:MIME的出現
? ? ? ? MIME并沒有改動SMTP或取代它。
? ? ? ? MIME的意圖是繼續使用目前的[RFC822]格式,但增加了郵件主體的結構,并定義了傳送非ASCII碼的編碼規則。
? ? 1)SMTP與MIME的關系
? ? 2)最關鍵的特征
? ? ?具有兩個支持多媒體功能的標題Content-Type和Content-Transfer-Encoding。
Content-Type:
? ? 郵件體的類型,讓郵件代理知道如何處理該郵件
? ? 如image/jpeg告訴郵件代理,這是一個JPEG的圖像,于是它就調用相應的JPEG處理程序將圖像進行解碼顯示。
Content-Transfer-Encoding:
? ? 告訴郵件代理郵件主體所采用的傳輸編碼類型,如7bit,base64,quoted printable。
5、POP3(PostOffice Protocol,version3)
? ? 負責將郵件從郵箱中取出后傳輸到接收者的主機上,使用端口110。
POP3工作的三個階段:
? ? 認證階段:用戶向服務器發送信箱的用戶名和用戶口令。
? ? 傳輸階段:用戶可以讀取郵件,設置郵件的刪除標記,以及獲得郵件的統計信息。
? ? 確認階段:當用戶發出QUIT命令后進入,此時結束POP3會話過程,并將已設置刪除標記的郵件從信箱中刪除。
6、總結
? ? IMAP也是按客戶服務器方式工作,現在較新的是版本4,即IMAP4。
? ? IMAP最大的好處就是用戶可以在不同的地方使用不同的計算機隨時上網閱讀和處理自己的郵件。
? ? IMAP還允許收件人只讀取郵件中的某一個部分。例如,收到了一個帶有視像附件(此文件可能很大)的郵件。為了節省時間,可以先下載郵件的正文部分,待以后有時間再讀取或下載這個很長的附件。
基于萬維網的電子郵件
? ? 電子郵件從A發送到網易郵件服務器是使用HTTP協議。兩個郵件服務器之間的傳送使用SMTP。郵件從新浪郵件服務器傳送到B是使用HTTP協議。
二、WWW/萬維網
1、概述
? ? WWW以客戶服務器方式工作。使用端口80.
? ? 瀏覽器就是在用戶計算機上的WWW客戶程序。WWW文檔所駐留的計算機則運行服務器程序,也稱為WWW服務器。客戶程序向服務器程序發出請求,服務器程序向客戶程序送回客戶所要的WWW文檔。在一個客戶程序主窗口上顯示出的WWW文檔稱為頁面(page)。HTTP協議是一個應用層協議,它使用TCP連接進行可靠的傳送。HTTP是面向事務的(transaction-oriented)應用層協議,它是萬維網上能夠可靠地交換文件(包括文本、聲音、圖像等各種多媒體文件)的重要基礎。
? ? 使用統一資源定位符URL(Uniform Resource Locator)來標志萬維網上的各種文檔,使每一個文檔在整個因特網的范圍內具有唯一的標識符URL。
? ? 在萬維網客戶程序與萬維網服務器程序之間進行交互所使用的協議,是超文本傳送協議HTTP(HyperText Transfer Protocol),HTTP是一個應用層協議,它使用TCP連接進行可靠的傳送。
? ? 超文本標記語言HTML(HyperText MarkupLanguage)使得萬維網頁面的設計者可以很方便地用一個超鏈從本頁面的某處鏈接到因特網上的任何一個萬維網頁面,并且能夠在自己的計算機屏幕上將這些頁面顯示出來。
2、URL的一般格式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <協議>://<主機>:<端口號>/<路徑>
3、萬維網的工作過程:
? ? 設URL為http://www.tmtpost.com/99682.html
? ? 用戶點擊鼠標后所發生的事件:
(1)瀏覽器分析超鏈指向頁面的URL。
(2)瀏覽器向DNS請求解析www.tmtpost.com的IP地址。
(3)域名系統DNS解析出鈦媒體服務器的IP地址。
(4)瀏覽器與服務器建立TCP連接
(5)瀏覽器發出取文件命令:GET/99682.html
(6)服務器給出響應,把文件99682.html發給瀏覽器。
(7)TCP連接釋放。
(8)瀏覽器顯示鈦媒體相關網頁文件99682.html中的所有文本。
3、HTTP主要特點
? ? HTTP是面向事務的客戶服務器協議。
? ? HTTP協議是無狀態的(stateless),即不需要記憶交互的當前狀態,因為過程簡單。
? ? HTTP1.0 (RFC1945)協議是非持續連接。建立TCP連接后,一個HTTP請求過去,一個HTTP響應過來,然后就斷開TCP連接。
? ? HTTP使用了面向連接的TCP向上提供的服務。但HTTP協議本身是無連接的。
? ? 萬維網瀏覽器就是一個HTTP客戶,而在萬維網服務器上等待HTTP請求的守護進程常稱為HTTPdaemon ( 又稱 HTTPD)。HTTPdaemon在收到HTTP客戶的請求后,把所需的文件組織在HTTP響應報文中返回給HTTP客戶。
4、持續連接
? ? 不同于HTTP/1.0,HTTP/1.1協議使用持續連接。
? ? 萬維網服務器在發送響應后仍然在一段時間內保持這條連接,使同一個客戶(瀏覽器)和該服務器可以繼續在這條連接上傳送后續的HTTP請求報文和響應報文。
這并不局限于傳送同一個頁面上鏈接的文檔,而是只要這些文檔都在同一個服務器上就行。
? ? 目前一些流行的瀏覽器(例如,IE6.0)的默認設置就是使用HTTP/1.1(RFC2068)。
5、持續連接的兩種工作方式
? ? 非流水線方式:客戶在收到前一個響應后才能發出下一個請求。雖然這比非持續連接的兩倍RTT的開銷節省了建立TCP連接所需的一個RTT時間,但服務器在發送完一個對象后,其TCP連接就處于空閑狀態,浪費了服務器資源。
? ? 流水線方式:客戶在收到HTTP的響應報文之前就能夠接著發送新的請求報文。一個接一個的請求報文到達服務器后,服務器就可連續發回響應報文。使用流水線方式時,客戶訪問所有的對象只需花費一個RTT時間,使TCP連接中的空閑時間減少,提高了下載文檔效率
6、HTTP請求報文格式
? ? “方法”是面向對象技術中使用的專門名詞。所謂“方法”就是對所請求的對象進行的操作,因此這些方法實際上也就是一些命令。因此,請求報文的類型是由它所采用的方法決定的。
7、HTTP相應報文格式
? ? 響應報文的開始行是狀態行。
? ? 狀態行包括三項內容,即HTTP的版本,狀態碼,以及解釋狀態碼的簡單短語。
轉載于:https://blog.51cto.com/zhujifang/1380111
總結
以上是生活随笔為你收集整理的Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】jQuery最佳实践
- 下一篇: 配置SQL Server 2005 远程