




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第2章章 应用层应用层 网络应用是计算机网络的重要功能之一。网络应用是计算机网络的重要功能之一。20世纪世纪80年代:年代:基于文本的电子邮件、文件传输、基于文本的电子邮件、文件传输、文本聊天等等。文本聊天等等。20世纪世纪90年代:年代:Web应用、应用、IP电话、视频会议等。电话、视频会议等。20世纪末:世纪末:即时讯息、即时讯息、 P2P对等文件共享。对等文件共享。2学习目标和主要内容学习目标学习目标 网络应用的原理和实现方面的知识。网络应用的原理和实现方面的知识。主要内容主要内容应用层概念:应用层概念:应用层协议、客户机与服务器、进程、应用层协议、客户机与服务器、进程、套接字和运输
2、层接口。套接字和运输层接口。应用程序:应用程序:Web、电子邮件、域名系统、电子邮件、域名系统DNS及及P2P对等对等文件共享。文件共享。开发网络应用程序的方法:开发网络应用程序的方法:套接字套接字API编程。编程。3本章内容2.1 应用层协议原理应用层协议原理2.2 Web和和HTTP2.3 FTP 2.4 电子邮件电子邮件2.5 DNS2.6 P2P 文件共享文件共享2.7 TCP的套接字的套接字 编程编程2.8 UDP的套接字的套接字 编程编程2.9 构建一个构建一个 Web 服务器服务器2.10 小结小结4流行的网络应用程序流行的网络应用程序rE-mailrWebr即时讯息即时讯息r远
3、程注册远程注册rP2P文件共享文件共享r多用户网络游戏多用户网络游戏r流式存储视频片段流式存储视频片段r因特网电话因特网电话r实时视频会议实时视频会议r大规模并行计算大规模并行计算编制应用程编制应用程序序5网络应用程序的研发要点网络应用程序的研发要点r写出能够分别写出能够分别在不同端系统运行(跨平台)在不同端系统运行(跨平台),并通过网,并通过网络络相互通信相互通信的程序。的程序。 如如Web应用程序,由两个可以相互通信的程序组成应用程序,由两个可以相互通信的程序组成浏览器程序:浏览器程序:运行在用户主机上;运行在用户主机上;Web服务器程序:服务器程序:运行在运行在Web服务器主机上。服务器
4、主机上。r应用程序软件只在端系统运行,不需在网络核心设备上应用程序软件只在端系统运行,不需在网络核心设备上运行。运行。m网络核心设备无应用层,只有较低层。网络核心设备无应用层,只有较低层。 如图如图2-1。6本节内容2.1.1 网络应用程序体系结构网络应用程序体系结构2.1.2 进程通信进程通信 2.1.3 应用层协议应用层协议 2.1.4 应用所需要的服务应用所需要的服务2.1.5 因特网运输协议提供的服务因特网运输协议提供的服务2.1.6 本书介绍的网络应用本书介绍的网络应用Web、文件传输、电子邮件、目录服文件传输、电子邮件、目录服务、对等文件共享等五个。务、对等文件共享等五个。72.1
5、.1 网络应用程序体系结构网络应用程序体系结构r应用程序体系结构:应用程序体系结构:规定如何在各种端系统上组规定如何在各种端系统上组织应用程序,由研发者设计织应用程序,由研发者设计 。r 三种类型:三种类型: 客户机客户机/ /服务器服务器 对等对等 (P2P) 客户机客户机/服务器与服务器与P2P的混合的混合81、客户机、客户机/服务器体系结构服务器体系结构服务器服务器: m总是打开总是打开m为为多个客户机多个客户机请求提供服务请求提供服务m永久的永久的IPIP地址地址m可扩展为服务器场(主机群集)可扩展为服务器场(主机群集) 客户机:客户机:m总是打开或间歇打开总是打开或间歇打开m向服务器
6、发出请求向服务器发出请求m具有动态的具有动态的IPIP地址地址m彼此之间彼此之间不直接通信不直接通信 如如Web应用程序:总是打开的应用程序:总是打开的Web服务器为运行在客户机主机上服务器为运行在客户机主机上的浏览器的请求提供服务(接收客户机请求,并发送响应结果)。的浏览器的请求提供服务(接收客户机请求,并发送响应结果)。 服务器响应服务器响应 客户请求客户请求92、纯、纯P2P体系结构体系结构(peer-to-peer) m无(最少)打开无(最少)打开的服务器的服务器m任意端系统任意端系统(对等方)(对等方)可以可以直接通信直接通信m对等方对等方间歇地连接间歇地连接,IPIP地址地址不固定
7、不固定m例:文件分发、因特网电话例:文件分发、因特网电话等。等。可扩展度高、开放,难以管理可扩展度高、开放,难以管理成本低成本低安全问题安全问题103、客户机、客户机/服务器与服务器与P2P的混合的混合rNapster:MP3文件共享应用程序。文件共享应用程序。 mP2P:对等方直接交换对等方直接交换MP3文件文件m服务器注册服务器注册/定位:定位: 对等方在中心服务器上对等方在中心服务器上注册内容注册内容 对等方查询相同的中心服务器以对等方查询相同的中心服务器以定位内容定位内容r即时讯息:即时讯息:mP2P:两个用户直接聊天:两个用户直接聊天m服务器检测服务器检测/定位:定位: 用户在线时,
8、向中心服务器用户在线时,向中心服务器注册其注册其IP地址地址 用户联系中心服务器以用户联系中心服务器以找到聊天伙伴的找到聊天伙伴的IP地址地址112.1.2 进程通信进程通信r进程进程 (process)(process):在主机上运行的程序。在主机上运行的程序。r进程通信:进程通信:同一主机中两个进程间的通信:同一主机中两个进程间的通信:由由操作系统操作系统控制;控制;不同主机中进程间的通信:不同主机中进程间的通信:通过网络交换通过网络交换报文报文进行。进行。 发送进程:发送进程:产生报文并向网络发送;产生报文并向网络发送; 接收进程:接收进程:接收报文,并接收报文,并可能可能回送报文。回送
9、报文。如图如图2-1。121、客户机和服务器进程、客户机和服务器进程r网络应用程序由网络应用程序由成对的进程组成成对的进程组成,并通过网络相互发,并通过网络相互发送报文。送报文。如图如图2-1 r根据功能分别标示为客户机和服务器(根据功能分别标示为客户机和服务器(C/S、P2P)客户机进程:客户机进程:发起通信的进程。发起通信的进程。 服务器进程:服务器进程:等待其他进程联系的进程。等待其他进程联系的进程。 如如Web应用程序中,一个客户机浏览器进程向某应用程序中,一个客户机浏览器进程向某个个Web服务器进程发起联系,交换报文。服务器进程发起联系,交换报文。13说明:说明: P2P结构的应用程
10、序也可分别看成是客户机进程结构的应用程序也可分别看成是客户机进程或服务器进程。或服务器进程。 如,对等方如,对等方A(客户机客户机)请求对等方)请求对等方B(服务器服务器)发送某个文件。发送某个文件。142、套接字、套接字(socket)套接字:套接字:同一台主机内同一台主机内应用层与运输层应用层与运输层之间的接口。之间的接口。 也叫应用程序和网络之间的也叫应用程序和网络之间的应用程序应用程序接口接口API , ,是在是在网络上建立网络应用程序的网络上建立网络应用程序的可编程接口可编程接口。进程具有缓存、变量的TCP套接字套接字主机或服务器进程具有缓存、变量的TCP套接字套接字主机或服务器因特
11、网由操作系统控制由应用研发者控制应用层应用层运输层运输层15进程与套接字关系进程与套接字关系进程类似进程类似房子房子,套接字是进程的,套接字是进程的门门。进程通过进程通过套接字套接字在网络上发送和接收报文。在网络上发送和接收报文。进程具有缓存、变量的TCP套接字套接字主机或服务器进程具有缓存、变量的TCP套接字套接字主机或服务器因特网由操作系统控制由应用研发者控制发送进程:发送进程:把报文推把报文推出门(套接字)。出门(套接字)。传送报文:传送报文:通过下面通过下面网络把报文传送到目网络把报文传送到目的进程门口。的进程门口。接收进程:接收进程:通过其门通过其门(套接字)接收报文(套接字)接收报
12、文 16说明说明应用程序开发者应用程序开发者可以控制可以控制套接字应用层套接字应用层端的全部;端的全部;对套接字的对套接字的运输层端几乎运输层端几乎不能控制不能控制(只能选择运输(只能选择运输层协议、设定几个运输层层协议、设定几个运输层参数等)。参数等)。应用程序开发者选择了一应用程序开发者选择了一个运输层协议,则应用程个运输层协议,则应用程序就建立在由该协议提供序就建立在由该协议提供的运输层服务之上。如的运输层服务之上。如TCP、UDP。进程具有缓存、变量的TCP套接字主机或服务器进程具有缓存、变量的TCP套接字主机或服务器因特网由操作系统控制由操作系统控制由应用研发者控制由应用研发者控制1
13、73、进程寻址、进程寻址主机上的进程可以有多个主机上的进程可以有多个。网络中有多个主机网络中有多个主机,每个主机上有多个进程。,每个主机上有多个进程。r进程识别信息:表示进程识别信息:表示哪台主机上的哪一个进程。哪台主机上的哪一个进程。 源主机上的进程向目的主机上的进程发送报文源主机上的进程向目的主机上的进程发送报文时,应带有接收进程的识别信息(标识)。时,应带有接收进程的识别信息(标识)。r进程寻址:进程寻址: 根据根据进程识别信息进程识别信息找到相应进程。找到相应进程。如何识别如何识别进程?进程?确定主机确定主机确定进程确定进程18进程识别信息(两部分)进程识别信息(两部分)r主机名称或地
14、址:主机名称或地址:网络中的哪一个主机。网络中的哪一个主机。 因特网中,用因特网中,用IP地址地址标识标识(32位,全球惟一)。位,全球惟一)。r进程的标识:进程的标识:主机中的哪一个进程。主机中的哪一个进程。 因特网中,采用因特网中,采用端口号端口号标识标识(port number)。常用的应用程序被指派固定的端口号常用的应用程序被指派固定的端口号(周知端口)周知端口)。 如,如,Web服务进程服务进程(HTTP协议协议):80 邮件服务进程邮件服务进程(SMTP协议协议):25创建一个新的网络应用程序时,必须分配一个新的端创建一个新的网络应用程序时,必须分配一个新的端口号。不重复。口号。不
15、重复。194、用户代理(、用户代理(user agent) 是用户与网络应用程序之间的接口。是用户与网络应用程序之间的接口。如如: :WebWeb应用的用户代理:应用的用户代理:是一些浏览器软件。是一些浏览器软件。 一个通过套接字收发报文,并提供用户接口的进程。一个通过套接字收发报文,并提供用户接口的进程。电子邮件应用程序用户代理:电子邮件应用程序用户代理:是是“邮件阅读器邮件阅读器”。 允许用户进行邮件的撰写和阅读。允许用户进行邮件的撰写和阅读。202.1.3 应用层协议应用层协议 定义了定义了运行在不同端系统上的应用程序运行在不同端系统上的应用程序进程间传递进程间传递报文的格式和方式报文的
16、格式和方式。r具体内容:具体内容: 交换的报文类型:交换的报文类型:如请求报文和响应报文;如请求报文和响应报文;各种报文类型的语法:各种报文类型的语法:报文中的各个字段及描述;报文中的各个字段及描述;字段的语义:字段的语义:字段包含信息的含义;字段包含信息的含义;进程何时、如何发送报文及对报文进行响应的规则。进程何时、如何发送报文及对报文进行响应的规则。21说明说明r公共领域协议:公共领域协议:由标准文档由标准文档RFC定义,如定义,如HTTP。 专用层协议:专用层协议:如如P2P使用的协议。使用的协议。r应用层协议应用层协议是网络应用的一部分。是网络应用的一部分。 如如Web应用,客户机从应
17、用,客户机从Web服务器获得服务器获得“文档文档”。组成:组成:HTML、Web浏览器、浏览器、Web服务器程序,以及服务器程序,以及一个应用层协议一个应用层协议HTTP(超文本传输协议超文本传输协议)等。等。HTTP定义了在浏览器程序和定义了在浏览器程序和Web服务器程序间传输的服务器程序间传输的报文格式和序列。报文格式和序列。 其他协议:电子邮件协议其他协议:电子邮件协议SMTP等等等等222.1.4 应用程序所需要的服务应用程序所需要的服务q应用程序间通信:应用程序间通信:由由运输协议运输协议跨越网络将发送进程的跨越网络将发送进程的报文传输到接收进程的门户报文传输到接收进程的门户 。需要
18、使用运输协议所提供的服务需要使用运输协议所提供的服务。运输协议有多种,提供的服务不同。运输协议有多种,提供的服务不同。进程具有缓存、变量的TCP套接字主机或服务器进程具有缓存、变量的TCP套接字主机或服务器因特网由操作系统控制由应用研发者控制23应用程序需要什么样的运输服务?应用程序需要什么样的运输服务?r可靠的数据传输(无数据丢失)可靠的数据传输(无数据丢失)数据不能丢失的应用:数据不能丢失的应用:如文件传输、金融事务等。如文件传输、金融事务等。能容忍数据丢失的应用:能容忍数据丢失的应用:如多媒体应用。如多媒体应用。 r带宽(数据传输率)带宽(数据传输率)带宽敏感的应用:带宽敏感的应用:需要
19、特定的带宽才能正常工作。需要特定的带宽才能正常工作。 如,因特网电话、其他多媒体应用。如,因特网电话、其他多媒体应用。弹性应用:弹性应用:使用的带宽多或少影响不大。使用的带宽多或少影响不大。 如电子邮件、文件传输以及如电子邮件、文件传输以及Web传输。传输。r定时(数据传输的时间限制)定时(数据传输的时间限制)交互式实时应用:交互式实时应用:对时间敏感,要求时延小。如,因特网对时间敏感,要求时延小。如,因特网电话、视频会议以及多方游戏等。电话、视频会议以及多方游戏等。非实时应用:非实时应用:时延无限制,低更好。时延无限制,低更好。 24典型应用的运输服务要求典型应用的运输服务要求应用程序应用程
20、序文件传输文件传输电子邮件电子邮件Web 文档文档实时音频实时音频/视频视频(因特网电话(因特网电话/视频会议)视频会议)存储音频存储音频/视频视频交互式游戏交互式游戏即时讯息即时讯息数据丢失数据丢失不能丢失不能丢失 不能丢失不能丢失 不能丢失不能丢失 容忍丢失容忍丢失 容忍丢失容忍丢失 容忍丢失容忍丢失 不能丢失不能丢失 带宽带宽弹性弹性弹性弹性弹性弹性音频音频: 5kbps-1Mbps视频视频:10kbps-5Mbps同上同上 几几kbps以上以上弹性弹性时间敏感时间敏感不不不不不不是是, 100 ms是是, , 几秒几秒是是, , 100 ms是和不是是和不是252.1.5 因特网运输协
21、议提供的服务因特网运输协议提供的服务两个运输层协议:两个运输层协议:m用户数据报协议用户数据报协议UDPm传输控制协议传输控制协议TCP 每个协议为调用它们的应用程序提供不同的服务模型。每个协议为调用它们的应用程序提供不同的服务模型。在创建一个新的因特网应用时,要选择其中一个。在创建一个新的因特网应用时,要选择其中一个。 261、TCP服务服务q两个方面:两个方面:面向连接的服务:面向连接的服务:可靠的传输服务:可靠的传输服务:27面向连接的服务面向连接的服务r划分三阶段划分三阶段建立连接(握手过程):建立连接(握手过程): 客户机程序和服务器程序之间互相交换控制信客户机程序和服务器程序之间互
22、相交换控制信息,在两个进程的息,在两个进程的套接字之间建立一个套接字之间建立一个TCP连接连接。传输报文:传输报文: 连接是连接是全双工全双工的,即连接双方的进程可以在此连的,即连接双方的进程可以在此连接上同时进行报文收发。接上同时进行报文收发。拆除连接:拆除连接: 应用程序报文发送结束。应用程序报文发送结束。28可靠的传输服务可靠的传输服务通信进程可以通信进程可以无差错、按适当顺序无差错、按适当顺序交付发送的交付发送的数据。数据。 没有数据丢失和重复。没有数据丢失和重复。29拥塞控制拥塞控制 当发送方和接收方之间的网络出现拥塞时,当发送方和接收方之间的网络出现拥塞时,会抑会抑制发送进程速率。
23、制发送进程速率。 对整个网络有益。对整个网络有益。30未提供的服务未提供的服务不确保最小传输速率:不确保最小传输速率:发送进程受拥塞控制机制制约;发送进程受拥塞控制机制制约;不提供时延保证:不提供时延保证:数据传输的时间不确定。数据传输的时间不确定。 TCP协议能保证交付所有的数据,但并不保证这些协议能保证交付所有的数据,但并不保证这些数据传输的速率以及期待的传输时延。数据传输的速率以及期待的传输时延。 TCP协议协议不适合实时应用不适合实时应用。 312、UDP服务服务提供提供最小服务模式最小服务模式运行。运行。无连接:无连接:两个进程通信前没有握手过程;两个进程通信前没有握手过程;不可靠数
24、据传输:不可靠数据传输:不保证报文能够被接收,或收到的不保证报文能够被接收,或收到的报文是乱序到达。报文是乱序到达。没有拥塞控制机制:没有拥塞控制机制:发送进程可以任何速率发送数据发送进程可以任何速率发送数据不提供时延保证:不提供时延保证:r适于实时应用。适于实时应用。32因特网应用、应用协议与运输协议因特网应用、应用协议与运输协议 应用应用 应用层协议应用层协议传输协议传输协议电子邮件电子邮件 SMTP TCP远程终端访问远程终端访问 Telnet TCPWeb HTTP TCP文件传输文件传输 FTP TCP远程文件服务器远程文件服务器 NFS UDP或或TCP流媒体流媒体 HTTP、RT
25、P UDP或或TCP因特网电话因特网电话 SIP、RTP 典型用典型用UDP332.2 Web应用和应用和HTTP协议协议产生于产生于20世纪世纪90年代初期。年代初期。改变了人们与工作环境内外的交流方式;改变了人们与工作环境内外的交流方式;提升因特网地位;提升因特网地位;生活和工作发生变化;生活和工作发生变化;方便、快捷得到所需要的信息(方便、快捷得到所需要的信息(按需操作按需操作););任何人在任何人在Web上发布信息;上发布信息;超链接和搜索引擎帮助人们浏览超链接和搜索引擎帮助人们浏览Web站点。站点。34本节内容2.2.1 HTTP概况概况2.2.2 HTTP连接连接2.2.3 HTT
26、P报文格式报文格式2.2.4 用户与服务器交互:用户与服务器交互:Cookie2.2.5 HTTP内容内容2.2.6 Web缓存缓存 2.2.7 条件条件GET方法方法352.2.1 HTTP概况概况rHTTP(超文本传输协议):(超文本传输协议): 应用层协议,应用层协议,Web的核心。的核心。r包括两部分:包括两部分:客户机程序客户机程序服务器程序服务器程序 分别运行在不同的端系统中,通过分别运行在不同的端系统中,通过交换交换HTTP报文报文进行会话。进行会话。qHTTP协议协议定义了报文的格式以及客户机和服务器定义了报文的格式以及客户机和服务器交换报文的方式。交换报文的方式。 36Web
27、常用术语常用术语rWeb页页(文档文档):由若干由若干对象对象组成。组成。 对象:对象:是文件是文件。通过一个。通过一个URL地址地址来寻址。如来寻址。如HTML文件、文件、JPEG图形文件、图形文件、Java小程序等。小程序等。 Web页含有页含有一个基本的一个基本的HTML文件及几个引用对象文件及几个引用对象。 例如,一个例如,一个Web页包含页包含HTML文本和文本和5个个JPEG图图形文件(即有形文件(即有6个对象)。个对象)。 在基本的在基本的HTML文件中,文件中,每个对象可由每个对象可由URL来寻址。来寻址。 超文本标记语言超文本标记语言 统一资源定位符统一资源定位符 37Web
28、常用术语常用术语URL:Uniform Resource Locator。统一资源定位符统一资源定位符。标识万维网标识万维网WWW上的各种文档,全网范围唯一。上的各种文档,全网范围唯一。URL地址组成:地址组成: 存放对象的存放对象的服务器主机名服务器主机名和和对象的路径名对象的路径名。如如 http:/ www.someS / somedepartment / picture.gif 主机名主机名路径名路径名38Web常用术语常用术语r浏览器(客户机):浏览器(客户机):是是Web应用的应用的用户代理用户代理,用于显,用于显示所请求的示所请求的Web页,提供导航功能和配置属
29、性。页,提供导航功能和配置属性。 实现了实现了HTTP协议的客户机端。协议的客户机端。rWeb服务器:服务器:用于存贮用于存贮Web对象(由对象(由URL寻址)。寻址)。 实现实现HTTP协议的服务器端。协议的服务器端。 HTTP协议协议定义了定义了Web客户机客户机 (浏览器浏览器)如何向如何向Web站点请站点请求求Web页,以及服务器如何将页,以及服务器如何将Web页传送给客户机。页传送给客户机。39客户机和服务器之间交互过程客户机和服务器之间交互过程PC 运行Explorer服务器运行Apache Web服务器Mac 运行NavigatorHTTP 请求HTTP 请求HTTP 响应HTT
30、P 响应r客户机客户机: 用户请求一个用户请求一个Web页页(如点击一个超链接),浏(如点击一个超链接),浏览器向服务器览器向服务器发出发出对该页所对该页所含对象的含对象的“HTTP请求报请求报文文”。r服务器:服务器: 接受请求,回发包含请求接受请求,回发包含请求对象的对象的“HTTP响应报文响应报文”40说明说明rHTTP协议使用的协议使用的底层运输协议是底层运输协议是TCP。r工作过程:工作过程: 创建创建TCP连接连接交换报文交换报文关闭关闭TCP连接连接客户机先与服务器客户机先与服务器建立建立TCP连接连接,然后,浏览器和服,然后,浏览器和服务器进程通过务器进程通过套接字访问套接字访
31、问TCP:如图如图2-3客户机:客户机:从其套接字接口发送从其套接字接口发送“HTTPHTTP请求报文请求报文”和接和接收收“响应报文响应报文”;服务器:服务器:从其套接字口接收从其套接字口接收“HTTPHTTP请求报文请求报文”和发送和发送“响应报文响应报文”。41说明说明rTCP提供可靠的数据传输服务:提供可靠的数据传输服务:客户机进程和服务器客户机进程和服务器进程发出的每个进程发出的每个HTTP报文能完整地到达对方。报文能完整地到达对方。rHTTP是是无状态协议:无状态协议:服务器不保存关于客户机的任何服务器不保存关于客户机的任何信息。信息。 Web使用客户机使用客户机/服务器结构,服务
32、器结构,Web服务器总是打开,有一服务器总是打开,有一个固定个固定IP地址,为多个浏览器服务。地址,为多个浏览器服务。422.2.2 HTTP连接连接持久持久HTTP连接连接一个一个TCP连接上可以传连接上可以传送送多个多个Web对象对象传送多个传送多个请求请求/相应相应对对非持久非持久HTTP连接连接每个每个TCP连接上只传送连接上只传送一个一个Web对象对象只传送一个只传送一个请求请求/相应相应对对默认方式下使用持久连接默认方式下使用持久连接431、非持久连接、非持久连接 例,客户机向服务器请求传送一个例,客户机向服务器请求传送一个Web页:页:含有含有一个基本一个基本HTML文件和文件和
33、10个个JPEG图形图形,11个对象个对象位于同一个服务器上。位于同一个服务器上。HTML文件的文件的URL为:为:http:/www.someS/someDepartment/home.index44工作过程1a. HTTP客户客户初始化一个初始化一个与服务与服务器主机器主机www.someS中中HTTP服务器进程的服务器进程的TCP连接连接 2. HTTP客户发送一个客户发送一个HTTP请请求报文求报文 (包含(包含URL)到)到TCP连接套接字,连接套接字, 报文指明客户报文指明客户需要的需要的Web对象对象someDepartment/home.in
34、dex1b. www.someS服务器服务器主机中的主机中的HTTP服务器服务器在在80端端口监听来自口监听来自HTTP客户的客户的TCP连接请求连接请求,收到连接请求,收到连接请求, 接接受受, 建立连接建立连接, 通知客户。通知客户。3. HTTP服务器接收请求报文服务器接收请求报文, 产产生一个生一个响应报文响应报文(包含被请(包含被请求对象)求对象), 并发送到其并发送到其TCP连连接套接字接套接字timeTCP连接连接报文传输报文传输455. HTTP客户机接收包含客户机接收包含HTML文件的响应报文,文件的响应报文,显示并解显示并解析析HTML文件,发现文件,发现
35、10个引个引用的用的 jpeg对象对象6. 对对10个个jpeg对象重复步骤对象重复步骤154. HTTP服务器关闭服务器关闭TCP 连接连接time46说明:说明:r每个每个TCP连接在服务器返回对象后关闭连接在服务器返回对象后关闭(非持久)(非持久)。r每个每个TCP连接连接只传输一个请求报文和一个响应报文只传输一个请求报文和一个响应报文; 上例中,要建立上例中,要建立11个个TCP连接。连接。r浏览器浏览器可同时打开多个可同时打开多个连接:连接:并行的并行的TCP连接:并行数大于连接:并行数大于1。默认打开。默认打开510个。个。串行的串行的TCP连接:最大并行数为连接:最大并行数为1。
36、47请求一个请求一个HTML文件所需时间文件所需时间 即即从客户机请求基本从客户机请求基本HTML文件开始,到用户收文件开始,到用户收到整个文件为止所花时间。到整个文件为止所花时间。r往返时延往返时延RTTRTT: 一个小分组从客户机到服务器,再回到客户机所一个小分组从客户机到服务器,再回到客户机所花时间。花时间。 包括传播时延、排队时延以及处理时延。包括传播时延、排队时延以及处理时延。48rTCP连接的连接的“三次握手三次握手”过程过程客户机发送一个客户机发送一个TCP连接请求连接请求报文报文 服务器回送一个服务器回送一个TCP确认响应确认响应报文报文 客户机向服务器发送一个包含客户机向服务
37、器发送一个包含“ HTTP请求请求”与与“TCP确确认认”的报文的报文r总响应时间:总响应时间:两个两个RTT时延加时延加上服务器发送文件的时间上服务器发送文件的时间 总计总计 = 2RTT+文件传输时间文件传输时间传输文件传输文件的时间的时间发起发起TCP连接连接RTT请求文件请求文件RTT接收接收文件文件时间时间三次握手三次握手建立建立TCP连接连接 交换报文交换报文49非持久连接缺点非持久连接缺点r服务器负担重:服务器负担重:每一个请求对象建立和维护一个新的每一个请求对象建立和维护一个新的连接。连接。r每一个对象的传输时延长:每一个对象的传输时延长:包含两个包含两个RTT时延,一个时延,
38、一个用于用于TCP建立,一个用于请求和接收对象。建立,一个用于请求和接收对象。502、持久连接、持久连接q服务器在发送响应后保持该服务器在发送响应后保持该TCP连接:连接:相同客户机相同客户机与服务器之间的后续请求和响应报文与服务器之间的后续请求和响应报文通过通过相同的连接进行传送。相同的连接进行传送。 如,一个如,一个Web页页 的所有对象可以通过一个持久的所有对象可以通过一个持久TCP连接传送。连接传送。或或同一服务器上的多个同一服务器上的多个Web页页也可以通过一个持久也可以通过一个持久TCP连接传送给同一个客户机。连接传送给同一个客户机。r连接经一定连接经一定时间间隔时间间隔(超时间隔
39、超时间隔)未被使用未被使用,服务器就,服务器就关关闭该连接。闭该连接。51持久连接两种方式持久连接两种方式r非流水线方式:非流水线方式:客户机只能在客户机只能在前一个响应接收到之后前一个响应接收到之后才能发出新的请求。才能发出新的请求。客户机为每一个引用对象的请求和接收都使用一个客户机为每一个引用对象的请求和接收都使用一个RTT时延。时延。会浪费一些服务器资源:服务器在发送完一个对象,会浪费一些服务器资源:服务器在发送完一个对象,等待下一个请求时,会出现空闲状态。等待下一个请求时,会出现空闲状态。 52持久连接两种方式持久连接两种方式r流水线方式:流水线方式:客户机可一个接一个客户机可一个接一
40、个连续产生请求连续产生请求(只要有引用就产(只要有引用就产生),即在前一个请求接收到响应之前可以产生新的生),即在前一个请求接收到响应之前可以产生新的请求。请求。服务器一个接一个服务器一个接一个连续发送相应对象连续发送相应对象。r特点:特点:节省节省RTT时延,时延,可能所有引用对象可能所有引用对象只花费一个只花费一个。TCP连接空闲时间很短。连接空闲时间很短。r 默认方式:默认方式:流水线方式的持久连接。流水线方式的持久连接。531、HTTP请求报文请求报文r客户机向服务器发送。客户机向服务器发送。ASCII文本形式,文本形式,易读。易读。 例:例:GET /somedir/page.htm
41、l HTTP/1.1Host: User-agent: Mozilla/4.0Connection: close Accept-language:fr (另外的回车,换行) 请求行请求行(GET, POST, HEAD命令命令)首部行首部行回车,换行指示回车,换行指示报文的结束报文的结束对象对象URL路径名路径名 版本版本 对象主机对象主机浏览器类型浏览器类型非持久非持久方法(命令)方法(命令)GET:请求一个对象。:请求一个对象。POST:提交表单(添加信息)。:提交表单(添加信息)。HEAD:请求返回对象响应报文首部:请求返回对象响应报文首部返回对象的
42、语言返回对象的语言54HTTP请求报文通用格式请求报文通用格式请求行请求行 首部行首部行 实体主体实体主体 方法方法版本版本 首部字段名首部字段名首部字段名首部字段名值值值值552、HTTP 响应报文响应报文HTTP/1.1 200 OK Connection closeDate: Thu, 06 Aug 1998 12:00:15 GMT 服务器服务器: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 . Content-Length: 6821 Content-Type: text/html data data data data d
43、ata . 状态行状态行(版本、状态码、状态短语)(版本、状态码、状态短语)首部行实体:数据,如请求的HTML文件请求成功请求成功关闭连接关闭连接发送日期发送日期对象创建或修对象创建或修改日期改日期对象长度对象长度服务器到客户机的回答服务器到客户机的回答56HTTP响应状态码200 OKm请求成功,请求的对象在这个报文后面请求成功,请求的对象在这个报文后面301 Moved Permanentlym请求的对象已转移,请求的对象已转移,新的新的URL在响应报文的在响应报文的Location:首部行中首部行中指定指定400 Bad Requestm请求报文不为服务器理解请求报文不为服务器理解404
44、 Not Foundm请求的文档没有在该服务器上发现请求的文档没有在该服务器上发现505 HTTP Version Not Supportedm服务器不支持请求报文使用的服务器不支持请求报文使用的HTTP版本版本r在服务器到客户机响应报文中的首行。在服务器到客户机响应报文中的首行。57自行试验HTTP (客户机侧)1. Telnet 到某个到某个Web服务器上:服务器上:打开到位于打开到位于的端口的端口80(默认默认的的HTTP服务器端口服务器端口).键入的任何东西将发送到位于键入的任何东西将发送到位于的的80端口端口telnet cis.pol
45、 802. 键入一个键入一个GET HTTP请求:请求:GET /ross/ HTTP/1.1Host: 向向HTTP服务器发服务器发送最小的送最小的GET请求请求3. 得到由得到由HTTP服务器发送的响应报文服务器发送的响应报文!582.2.4 用户与服务器交互:用户与服务器交互:Cookie HTTP服务器是服务器是无状态无状态的,不保存客户信息。的,不保存客户信息。rCookie:允许允许Web站点跟踪、识别用户;服务器可以站点跟踪、识别用户;服务器可以限制用户访问,或把内容与用户身份关联。限制用户访问,或把内容与用户身份关联。 许多重要的许多重要的We
46、b站点使用站点使用cookies。r包括四个部分包括四个部分1)在在HTTP响应报文中有一个响应报文中有一个cookie 首部行首部行2)在在HTTP请求报文中有一个请求报文中有一个cookie 首部行首部行3)用户主机中保留有一个用户主机中保留有一个 cookie 文件并由浏览器管理文件并由浏览器管理4) Web站点的后端数据库保存站点的后端数据库保存cookie59例mSusan总是从相同的总是从相同的PC访问因特网访问因特网m她首次访问一个特定的电子商务站点她首次访问一个特定的电子商务站点m当起始当起始HTTP请求到达站点时,站点产生一个独特请求到达站点时,站点产生一个独特的的ID,并为
47、,并为ID在后端数据库中生成一个表项在后端数据库中生成一个表项60工作过程客户机客户机服务器服务器普通HTTP请求报文普通HTTP响应+Set-cookie: 1678 普通HTTP请求报文cookie: 1678普通HTTP响应报文普通HTTP请求报文cookie: 1678普通HTTP响应报文特定cookie动作特定cookie动作服务器为用户生成ID 1678后端数据库中的表项访问访问Cookie file识别码识别码 1678Cookie file保存保存1678 Cookie file识别码识别码 1678一个星期以后:61rCookie用途用途身份认证身份认证虚拟购物车虚拟购物车(
48、跟踪用户购买的物品跟踪用户购买的物品)推荐广告推荐广告用户会话状态用户会话状态 (Web e-mail)rCookie缺陷缺陷站点可以知道用户许多信息站点可以知道用户许多信息不利用户隐私保护不利用户隐私保护(出卖信息给第三方出卖信息给第三方)622.2.5 HTTP内容内容传输传输Web页面所含对象:页面所含对象:如如HTML文件、文件、JPEG文件、文件、Java小应用程序等等。小应用程序等等。可以传输其他类型的文件:可以传输其他类型的文件:如传输如传输XML(可扩充的标(可扩充的标识语言)文件。识语言)文件。P2P文件共享中:文件共享中:作为文件传输协议使用。作为文件传输协议使用。用于流式
49、存储的音频和视频。用于流式存储的音频和视频。 632.2.6 Web缓存缓存rWeb缓存器缓存器(Web cache):也叫也叫代理服务器代理服务器。 能够代表能够代表起始服务器起始服务器来满足来满足HTTP请求的网络实体。请求的网络实体。保存最近请求过的对象的副本。保存最近请求过的对象的副本。可在客户机或服务器工作,也可在中间系统工作。可在客户机或服务器工作,也可在中间系统工作。r起始(原始)服务器起始(原始)服务器(origin server):对象最初存放并对象最初存放并始终保持其拷贝的服务器。始终保持其拷贝的服务器。目标目标: 代替原始服务器满足代替原始服务器满足HTTP请求。请求。6
50、4使用使用Web缓存器缓存器r用户配置浏览器用户配置浏览器: 所有所有Web 访访问经由缓存(首先指向问经由缓存(首先指向Web服服务器)务器)r浏览器向缓存发送所有浏览器向缓存发送所有HTTP请求请求m对象在缓存中:对象在缓存中:缓存器返缓存器返回对象回对象m不在:不在:缓存向原始服务器缓存向原始服务器发出请求,接收对象后转发出请求,接收对象后转发给客户机发给客户机客户机代理服务器客户机HTTP 请求HTTP 请求HTTP 响应HTTP 响应HTTP 请求HTTP 响应起始服务器起始服务器客户机通过客户机通过Web缓存器请求对象。缓存器请求对象。65具体操作过程具体操作过程r浏览器:浏览器:
51、建立一个到缓存建立一个到缓存的的TCP连接,并向缓存发连接,并向缓存发送一个对该对象送一个对该对象HTTP请求请求rWeb缓存器:缓存器:检查本地是否检查本地是否有该对象的拷贝。有该对象的拷贝。有:有:就用就用HTTP响应报文向响应报文向浏览器转发该对象浏览器转发该对象例:假设浏览器请求对象例:假设浏览器请求对象 /campus.gif客户机代理服务器客户机HTTP 请求HTTP 请求HTTP 响应HTTP 响应HTTP 请求HTTP 响应起始服务器起始服务器66 缓存在缓存在TCP连接上发送获取连接上发送获取该对象的请求。该对象的请求。 起始服
52、务器收到请求,向缓起始服务器收到请求,向缓存发送该对象的存发送该对象的HTTP响应响应 缓存接收该对象,存储一份缓存接收该对象,存储一份在本地中,并通过在本地中,并通过HTTP响响应报文向浏览器转发该对象应报文向浏览器转发该对象(通过已经建立的(通过已经建立的TCP连连接)。接)。客户机代理服务器客户机HTTP 请求HTTP 请求HTTP 响应HTTP 响应HTTP 请求HTTP 响应起始服务器起始服务器没有:没有:与该对象的起始服务器打开一个与该对象的起始服务器打开一个TCP连接。连接。 客户机客户机 Web缓存器缓存器起始服务器起始服务器67说明说明rWeb缓存器既可以是服务器也可以是客户
53、机:缓存器既可以是服务器也可以是客户机:当它接收浏览器请求并发回响应时,是当它接收浏览器请求并发回响应时,是服务器服务器;当它向起始服务器发出请求并接收响应时,是当它向起始服务器发出请求并接收响应时,是客户机客户机68Web缓存优点缓存优点r减少客户机请求的响应时间减少客户机请求的响应时间: 客户机客户机 Web缓存器缓存器起始服务器起始服务器 高速链路高速链路 r减少机构内部网络与因特网连接链路上的通信量:减少机构内部网络与因特网连接链路上的通信量: 降低开销,改善各种应用的性能。降低开销,改善各种应用的性能。69例例1,无,无Web缓存缓存r包括两个网络:包括两个网络:机构的内部机构的内部
54、网络和因特网。网络和因特网。 机构内部网络机构内部网络:是一个高速是一个高速的局域网。的局域网。 其路由器与因特网上的其路由器与因特网上的路由器通过一条路由器通过一条1.5Mbps的的链路连接。链路连接。起始服务器:起始服务器:与因特网相与因特网相连,遍布全球。连,遍布全球。起始服务器公共因特网公共因特网机构网络机构网络10 Mbps LAN1.5 Mbps 访问链路70假设假设平均对象长度为平均对象长度为100kb机构内浏览器对原始服机构内浏览器对原始服务器上对象的平均请求务器上对象的平均请求率率= 15/sec机构内机构内的的HTTP报文小,报文小,忽略忽略从因特网路由器转发从因特网路由器
55、转发HTTP请求报文,到收到请求报文,到收到其响应报文的时间平均其响应报文的时间平均2s(因特网时延)(因特网时延) 起始服务器公共因特网机构网络10 Mbps LAN1.5 Mbps 访问链路71总的响应时间总的响应时间 浏览器从请求一个对象到接收到的时间:三部分和浏览器从请求一个对象到接收到的时间:三部分和局域网时延局域网时延接入链路时延接入链路时延(两个路由器间两个路由器间)因特网时延因特网时延起始服务器公共因特网机构网络10 Mbps LAN1.5 Mbps 访问链路72局域网时延:局域网时延:与流量强度有关(与流量强度有关(比特到达率比特到达率/推出率推出率La/R) (15请求请求
56、/s)(100kb/请求请求)/(10Mbit/s)=0.15 强度为强度为0.15的通信量最多数十毫秒的时延,可的通信量最多数十毫秒的时延,可忽略忽略接入链路时延:与接入链路时延:与接入流量强度接入流量强度 (路由器之间路由器之间)有关有关 (15请求请求/s)(100kb/请求请求)/(1.5Mbit/s)=1 强度接近强度接近1,链路,链路时延非常大时延非常大或无限增长。或无限增长。总响应时间总响应时间接入链路时延接入链路时延+因特网时延因特网时延 (分钟(分钟 +2 sec ) 请求时间长,用户难接受。请求时间长,用户难接受。73改进方法一改进方法一增加接入链路的速率:增加接入链路的速
57、率: 如从如从1.5Mbps增加到增加到10Mbps,使链路上的流量强,使链路上的流量强度减少到度减少到0.15,链路时延也可以忽略了。,链路时延也可以忽略了。 总响应时间总响应时间=因特网时延因特网时延=2秒钟秒钟投资较大,成本昂贵。投资较大,成本昂贵。74改进方法二改进方法二 在机构网络中安装在机构网络中安装一个一个Web缓存缓存器。器。起始服务器公共因特网机构网络10 Mbps LAN1.5 Mbps 访问链路机构缓存器Web缓存器的命中率:缓存器的命中率:缓存缓存器满足请求的比率器满足请求的比率(0.20.7)。)。设命中率为设命中率为0.4。75改进方法二改进方法二起始服务器公共因特
58、网机构网络10 Mbps LAN1.5 Mbps 访问链路机构缓存器局域网时延:局域网时延:客户机和缓客户机和缓存器位于同一局域网,存器位于同一局域网,40%的请求几乎会立即得的请求几乎会立即得到响应,时延约到响应,时延约10ms。 剩下的剩下的60%请求需要请求需要通过访问起始服务器才能通过访问起始服务器才能满足。满足。100kb/10Mbps76接入链路时延:接入链路时延: 只有只有60%的请求对象通的请求对象通过接入链路传送,流量强过接入链路传送,流量强度从度从1.0减小到减小到0.6。 通常,在通常,在1.5Mbps链路链路上,当流量强度小于上,当流量强度小于0.8时,时延很小,可忽略
59、。时,时延很小,可忽略。起始服务器公共因特网机构网络10 Mbps LAN1.5 Mbps 访问链路机构缓存器Web缓存器减少响应时延,成本低缓存器减少响应时延,成本低 平均时延为:平均时延为: 0.4(0.01s)+0.6(0.01s+2s)=1.21s0.01s2s772.2.7 条件条件GET方法方法r高速缓存:高速缓存:减少响应时间;减少响应时间;存放在缓存中的对象拷贝可能是旧的存放在缓存中的对象拷贝可能是旧的。即保存在起始。即保存在起始Web服务器中的对象可能已经被修改。服务器中的对象可能已经被修改。r条件条件GET方法:方法:使使缓存器能够证实其保存的对象是否为最新缓存器能够证实其
60、保存的对象是否为最新(一致性一致性)。如果缓存中是最新对象版本,可继续使用,如果缓存中是最新对象版本,可继续使用,起始起始Web服务器服务器就不需重新发送该对象。就不需重新发送该对象。78条件条件GET方法使用方法使用rWeb服务器回发服务器回发响应报文响应报文:包括对象的最后修改时间:包括对象的最后修改时间 Last-modified:date1r缓存检查缓存检查Web服务器中的该对象是否已被修改,发送服务器中的该对象是否已被修改,发送一个一个条件条件GET请求报文请求报文: If-modified-since: date1告诉服务器,仅当告诉服务器,仅当自指定日期之后该对象被修改过,自指定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高端商务写字楼租赁合同样本(含物业服务)
- 商业地产租赁合同租赁面积及租金调整补充协议
- 离婚协议子女生活费支付确认书及欠款还款协议
- 髌骨骨折护理
- 离婚赡养费调整补充协议示范文本
- 留学移民政策咨询服务协议
- 农民就业扶持规定
- 家居服装设计风格方案
- 公司业务流程再造规范
- 员工职业素质提升计划
- 语法填空公开课课件市公开课一等奖省名师优质课赛课一等奖课件
- (完整word版)个人健康体检表
- 急性肾盂肾炎护理查房课件
- JJF 1062-2022 电离真空计校准规范
- AS9100D体系标准中文版
- 中国铁塔-基站规范培训课件
- GB-T 41378-2022 塑料 液态食品包装用吹塑聚丙烯容器(高清版)
- 上海证券交易所公司债券预审核指南(三)审核和发行程序及其实施
- 食管癌颈部吻合ppt课件
- 脐针临床实战解析(案例分析)精品医学讲座课件(210页PPT)
- 陶瓷管项目可行性研究报告写作范文
评论
0/150
提交评论