Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)

应用层()

--E-mailWWW



一、E-mail/电子邮件系统

1、电子邮件系统的组成结构

    1MTS(MessageTansfer System),邮件传输系统。

    2UA(UserAgent),用户代理

    用户代理UA就是用户与电子邮件系统的接口软件,如软件outlook、expressfoxmail等。用户代理的功能是:撰写、显示和处理邮件。

    3MTA(MessageTransfer Agent),邮件传输代理。

    即邮件服务器:负责发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器按照客户服务器方式工作。


邮件服务器需要使用两个不同的协议:

    4)简单邮件传输协议SMTP用于向邮件服务器发送邮件。

    5)邮局协议POP(Post Office Protocol) 用于收信人从邮件服务器的信箱中收取邮件。


2、传输过程



3SMTP

SMTP使用TCP可靠传输E-mail消息,从客户端到服务器端,使用端口25

    1SMTP交互过程:

       (1)直接传输:从发送服务器到接收服务器。

       (2)传输的三个阶段:

              --握手(问候)

              --传输消息

              --释放

       (3)命令/响应交互

              命令:ASCII

              响应:状态码和短语


    消息必须用7位的ASCII

    实际上,每一个邮件服务器上都有SMTP客户端和SMTP服务端,当它发信时,执行客户端的功能;当它收信时,执行服务端的功能。


    2Internetemail信件的格式。

       一个电子邮件分为信封和内容两大部分。

       RFC822只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。

       用户写好首部后,邮件系统将自动地将信封所需的信息提取出来并写在信封上。所以用户不需要填写电子邮件信封上的信息。

       邮件内容首部包括一些关键字,后面加上冒号。最重要的关键字是:ToSubject


4MIME

    RFC822的问题:

        如何传输多媒体信息,如声音、图像、动画和可执行程序等二进制文件等。

        如何来解决字符集编码问题。

    解决方式:MIME的出现

        MIME并没有改动SMTP或取代它。

        MIME的意图是继续使用目前的[RFC822]格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。


    1SMTPMIME的关系



    2)最关键的特征

     具有两个支持多媒体功能的标题Content-TypeContent-Transfer-Encoding

Content-Type:

    邮件体的类型,让邮件代理知道如何处理该邮件

    如image/jpeg告诉邮件代理,这是一个JPEG的图像,于是它就调用相应的JPEG处理程序将图像进行解码显示。

Content-Transfer-Encoding:

    告诉邮件代理邮件主体所采用的传输编码类型,如7bitbase64,quoted printable


5POP3(PostOffice Protocolversion3

    负责将邮件从邮箱中取出后传输到接收者的主机上,使用端口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)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。


2URL的一般格式

                                  <协议>://<主机>:<端口号>/<路径>

3、万维网的工作过程:

    设URLhttp://www.tmtpost.com/99682.html

    用户点击鼠标后所发生的事件:

(1)浏览器分析超链指向页面的URL

(2)浏览器向DNS请求解析www.tmtpost.comIP地址。

(3)域名系统DNS解析出钛媒体服务器的IP地址。

(4)浏览器与服务器建立TCP连接

(5)浏览器发出取文件命令:GET/99682.html

(6)服务器给出响应,把文件99682.html发给浏览器。

(7)TCP连接释放。

(8)浏览器显示钛媒体相关网页文件99682.html中的所有文本。


3HTTP主要特点

    HTTP是面向事务的客户服务器协议。

    HTTP协议是无状态的(stateless),即不需要记忆交互的当前状态,因为过程简单。

    HTTP1.0 (RFC1945)协议是非持续连接。建立TCP连接后,一个HTTP请求过去,一个HTTP响应过来,然后就断开TCP连接。

    HTTP使用了面向连接的TCP向上提供的服务。但HTTP协议本身是无连接的。

    万维网浏览器就是一个HTTP客户,而在万维网服务器上等待HTTP请求的守护进程常称为HTTPdaemon ( 又称 HTTPD)HTTPdaemon在收到HTTP客户的请求后,把所需的文件组织在HTTP响应报文中返回给HTTP客户。


4、持续连接

    不同于HTTP/1.0HTTP/1.1协议使用持续连接。

    万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。

这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。

    目前一些流行的浏览器(例如,IE6.0)的默认设置就是使用HTTP/1.1(RFC2068)


5、持续连接的两种工作方式

    非流水线方式:客户在收到前一个响应后才能发出下一个请求。虽然这比非持续连接的两倍RTT的开销节省了建立TCP连接所需的一个RTT时间,但服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。

    流水线方式:客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个RTT时间,使TCP连接中的空闲时间减少,提高了下载文档效率


6HTTP请求报文格式


    “方法”是面向对象技术中使用的专门名词。所谓“方法”就是对所请求的对象进行的操作,因此这些方法实际上也就是一些命令。因此,请求报文的类型是由它所采用的方法决定的。


7HTTP相应报文格式


    响应报文的开始行是状态行。

    状态行包括三项内容,即HTTP的版本,状态码,以及解释状态码的简单短语。

Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。