计算机网络应用层_第1页
计算机网络应用层_第2页
计算机网络应用层_第3页
计算机网络应用层_第4页
计算机网络应用层_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络应用层网络应用是计算机网络存在的理由网络应用是计算机网络存在的理由20世纪80年代基于文本的几种应用 文本电子邮件 计算机远程访问 文件传输 新闻组 文本聊天20世纪90年代 万维网 流视频 网络电话视频20世纪末 即时讯息 对等文件共享学习网络应用的原理和实现方面的知识主要内容2.1 应用层协议原理2.2 域名系统DNS2.3 远程终端协议 TELNET 2.4 文件传送协议FTP2.5 万维网 WWW2.6 电子邮件2.1 2.1 应用层协议原理应用层协议原理对某种网络新应用的想法真实世界的网络应用如何转变写出能够运行在不同的端系统端系统和通过网络彼此通信的程序。研发网络应用程序

2、的核心处在因特网边缘部分的所有的主机称为端系统(end system)端系统通信实际是不同端系统上的进程通信了解几个问题?了解几个问题?什么是网络应用程序(网络应用程序的核心是什么)?什么是网络应用程序(网络应用程序的核心是什么)? 能够运行在不同的端系统和通过网络彼此通信的程序能够运行在不同的端系统和通过网络彼此通信的程序 例如:例如: Web应用程序中,一个是运行在用户主机上的浏览器程序;另一个是运应用程序中,一个是运行在用户主机上的浏览器程序;另一个是运行在服务器上的行在服务器上的Web服务器程序;服务器程序; P2P文件共享系统,在参与文件共享的每台主机中都有一个程序,每台文件共享系统

