920 likes | 1.07k Views
第三章 应用层. 本章知识点. 应用层的基本概念,应用层实体、客户-服务器模型、应用进程地址 WWW 和 HTTP 协议 FTP 协议 电子邮件、 SMTP 协议、 POP3 协议 域名系统 DNS DHCP. 应用层概述. 应用层的目的是为人们提供具体的网络应用,如网页浏览、文件下载、电子邮件等 。 通信两端的应用层遵循特定的应用层协议,交换特定的应用层报文,实现特定的网络应用 。. 应用层中的几个问题. 在应用层里是谁在通信?即应用层实体是什么? 两个应用层实体的通信如何开始的?如何进行的?如何结束的?
E N D
本章知识点 • 应用层的基本概念,应用层实体、客户-服务器模型、应用进程地址 • WWW和HTTP协议 • FTP协议 • 电子邮件、SMTP协议、POP3协议 • 域名系统DNS • DHCP
应用层概述 • 应用层的目的是为人们提供具体的网络应用,如网页浏览、文件下载、电子邮件等 。 • 通信两端的应用层遵循特定的应用层协议,交换特定的应用层报文,实现特定的网络应用 。
应用层中的几个问题 • 在应用层里是谁在通信?即应用层实体是什么? • 两个应用层实体的通信如何开始的?如何进行的?如何结束的? • 通信的一个关键要素是地址,在应用层中,应用层实体的地址是如何确定的?
应用层实体 • 应用层实体实现了具体的应用层协议,提供网络应用。 • 网络通信是在两个正在运行着的程序之间进行的,因此应用层实体是实现并遵循特定网络协议的应用进程 。
应用层工作模型 • TCP/IP应用层基本的工作模型是客户-服务器模型。 • 客户和服务器都是指进行网络通信的进程。 • 在客户-服务器模型中,服务器要先运行并处于等待状态,时刻准备接收客户的请求。 • 客户只在需要时向服务器发出请求,服务器收到请求后给客户做出应答,然后客户再次发出请求,服务器再次给予应答……
应用进程的地址 • 在TCP/IP体系中,应用进程的地址是通过<IP地址,端口号>来确定的 。 • 一个IP地址可以标识网络中的一台主机 ,一个端口号对应于一台主机内的一个通信的应用进程 。 • <IP地址1,端口号1> -----<IP地址2,端口号2>能确定通信的两个应用进程。
端口号 • 一些常用的服务器(如Web服务、FTP服务)占用的端口号是固定的,这些端口称为熟知端口(well-known port),其值的范围一般0~1023。 • 客户进程的端口号是由操作系统随机分配的,它的值一般都大于1024。
URL • 统一资源定位符(Unified Resource Location, URL)用来表示因特网服务器上可以访问的资源 。 • URL的表示形式为:<访问方式>:// <主机>:<端口>/<路径> 。 • 例如:http://202.108.9.38 ,ftp://ftp.cdut.edu.cn/pub/
WWW和HTTP • WWW(World Wide Web)又称为万维网。 • WWW由4部分组成:HTML语言、HTTP协议、Web浏览器和Web服务器。
HTTP协议 • HTTP协议是Web浏览器和Web服务器交互时要遵循的协议,它定义了Web浏览器和Web服务器的通信规则。 • HTTP协议最初被设计用来在Web浏览器和Web服务器之间传递HTML文档,但现在还可以用来传输其他类型的文件。 • HTTP协议需要运输层协议TCP的支持 ,80端口是Web服务器的默认服务端口。
HTTP协议是一个无状态的协议 • Web服务器不去记忆哪一个客户曾经访问过它,也不去记忆特定的某个客户曾经访问过哪一个文件。 • 一个客户连续向服务器发出两个相同的请求时,Web服务器会认为这是两个单独的请求。
HTTP报文 • Web浏览器和Web服务器通过交换HTTP报文来实现HTTP协议。 • HTTP协议有2种报文:请求报文和应答报文 。 • 请求报文是浏览器发给服务器的,指明所需文档的名字和位置。 • 应答报文是服务器发给浏览器的,里面包含服务器的应答和浏览器所需的文档 。
HTTP请求报文例子 Get / HTTP/1.1 Accept: image/gif, image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel, application/vnd.ms-powerpoint, application/vnd.ms-word, */* Accept-Language:zh-ch Accept-Encoding:gzip,deflate User-Agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1) Host:www.google.cn Connection:Keep-Alive
HTTP请求报文 • 方法字段 • GET :请求获取某个文档。 • POST:向服务器提交网页上表单内的数据。 • HEAD :类似GET,但应答报文中不包含文档的具体内容 。 • PUT :用来将一个文档上传到Web服务器上 。 • DELETE:用来删除Web服务器上的文档 。
HTTP请求报文 • 首部字段 • Accept:表示浏览器所接受的文档类型 。 • Accept-Language:表示浏览器优先接受的语言类型。 • Accept-Encoding:表示浏览器能够理解的编码方式 。 • User-Agent:告诉服务器浏览器的类型 。 • Host:表示所访问的主机 。 • Connection:告诉服务器在对浏览器做了应答后,是否继续保持和浏览器的连接。
HTTP请求报文 • 实体字段 • 对于Get请求,实体字段一般为空。 • 对于Post请求,实体字段要放入客户向服务器传递的数据。 • 不同的方法字段,实体字段内容不同。
HTTP应答报文例子 • HTTP/1.1 200 OK • Connection: Close • Date: Wed ,07 Feb 2007 12:01:30 GMT • Server:Apache/1.3.0 (Unix) • Last-Modified: Sun ,03 Feb 2007 15:03:24 GMT • Content-Length:4020 • Contend-Type:text/html • (data data data data data data ……)
HTTP应答报文 • 首部字段 • Connection:服务器告诉浏览器,发送完文档后是关闭连接还是保持连接。 • Date:是服务器产生响应报文的时间。 • Server:表明服务器的类型。 • Last-Modified:文档的最后修改时间 。 • Content-Length :发送文档的字节数 。 • Contend-Type:文档的格式 。
HTTP应答报文 • 状态码 • HTTP协议使用一些特定的三位数字表明对请求的应答结果,称为状态码。 • 三位数字1XX表示服务器给浏览器发送的信息,如提示浏览器补全请求,提升协议版本号等。 • 2XX表示浏览器的请求已经成功地被服务器接受了 • 3XX表示的是重定向信息。 • 4XX表示浏览器的请求有错误,不能被执行。 • 5XX表示服务端出现了错误,不能执行浏览器的请求 。
HTTP应答报文 • 常用的状态码和短语 • 200 OK • 301 Moved Permanently • 400 Bad Request • 403 Forbidden • 404 Not Found • 500 Internal Server Error
HTTP应答报文 • 实体字段 • 当需要向客户端传输文档时,实体字段存放文档的内容。
Web代理 • 代理服务器技术有两个主要的优点: • 访问速度快 • 可以节省带宽,降低开销
Web代理 • 代理服务器的缺陷:代理服务器所缓存的网页可能不是最新的 。 • 解决方案:条件GET机制 • 服务器的相应中添加Last-Modified 字段 • 客户端的请求中添加If-modified-since 字段
Cookie • Cookie实际上Web网站用来记录用户行为的一种技术,Cookie最早由Netscape公司发明。 • HTTP协议本身是一种无状态的协议 ,Web服务器不会去记录客户的访问情况。 • 有时候网站需要了解和记录用户访问网站的过程,如购物喜好、购物记录等活动,并进行一些统计。Cookie技术便用来完成这项任务。
Cookie • 原理 • 对于第一次访问网站的用户,服务器的应答中添加Set-cookie,分配cookieId给用户 • 浏览器将用户cookieId保存在磁盘中 • 下次访问时,浏览器的请求报文中包含Cookie 字段,告诉服务器用户的cookieId • 根据cookieId,服务器识别用户,记录用户的行为
多点下载和断点续传 • 多点下载和断点续传都是利用了HTTP 1.1协议所支持的部分下载的功能。 • HTTP请求报文的Range可以指明想要下载文档的部分内容,例如Range:bytes=0-499。 • 从应答报文中的Content-Length首部获取文档大小后,可以建立若干个连接,每个连接下载一部分内容,实现多点下载。 • 可以暂停下载过程并记录下载点,下次从断点开始下载即可。
文件传输协议-FTP • 文件传输协议(File Transfer Protocol,FTP)是专门用来传输各类文件的协议。 • 21端口是FTP服务器的默认服务端口,FTP协议在运输层上使用了TCP协议。 • FTP协议是以交互式的命令方式运行的。用户输入命令,FTP客户端将命令传递给FTP服务器,FTP服务器执行命令,并将结果返回FTP客户端。
控制连接和数据连接 • FTP协议中有两个连接。 • FTP客户首先与FTP服务器的21端口建立连接,这个连接称为控制连接,专门用来传输控制信息,如用户标识、口令、用户命令等。 • 第二个连接称为数据连接,主要用来传输目录文件列表、下载的文件和上传的文件。 • 一般情况下,FTP服务器会占用两个端口,21端口用于控制连接,20端口用于数据连接。
控制连接和数据连接 • 控制连接是由客户端发起的,客户端使用一个随机端口连接到服务器的21端口。 • 数据连接通常是由FTP服务器主动发起的,由服务器的20端口连接的客户机的另一个随机端口上 。 • 控制连接一旦建立,在整个会话过程中始终存在,直到用户退出。 • 数据连接在传输数据前建立,数据传输完毕后就关闭。下一次传输数据时要重新建立新的数据连接。
主动模式和被动模式 • 数据连接通常是由服务器主动向客户机发起的,这种模式称为主动模式(相对于服务器而言)。 • 但是现在多数的防火墙软件只允许用户向外界发起连接,而不允许外界向用户发起连接。 • FTP协议提供了一种被动模式来解决这个问题 。 • 被动模式中,需要建立数据连接时,客户端首先通过控制连接发送PASV命令,告诉服务器采用被动模式。
主动模式和被动模式 • 服务器收到命令后,会随机选择一个端口号,在这个端口号上等待连接请求,并将这个端口号通过控制连接传递给客户端。 • 客户端收到后,会主动发起向服务器所选定端口的连接。由于连接是由客户端发起,所以不会被防火墙过滤掉,能够成功地建立数据连接,传递数据 。
FTP命令 • FTP命令通常是由FTP客户端发给服务器的,用来实现登录服务器、查看文件列表、上传、下载文件等功能。FTP命令都通过控制连接来传递 。 • USER: 客户端使用USER命令来向服务器表明身份 。 • PASS:PASS命令通常是紧接着USER命令,用来向服务器传递用户的口令 。
FTP命令 • LIST:列出FTP服务器当前目录下的文件和子目录。 • CWD:改变当前目录。 • CDUP:回到上一级目录。 • PWD:显示当前所在目录。 • RETR:下载文件,RETR命令的参数是要下载文件名。 • STOR:将本地硬盘的文件上传到FTP服务器上,STOR的参数是要上传的文件名。
FTP命令 • DELE:删除FTP服务器上的文件。DELE命令的参数是服务器上要删除的文件名。 • MKD:在FTP服务器上新建目录,目录名作为MKD命令的参数。 • RMD:删除FTP服务器上的目录,要删除的目录名作为RMD命令的参数。 • PORT:用来传递数据连接的端口号。 • PASV:客户端通知服务器采用被动模式。
FTP命令 • HELP;帮助。 • QUIT:退出。
FTP应答 • 对于FTP客户发出的命令,FTP服务器需要给出应答。 • 应答包括三位整数的状态码和它后面的一个文本字符串,如226 File send OK 。 • 常见的FTP应答有: • 150 File status okay; about to open data connection • 200 Command okay
FTP应答 • 220 Service ready for new user • 221 Service closing control connection. Logged out if appropriate • 226 Closing data connection. Requested file action successful (for example, file transfer or file abort). • 227 Entering Passive Mode • 230 User logged in, proceed
FTP应答 • 331 User name okay, need password • 425 Can't open data connection. • 500 Syntax error, command unrecognized
电子邮件概述 • 使用电子邮件的的第1种方式是用一些专门的邮件客户端软件来收发邮件,如Outlook、Foxmail等 ,这些软件被称为邮件用户代理(Mail User Agent)。
电子邮件概述 • 用户代理向邮件服务器发送邮件时使用的协议是简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)。 • 一个邮件服务器向另一个邮件服务器发送邮件,使用的也是SMTP协议。 • 用户代理从邮件服务器上接收邮件主要使用的是第三版的邮局协议(Post Office Protocol Version 3,POP3)协议或因特网消息访问协议(Internet Message Access Protocol,IMAP)。