3、,在参与文件共享的每台主机中都有一个程序,每台主机的相关程序可能都是类似的或相同的。主机的相关程序可能都是类似的或相同的。网络应用程序在哪里执行?网络应用程序在哪里执行? 需要写运行在主机上的软件需要写运行在主机上的软件 不需要写在网络核心设备上的软件不需要写在网络核心设备上的软件 网络核心设备在较低层(网络层以下)不在应用层起作用网络核心设备在较低层(网络层以下)不在应用层起作用构建新的网络应用程序时,首先要做什么?构建新的网络应用程序时,首先要做什么? 决定该决定该应用程序体系结构应用程序体系结构。应用程序体系结构(应用程序体系结构(application architecture)是什么

4、?)是什么? 规定了如何在各种端系统上组织该应用程序规定了如何在各种端系统上组织该应用程序主流体系结构主流体系结构 客户客户/服务器(服务器(C/S) P2P 混合体系结构混合体系结构应用软件限制在端系统不需要写在网络核心设备上不同端系统上的进程通过跨计算机网络交换报文(message)应用层协议(应用层协议(application-layer protocolapplication-layer protocol)定义了应用程序进程如何相互传递报文应用层协议的基本内容: 交换报文的类型,如请求报文与应答报文; 语法:各种报文格式与包含的字段类型; 语义:对每个字段意义的描述; 时序:进程在何时

5、、如何发送报文,以及如何响应。应用层在应用层在TCP/IP网络参考模型中的位置网络参考模型中的位置应用层应用层传输层传输层网络接口层网络接口层网际层网际层文件传输文件传输 FTP、TFTP、NFS电子邮件电子邮件 SMTP、POP3WWW应用应用 HTTP远程登录远程登录 Telnet、rlogin网络管理网络管理 SNMP名字管理名字管理 DNS 应用层的任务不是为上应用层的任务不是为上层提供服务,而是为最层提供服务,而是为最终用户提供服务。终用户提供服务。应用层服务应该具备的特性,可从下面三个方面表征: 可靠的数据传输 EMail,IM,文件传输,远程访问,Web文档传输等 部分服务具备可

6、容忍数据丢失(Losss-tolerant applicationt),如实时音频/视频应用。带宽 部分服务属于“带宽敏感的应用” 如网络电话要求,必须至少32kbps带宽。 部分服务属于“弹性应用”,能够根据需要充分利用带宽,如E-mail,文件传输,web传输等。延时 很多服务要求数据传输有严格的时间限制,比如网络电话中较长的时延会导致不自然的停顿。 非实时的应用则对时延要求不高。应用层需要什么样的服务应用层需要什么样的服务HTTPSMTPDNSRTPTCPUDPIP网际层网络接口层运输层运输层应用层网络接口 1网络接口 2网络接口 3应用层协议与传输层协议的关系网络网络应用类型应用类型应

7、用层应用层协议协议传输传输层协议层协议E-mailSTMPTCPTELNETTELNETTCPWebHTTPTCPFTPFTPTCPDNSDNSUDP或或TCP流流媒体媒体Real NetworkUDP或或TCPVoIPNet2phoneUDP2.2 2.2 域名系统域名系统 DNSDNSIP地址地址 IP地址更适合计算机处理 IP地址包含足够的路由信息。 IP地址不适合人们记忆 无法通过IP地址猜测主机的用途 如一个主机到底是www服务器还是FTP服务器?域名(域名( Domain Name ) Internet时代的一种身份标识 层次化的主机名 使用方便,易于记忆。 一致性好,不会随IP地

8、址的改变而改变。因特网上计算机的名字因特网上计算机的名字35如何转换DNS域名系统域名系统DNS (Domain Name System) 提供主机名到提供主机名到IP地址转换的地址转换的服务服务 有分层的有分层的DNS服务器实现的服务器实现的分布式数据库分布式数据库 一个允许主机查询分布式数一个允许主机查询分布式数据库的据库的应用层协议应用层协议(运行在UDP之上,使用53端口) 它是互联网所有应用层协议它是互联网所有应用层协议的基础的基础1.因特网的域名结构域名空间分为若干层次:根域(顶级域)和次级域(1) 国家顶级域名:如: .cn 表示中国,.us 表示美国,.

9、uk 表示英国,等等。(2) 通用顶级域名: .com (公司和企业) .net (网络服务机构) .int (国际组织) .org (非赢利性组织) .edu (美国专用的教育机构) .gov (美国专用的政府部门) .mil (美国专用的军事部门) 域名命名方法采用了层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。域名的结构由标号序列组成,各标号之间用点隔开: . 三级域名三级域名 . 二级域名二级域名 . 顶级域名顶级域名各标号分别代表不同级别的域名。域名中的点分和十进制点分IP 地址并无一一对应的关系 例:192 .168 .10 .

10、1 每个标签不能超过63个字符; 全部的标签不能超过255个字符; 书写顺序是从主机开始直到域名树的根域为止。2.域名服务器 域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。假设DNS一种简单的设计方式 因特网上只有一个DNS服务器 该服务器包含所有的映射 客户机的查询直接发往单一的DNS服务器 该服务器对所有查询做出响应问题 单点故障 通信容量 远距离的集中式数据库 维护如何解决?DNS采用分布式、层次数据库。没有一台没有一台DNS服务器具有因特网上所有主机的映射;服务器具有因特网上所有主机的映射;该映射分布在所有的该映射分布在所有的DNS服

11、务器上。服务器上。有以下四种类型根域名服务器根域名服务器 13个根域名服务器(AM),每台都是服务器群集 顶级域名服务器顶级域名服务器 (Top level domain,TLD) 负责顶级域名和所有国家的顶级域名权限域名服务器权限域名服务器 负责一个区的域名服务器本地域名服务器本地域名服务器 每一个因特网服务提供者 ISP,或一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器。 起到代理的作用树状结构的 DNS 域名服务器 根域名服务器org 域名服务器com 域名服务器edu 域名服务器服务器权限域名服务器根域名服务器顶级域名服务器域名服务器服务器服务器3.DNS的实现工作机理某个

12、用户要浏览石家庄经济学院的主页,用户主机(假定为A)必须获得主机的IP地址。解析过程:解析过程:A向本地域名服务器DNS1查询请求;如果DNS1上有sjzue的记录,就立即将sjzue的IP地址返回给A;如果DNS1上没有sjzue的记录,DNS1就会向根域名服务器发出查询请求;根域名服务器把负责cn域的域名服务器B的IP地址告诉给DNS1;DNS1向B查询,获得负责域DNS服务器C的地址;DNS1向C查询,获得负责域DNS服务器D的地址;DNS1向D查询,即可获得的IP地址。域名解析的例子域名解析的例子顶级域名服务器权限域名服务本地域名服务器DNS1根域名服务器递归查询DNS1上有sjzue

13、的记录,就立即将sjzue的IP地址返回给A用户主机A 查询需要查找 的 IP 地址顶级域名服务器B权限域名服务器C 本地域名服务器DNS1根域名服务器迭代查询用户主机A 查询需要查找 的 IP 地址DNS1上没有sjzue的记录,DNS1就会向根域名服务器发出查询请求; 根域名服务器把负责cn域的域名服务器B的IP地址告诉给DNS1DNS1向B查询,获得负责域DNS服务器C的地址DNS1向C查询,获得负责域DNS服务器D的地址;9结果10权限域名服务器D DNS1向D查询,即可获得的IP地址 主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 I

14、P 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。本地域名服务器向其他域名服务器采用递归查询(比较少用) 顶级域名服务器权限域名服务本地域名服务器 根域名服务器递归查询递归查询 的 IP 地址 需要查找 的 IP 地址名字的高速缓存 每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。 可大大减轻根域名服务器的负荷,使因特网上的 DNS 查询请求和回答报文的数量大为减少。 为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。 当权限域名服务器回答一个查询请

15、求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名转换的准确性。 牛刀小试修改windows系统文件夹下的hosts文件,改变域名和IP地址映射关系C:WidowsSystem32DrversEtchost为了提高对经常访问的网络域名的解析效率,可以通过利用Hosts文件文件中建立域名和IP的映射关系来达到目的.根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件文件中是否有这个网络域名映射关系.如果有则,调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析.也就是说Hosts的请求级别比DN

16、S高.在命令行下用在命令行下用nslookup命令进行命令进行DNS查询查询查询IP地址 nslookup 域名解释过程的模拟现在来模拟一下一台DNS服务器接到一个不是自己管理的域的域名解释过程。首先我们会询问根服务器,然后根服务器会让我们去找对应的顶级服务器。如果查询的是,就会要求我们去找net的服务器。如果查询的是,就会要求我们去找cn的服务器。 nslookup a.root- 当没有名称服务器 IP 地址的 PTR 记录时,会出现此错误。 出现此提示表明该域名的解析是从local DNS 的 cache 中直接读出来的,而不是local DNS 向真正负责这个 域名 的 name se

17、rver 问来的。2.3 2.3 按远程终端协议按远程终端协议 TELNETTELNET什么是Telnet? Telnet是Telecommunication Network Protocol的英文缩写,是一个简单的远程终端协议用户用 TELNET在本地发出命令,通过 TCP 连接使用主机名或 IP 地址,进入到远地的另一台机器的系统,这个过程即称为远程登录。 协议需要通过用户名和口令进行认证,是Internet远程登陆服务的标准协议,使用23号端口。用户使用Telnet命令,使自己的计算机暂时成为远程计算机的一个仿仿真终端真终端。用户通过本地计算机登录到其他计算机上,本地计算机与那台机器本身

18、的终端享有同样的待遇,在它的权限范围内在它的权限范围内操作那台计算机。注意:远程登录中的“远”字并非指距离,而是指不是从本地登录到这台计算机。Telnet Server Username:Password: InternetTelnet中国石家庄经济学院美国加州大学U N I V E R S I T YU N I V E R S I T Y1.Telnet是如何工作的是如何工作的Telnet采用了Client/Server工作方式,并使用TCP传输协议进行通信(有连接过程)。NVT网络虚拟终端,是一种统一的数据表示方式,数据格式Telnet远程登录服务分为以下4个过程: 1)本地与远程主机建立

19、连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名; 2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包; 3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果; 4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。 2.如何使用如何使用Telnet 启动启动telnet客户端程序客户端程序telnet remote-system port-number其中其中 tel

20、net: 命令名命令名。注意也有别的名称,如注意也有别的名称,如NVT220NVT220等。等。 remote-system:目标:目标主机名主机名( (域名域名) )或或目标主机的目标主机的IPIP地址地址。 port-number: 端口号端口号。它它用于标识用于标识服务器上的服务器上的telnettelnet服务服务 程序进程程序进程。telnettelnet的的默认端口号是默认端口号是2323。 telnet的的内部命令内部命令行提示符为行提示符为: telnettelnetStep1.Step1.启动客户程序启动客户程序启动时直接指明要连接的目标主机 $telnet 指明目标主机名

21、$telnet 6 指明目标主机IP地址启动时不指明目标主机 $telnet 这时将进入telnet内部命令状态telnet 内部命令提示符 在内部命令状态下键入open命令连接远程主机 telnetopen telnetopen 6Step2.Step2.连接时远程主机将要求用户输入连接时远程主机将要求用户输入用户名用户名和和口令口令 login: password:如果通过了用户认证,用户就可以像在远程主机的终端上一样操作远程主机了。Step3.Step3.在远程主机(服务器)提示符下,用户可以在本地计算在远程主机(服务器)提示符下,用户可以在本

22、地计算 机上输入远程系统命令机上输入远程系统命令 如email、lynx、pico、ls、pwd等。Step4.Step4.断开与远程主机的连接断开与远程主机的连接在远程系统提示符下键入命令:exit,logout或Ctrl-DTelnet服务的远程主机安全问题 Telnet是一种有安全权限限制的服务,在登录时要求输入合法的用户名和密码。 Telnet将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有安全隐患,因此除了一些提供公共资源对外公开的Telnet服务器外,大部分服务器都禁用Telnet服务。2.4 FTP2.4 FTP协议协议 ( (File Transfer Protoc

23、ol)File Transfer Protocol)文件传输协议/File Transfer Protocol就是在异构网络中不同计算机之间提供文件传输服务,是Internet上使用最广泛的文件传送协议。RFC765/959特点提供交互式访问;允许客户选择文件传输类型与格式;允许对文件设置存取权限。在Internet发展早期,FTP传输文件约占 三分之一的通信量;1995年WWW通信量才首次超过FTP。文件传输FTP服务器服务器FTP用户接口用户接口FTP客户机客户机本地文件系统主机上的用户远程文件系统 用于在计算机之间传送文件把文件从本地主机传送到远程主机称为“上载上载” Upload,Pu

24、t把文件从远程主机传送到本地主机称为“下载下载” Download,Get 客户机/服务器模型客户机: 发起传输一侧(到/来自远程之一)服务器: 远程主机FTP协议工作模型协议工作模型FTP使用了两个并行的TCP连接 控制连接 传输控制信息,如用户标识、口令、改变远程目录的命令、发往put和get文件的命令; FTP客户端发起控制连接 数据连接 准确的传输一个文件; 每传输一个文件都要建立一个数据连接; 由FTP服务器发起数据连接。FTP: 独立的控制和数据连接控制连接在整个会话期间一直保持打开客户机通过控制连接获得授权客户机经控制连接通过发送命令浏览远程目录当服务器接收到一个文件传输命令时,

25、该服务器打开到客户机的一个数据连接在传输一个文件后,服务器关闭数据连接FTP客户机FTP服务器TCP 控制连接TCP 数据连接在同一个会话期间,需要传输另一个文件,服务器再打开第二个数据连接,以传输另一个文件FTP 服务器维护用户“状态”信息,可以对会话总数进行限制 当客户进程建立连接请求时,寻找连接服务器进程的熟知端口(21),同时告诉服务器进程自己的另一个端口号码。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。数据连接与控制连接不会发生混乱。在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。 两个不同的端口号 TCP数据传送数据传送

26、控制控制FTP客户端客户端TCP数据传送数据传送控制控制FTP服务器端服务器端X21因特网因特网20Y由客户端发起由服务器端发起用户界面服务器如何识别是控制连接还是数据连接? ftp Client ftp Server TCP:21 控制连接初始化, 控制端口 SYNPort xxxx - Port 21 SYN, ACKPort xxxx Port 21控制操作: 用户列目录或传输文件 Port, IP, Port yyyy Port xxxx - Port 21 Port Successful Port xxxx Port 21TCP:20 数据连接初始化, 数据端口 SYNPort yy

27、yy Port 20 ACKPort yyyy - Port 20数据操作: 数据传输 DataPort yyyy Port 20 文件传输文件传输: 数据连接建立后,发送数据的一方使用这个连接把文数据连接建立后,发送数据的一方使用这个连接把文件传送给对方。件传送给对方。建立控制连接:建立控制连接:1.客户机首先发出一个客户机首先发出一个SYN消息消息2.服务器使用服务器使用SYN-ACK应答表示接收到了这个消息应答表示接收到了这个消息3.最后客户机再以最后客户机再以ACK消息响应消息响应控制操作:控制操作:当用户发出一个请求时,客户端软件通过控制连接向当用户发出一个请求时,客户端软件通过控制

28、连接向服务器发出一个服务器发出一个PORT命令,在命令,在PORT命令中指定一命令中指定一个临时端口,目的是希望服务器在建立数据连接时使个临时端口,目的是希望服务器在建立数据连接时使用这个临时端口用这个临时端口建立数据连接:建立数据连接:1.服务器端发送一个服务器端发送一个SYN包给客户端,源端口为包给客户端,源端口为20,目,目的端口为客户端在的端口为客户端在PORT命令中指定的临时端口;命令中指定的临时端口;2.客户端发送一个客户端发送一个SYN ACK包,源端口为临时端口,目包,源端口为临时端口,目的端口为的端口为20 ;3.服务器端发送一个服务器端发送一个ACK包。包。FTPFTP使用

29、举例使用举例下例左边编号下例左边编号0115 是后加的。是后加的。01 ftp 02 Connected to .03 220 FTP server (Version wu-2.5.0(1) Tue Jul 13 10:20:43 CDT.04 Name (:teng): anonymous05 331 Guest login ok, send your complete e-mail address as password.06 Password: 07 230 Guest login ok, access restrictions apply.08 ftpcd /pub/rfc09 250

30、 CWD command successful.10 ftpget rfc959.txt ftpinfo11 200 PORT command successful.12 150 Opening ASCII mode data connection for rfc959.txt (147316 bytes).13 226 Transfer complete. local: ftpinfo remote: rfc959.txt 151249 bytes received in 2.1 seconds (71.27 Kbytes/s)14 ftpquit15 221-You have transf

31、erred 151249 bytes in 1 files. 221-Total traffic for this session was 152964 bytes in 1 transfers. 221-Thank you for using the FTP service on . 221 Goodbye.01输入FTP命令启动连接02 本地FTP客户程序显示的连接成功的信息03 “220”表示“服务就绪”04 本地FTP提示用户输入用户名05 服务器提示“用户名正确”,需要口令06本地FTP提示用户输入口令07 “230”表示用户注册成功08用户可以输入相应的命令09表示改变目录命令已经

32、成功10 用户要求获得名为“rfc959.txt”的文件,并改名为“ftpinfo”11 服务器提示“PORT”表示要建立数据连接。“200”表示命令正确12 “150”表示“文件状态正确,正在建立数据连接,并进行文件传输”。13 “226”表示“数据传输完毕,释放数据连接”。14 用户输入退出命令。15 远地服务器表示FTP工作结束。FTP工作模型构建实例搭建FTPFTP工作模型实例网络实验之一基本环境:两台PCPC,都安装WindowsWindows操作系统;TCP/IPTCP/IP设置正确;高级设置:一台PCPC安装FTP ServerFTP Server软件(推荐:ServUServU

33、)以搭建成FTPFTP服务器,并进行正确的设置。另外一台PCPC安装FTP ClientFTP Client软件(比如:CuteFTPCuteFTP),或者也可使用WindowsWindows操作系统内置的Microsoft FTP Microsoft FTP 客户端或Internet Explorer Internet Explorer FTPFTP实用操作:利用FTPFTP客户端访问(登录、列目录、上传/下载文件、退出)图形界面下的图形界面下的FTP客户程序客户程序 图形界面下的FTP程序简化了操作,只要用鼠标点击即可,但执行流程与上述介绍类似。Windows环境下的FTP传输软件包括:C

34、uteFTP、LeapFTP、LeechFTP、 不论在什么界面下进行FTP操作,以下要素都是必须的: 主机地址:IP地址或主机名(域名) 登录方式:实名或匿名 用户标识:用户名或anonymous 用户口令:xxxxxx 或 abcxxx.yyy.zzz 本地工作目录 远程工作目录图形界面下的图形界面下的FTP(cuteftp)测试:连接FTP站点 User :anonymous Ls显示远程目录 Cd进入远程主机目录 Put上传 Get下载2.5 Web2.5 Web服务与服务与HTTPHTTP协议协议.1万维网简介万维网简介万维网站点 A万维网站点 C万维网站点 E万维网

35、站点 D万维网站点 B链接到链接到链接到链接到链接到链接到www(world wide web),又称为万维网,简称为web,是internet技术发展中的一个重要里程碑。万维网是一个大规模的、联机式的信息储藏所。万维网用链接链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。Web中常用术语中常用术语Web页(也叫文档)是由对象组成的。对象就是文件,如html文件,jpeg文件,gif文件等等。Web页含有一个基本的HTML文件以及几个引用对象。HTML文件是用超文本标记语言编写的文档。超文本包含了到其他文档或同一文档不同部分的链接(Link)或超级链接(

36、Hyperlink)Web客户机即浏览器是用来解释Web页面并完成相应转换和显示的程序(Browser)。Web服务器用来存储Web对象主页(Home)是进入一个网站首先看到的页面,是一个网站的脸面。HTTP协议定义了web客户机是如何向web服务器请求web页以及服务如何将web页传送给客户机的。怎样标志分布在整个因特网上的万维网文档及引用的对象?怎样标志分布在整个因特网上的万维网文档及引用的对象? 使用统一资源定位符 URL (Uniform Resource Locator)来标志。使每一个文档及对象在整个因特网的范围内具有唯一的标识符 URL。URL的格式: http:/www.som

37、:80/someDept/pic.gif主机名路径名:/:/ ftp 文件传送协议 FTPhttp 超文本传送协议 HTTPNews USENET 新闻 是存放资源的主机在因特网中的域名有时可省略若省略文件的项,则 URL 就指到因特网上的某个主页(home page)。万维网的工作过程万维网的工作过程 (1) 浏览器分析超链指向页面的 URL。(2) 浏览器向 DNS 请求解析 的 IP 地址。(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。(4) 浏览器与服务器建立 TCP 连接(5) 浏览器发出取文件命令: GET /chn/yxsz/index.ht

38、m。(6) 服务器给出响应,把文件 index.htm 发给浏览器。(7) TCP 连接释放。(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。因特网服务器链接到URL的超链HTTP 使用此 TCP 连接浏览器 程序服务器 程序HTTP客户清华大学院系设置建立 TCP 连接释放 TCP 连接HTTP 响应报文 响应文档HTTP 请求报文 请求文档2.5.2 HTTP2.5.2 HTTP协议协议用户点击鼠标后所发生的事件用户点击鼠标后所发生的事件 HTTP: 超文本传送协议Web的应用层协议客户机/服务器模式客户机客户机: 浏览器请求、接收,显示Web对象服务器服务器

39、: Web服务器响应请求而发送对象HTTP 1.0: RFC 1945HTTP 1.1: RFC 2068PC 运行Explorer服务器运行Apache Web服务器Mac 运行NavigatorHTTP 请求HTTP 请求HTTP 响应HTTP 响应使用TCP:客户机向服务器发起TCP连接(产生套接字) ,端口80服务器从客户机接受TCP连接在浏览器(HTTP客户机)和Web服务器(HTPP服务器)之间交换HTTP报文 (应用层协议报文) 关闭TCP 连接HTTP是”无状态的“ 服务器不保留有关客户机过去请求的任何信息往返时延RRT的定义: 从客户机到服务器发送一个小分组并返回所历经的时间

40、.响应时间:一个RTT发起TCP连接对HTTP请求和返回的HTTP响应前几个字节的一个RTT文件传输时间总计 = 2RTT+传输时间HTTP 响应报文请求一个万维网文档所需的时间 非持久 HTTP 至多一个对象经过一个TCP连接发送。在非持续连接中,对每次请求/响应都要建立一次TCP连接。 HTTP/1.0使用非持久 HTTP持久HTTP 多个对象能够经过客户机和服务器之间的单个TCP连接发送. HTTP/1.1以默认模式使用持久连接HTTP连接连接非持久HTTP假定使用输入URL www.someS/someDepartment/home.index1a. HTTP客户机向

41、HTTP服务器(进程)的80端口的www.someS发起TCP连接2. HTTP客户机发送 HTTP 请求报文 (包含URL)进TCP 连接套接字. 报文指示客户机要对象someDepartment/home.index1b. 在主机www.someS 的HTTP服务器在80端口等待TCP连接“接受”连接,通知客户机3. HTTP服务器接收请求报文,形成响应报文包含请求对象,并向套接字其发送报文time(一个网页包括一个基本一个网页包括一个基本html和和10个个jpeg图片,即图片,即11个对象个对象)5. HTTP客户机接收包含html文件的响应报文,显

42、示html. 解析html文件,发现10个引用的 jpeg对象6. 对10个jpeg对象重复步骤1-54. HTTP服务器关闭TCP 连接非持久非持久HTTP问题问题:l每个对象要求每个对象要求2 RTTl操作系统必须为每个操作系统必须为每个TCP连接工作并分配逐级资源连接工作并分配逐级资源l但浏览器经常打开并行但浏览器经常打开并行TCP连接以获取引用的对象连接以获取引用的对象. 每个连接处理一个请求每个连接处理一个请求-响响应事务。应事务。持久HTTP持久HTTP在发送响应后,服务器让连接打开在相同的客户机/服务器之间的后继HTTP报文通过该连接发送持续连接的工作方式持续连接的工作方式无流水

43、线的持续:仅当前面的响应已经收到,客户机发出新的请求对每个引用对象一个RTT有流水线的持续:在HTTP/1.1 为默认只要客户机遇到一个引用对象,它就发送请求对于所有引用的对象花费一个RTT时间计算示例请求一个请求一个HTTP文件所需时间测算示例文件所需时间测算示例 RTT的平均值为的平均值为1200ms; 传输一个传输一个gif文件时间平均为文件时间平均为2500ms; 如果一个网页中有如果一个网页中有105个个gif文件;文件; 估算出采取无流水线串行方法读取估算出采取无流水线串行方法读取gif文文件,与以流水线方式每次连接传输件,与以流水线方式每次连接传输10个个gif文件所用的时间文件

44、所用的时间。59发起tcp连接请求html文件请求gif文件接收gif文件1200ms1200ms1200ms2500ms请求gif文件接收gif文件1200ms2500ms采取无流水线串行方法读取采取无流水线串行方法读取gif文件所文件所需时间需时间T1=21200+(1200+2500)105 =2400+388500 =390900(ms) =390.9(s)采取每个连接传输采取每个连接传输10个个gif文件所需时间文件所需时间T2=21200+21200+(250010)10+21200+(25005)1 =2400+252400+7740 =262540(ms)262.5(s)比较比

45、较T1与与T2之后可以发现,采用每个之后可以发现,采用每个TCP连接传输连接传输10个个gif文件所需时间比每个连接文件所需时间比每个连接传输一个传输一个gif文件所需时间缩短约文件所需时间缩短约33%。61发起tcp连接请求html文件1200ms1200ms发起tcp连接请求gif文件1200ms1200ms接收gif文件1接收gif文件2接收gif文件32500ms2500ms2.5.3 HTTP报文格式(请求报文和应答报文)报文格式(请求报文和应答报文)请求报文的结构请求报文的结构62GET /somedir/page.html HTTP/1.1Host: www.someschool

46、.edu User-agent: Mozilla/4.0Connection: close Accept-language:fr (另外的回车,换行) 请求行(GET, POST, HEAD命令)首部行回车,换行指示报文的结束Host: 定义了目标所在的主机Connection : 告诉服务器不希望使用持久连接,要求服务器发送完被请求对象后就关闭连接User-agent :向服务器发送请求的浏览器的类型Accept-language :用户希望得到该对象的语言版本请求报文的方法类型HTTP/1.0 GET POST 常在用户提交表单时使用 HEAD 请求服务器许可响应但不返回请求的对象 常用来

47、进行故障跟踪HTTP/1.1 GET, POST, HEAD PUT 允许用户把对象上传到指定web服务器的指定路径下。 DELETE 允许删除web服务器在URL字段中定义的文件HTTP应答报文结构65HTTP 应答报文HTTP/1.1 200 OK Connection: closeDate: Thu, 06 Aug 2010 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2010 . Content-Length: 6821 Content-Type: text/html data data dat

48、a data data . 状态行(协议状态码状态短语)首部行数据,如请求的HTML文件Connection : 告诉客户机在报文发送完后关闭了TCP连接Date : 服务器产生并发送响应报文的日期时间Server : Web服务器类型Last-Modified : 对象创建或者最后修改的日期和时间Content-Length : 被发送对象的字节数Content-Type : 实体中的对象是HTML文本使用GET方法读取图像67使用HEAD方法读取HTML文档信息68使用POST方法向服务器发送数据69你自行试验HTTP (客户机侧)1. Telnet 到你喜欢的Web服务器上:打开到位于c

49、的端口80(默认的HTTP服务器端口).键入的任何东西将发送到位于的80端口telnet Open 802. 键入一个GET HTTP请求:GET /index.html HTTP/1.1Host: 通过键入这些(按回车两次),你向HTTP服务器发送最小(但完整)的GET请求3. 观察由HTTP服务器发送的响应报文! Web的极度流行引发的问题? 服务器、路由器和线路经常超载运行。WWW开始被称作World Wide Wait校园网源点服务器2 Mb/s因特网浏览器R1R2这条链路上的时延很大所有万维网通信量都经过这条链路如何解决?如何解决?2.5

50、.4 缓存缓存代理代理 研究开发出了各种技术来提高性能,其中一种技术是 缓存(caching) 一种简单的提高性能的方法 将已经被请求过的页面保存起来以防它们被再次请求 对于那些被大量访问的页面特别有效 这种将页面储存起来以备后续使用的作法,被称为缓存(caching) 作用: 减小客户机请求的响应时间 减小机构访问链路的流量 实现: 通常由某个进程来维护缓存的内容,这个进程被称为代理(proxy) 代理通常是一台机器,成为代理服务器用户设置浏览器:经过缓存访问浏览器向缓存发送所有HTTP请求 对象在缓存中:缓存返回对象 否则缓存向起始服务器请求对象,然后向客户机返回对象目标: 满足客户机请求

51、而不涉及起始服务器客户机代理服务器客户机HTTP 请求HTTP 请求HTTP 响应HTTP 响应HTTP 请求HTTP 响应起始服务器起始服务器 代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(1) 浏览器访问因特网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文 使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(2) 若高速缓存已经存放了所

52、请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(3) 否则,高速缓存就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(4) 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(5) 高速缓存收到此对象后,先复制在其本地存储

53、器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。问题:问题:1.应该由谁来实施缓存?应该由谁来实施缓存?2.页面应该被缓存多久?存放在缓存器中的对象拷贝页面应该被缓存多久?存放在缓存器中的对象拷贝可能是陈旧的,服务器中的对象可能可能已经被修改可能是陈旧的,服务器中的对象可能可能已经被修改了了?1.应该由谁来实施缓存?应该由谁来实施缓存? 个人PC本地代理 IE-工具-internet选项-常规-浏览历史记录-设置 在一个公司的LAN上,有一台机器作为代理,LAN上所有的机器共享同一个代理。 IE-工具-internet选项-连

54、接-局域网设置-代理服务器 许多ISP也运行代理。 分级缓存(多级顺序代理方案) 客户请求本地代理LAN代理ISP代理2.页面应该被缓存多久?页面应该被缓存多久? 页面的可缓存性可能会随着时间的变化而有所不同。包含动态内容的页面一般不应该被缓存。 决定何时将一个页面从缓存中移除的关键在于,用户愿意忍受的页面过时程度(所消耗的存储空间一般不是问题) 解决的方法:基于Last-Modified和和If-modified-since首首部字段部字段条件条件GET方法方法HTTP协议的一种机制,允许缓存器证实它的对象是最新的目的:如果缓存中有最新缓存版本,就不发送该对象缓存器: 在HTTP请求If-m

55、odified-since: 中,中,指定缓存版本版本的日期的日期服务器: 如果缓存的拷贝是最新的,响应不包含对象: HTTP/1.0 304 Not Modified缓存器服务器HTTP 请求报文If-modified-since: HTTP 响应HTTP/1.0 304 Not Modified不修改对象HTTP 请求报文If-modified-since: HTTP响应HTTP/1.0 200 OK修改对象1.代理缓存器代表一个浏览器向Web服务器发送一个请求报文。Get /fruit/kiwi.gif HTTP/1.1Host: 2.该Web服务器向该缓存器发送具有被请求的对象的响应报

56、文。HTTP/1.1 200 OK Date: Mon, 07 Aug 2010 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2010 09:00:15 GMT Content-Type: image/html data data data data data . 该对象转发到浏览器同时也保存在了缓存其中,缓存器记录也记录该对象的最后修改时间。一个星期后,另一个用户经该缓存器请求同一个对象,该缓存器发送一个条件Get,执行更新检查。3.缓存器发送Get /fruit/kiwi.gif HTTP/1.1H

57、ost: If-modified-since: Mon, 22 Jun 2010 09:00:15 GMT 4.如果对象没有修改过,Web服务器发送响应报文HTTP/1.1 304 Not Modified Date: Mon, 27 Aug 2010 12:00:15 GMT Server: Apache/1.3.0 (Unix) 自行验证条件自行验证条件Get方法方法 学习wireshark的安装和使用 抓取Http协议数据包 分析请求报文If-modified-since和响应报文首部2.5.5 用户服务器状态:用户服务器状态:cookiesWeb站点希望能够识别用户,目的:1.服务器想

58、限制用户的访问;2.想把内容与用户身份关联起来;HTTP使用cookies来达到目的Cookies技术的四个部分:1)在HTTP响应报文中的cookie 首部行2)在HTTP请求报文中的cookie 首部行3)保持在用户主机中的 cookie 文件并由用户浏览器管理4)位于Web站点的后端数据库例子: Susan总是从相同的PC访问因特网 她首次访问一个使用cookie的电子商务站点 当起始HTTP请求到达服务器时,服务器产生一个唯一识别码,并以此为索引在后端数据库中生成一个表项。 服务器发回一个包含set-cookie首部行的响应报文 Susan的浏览器收到后,在其管理的特定cookie文件

59、中添加一行,包含该服务器的主机名和识别码。 当Susan继续浏览这个网站时,每请求一个页面,浏览器从本地cookie文件中获取识别码,放到请求报文的首部中。 站点可以跟踪Susan在该站点的活动:访问了那些页面,按照什么顺序,在什么时间。客户机服务器普通HTTP请求报文普通HTTP响应+Set-cookie: 1678 普通HTTP请求报文cookie: 1678普通HTTP响应报文普通HTTP请求报文cookie: 1678普通HTTP响应报文特定cookie动作特定cookie动作服务器为用户生成唯一识别码ID 1678后端数据库中的表项访问访问Cookie fileamazon: 1678ebay: 8734Cookie fileebay: 8734Cookie fileamazon: 1678ebay: 8734一个星期以后:由浏览器管理的特定cookie文件Cookiescookies 能够做: 鉴别 购物车 推荐 用户会话状态(Web电子邮件)Cookies和隐私 : Cookies使得站点了解你许多东西 你可能向站点提供名字和电子邮件 搜索引擎使用重定向和 cookies来知道更多 跨越站点获得信息,以向公司作广告自行验证用户和服务器的交互:自行验证用户和服务器的交互:cookie 使用wireshark抓取Http协议数据包 分析响应报文Set-coo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论