应用层协议概述ppt课件.ppt
应用层应用层1 应用层应用层本讲目标本讲目标: n网络应用层的概念和网络应用层的概念和实现实现p客户端客户端-服务器范式服务器范式p服务模型服务模型n通过对常用应用层协通过对常用应用层协议的探讨和分析来学议的探讨和分析来学习网络协议习网络协议深层次目标深层次目标 n特定协议特定协议: pdnsphttppftppsmtpppop 应用层应用层2应用层协议应用层协议应用层负责的是进程与进程之应用层负责的是进程与进程之间的通信间的通信应用层协议:应用层协议:p应用层的一个应用层的一个“组成部分组成部分”p定义应用程序需交换的报文定义应用程序需交换的报文 和所需采取的动作和所需采取的动作p位于最高层位于最高层p使用较低层次所提供的通信使用较低层次所提供的通信服务服务 (TCP, UDP)applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysical应用层应用层3网络应用程序网络应用程序: 一些术语一些术语进程进程(Process): 主机中运行主机中运行中的程序中的程序.n在某些主机中在某些主机中, 两个进程两个进程使用使用进程间通信进程间通信 (由由 OS管理管理).n而运行在不同主机上的进而运行在不同主机上的进程则使用应用层协议进行程则使用应用层协议进行通信通信n用户代理用户代理(User agent): 软件进程软件进程, 是介于用户是介于用户( above )和网络()和网络( below )之间的接口)之间的接口p实现应用级协议实现应用级协议pWeb: 浏览器浏览器pE-mail: OE、Foxmailp流媒体流媒体: media player应用层应用层4客户端客户端-服务器模式服务器模式典型的网络应用都是由两个部典型的网络应用都是由两个部分组成分组成: 客户端客户端 和和 服务器服务器applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysical客户端客户端:n发起同服务器的联系发起同服务器的联系 (“speaks first”)n一般都从服务器请求服务一般都从服务器请求服务, nWeb: 客户端由浏览器实现客户端由浏览器实现; e-mail: 通过通过OE、Foxmial实现实现requestreply服务器服务器:n向客户端提供所请求的服务向客户端提供所请求的服务ne.g., Web 服务器发送被请求的服务器发送被请求的 Web 页面页面, 邮件服务器传递邮件服务器传递 e-mail应用层应用层5应用层协议应用层协议(续续)应用程序接口(应用程序接口(API: application programming interface)n定义应用层和传输层间的定义应用层和传输层间的接口接口n插口(插口(socket: Internet API)p两个进程间的通信,两个进程间的通信, 将数将数据送入据送入 socket, 或从或从socket 读出数据读出数据Q: 某个进程如何某个进程如何“标识标识”另一个另一个 需要与之通信的需要与之通信的进程进程?(SOCKET 套接字套接字)pIP 地址地址-运行另一个进程运行另一个进程的主机所拥有的的主机所拥有的p“端口号(端口号(PORT #)” 允许接收主机来确定的一允许接收主机来确定的一个标识,本地进程将报文个标识,本地进程将报文发送给它发送给它pSOCKETIP+PORT应用层应用层6关于端口的说明关于端口的说明n端口是应用进程的标识,本质上是一个存放在端口是应用进程的标识,本质上是一个存放在传输层首部的一个字段的值,如传输层首部的一个字段的值,如TCP端口,端口,UDP端口。端口。n端口可以看作传输层对于应用层的端口可以看作传输层对于应用层的SAPn端口占两个字节,范围是端口占两个字节,范围是065535p保留使用的端口保留使用的端口01023 http:80. Dns:53. Smtp:25 pop:110p用户可以使用的端口用户可以使用的端口102465535n问题:为什么不使用操作系统的进程号来标识问题:为什么不使用操作系统的进程号来标识进程。进程。应用层应用层7应用进程需要怎样的传输服务应用进程需要怎样的传输服务?数据丢失(数据丢失(Data loss)n某些应用某些应用 (e.g., audio) 可可以容忍某种程度上的数据丢以容忍某种程度上的数据丢失失n其他应用其他应用 (e.g., 文件传输文件传输, telnet) 要求要求 100% 可靠的可靠的数据传输数据传输实时性(实时性(Timing)n某些应用某些应用(e.g., IP 电话电话, 交互式游戏交互式游戏) 要求较低要求较低的时延的时延带宽(带宽(Bandwidth)n某些应用某些应用(e.g., 多媒体多媒体) 对最低带宽有要求对最低带宽有要求n其他应用其他应用(“弹性应用弹性应用”) 则可灵活应用所能得到则可灵活应用所能得到的带宽的带宽应用层应用层8常用应用程序对传输功能的要求常用应用程序对传输功能的要求应用程序应用程序文件传输文件传输e-mailWeb 网页网页实时音频实时音频/视频视频存储存储音频音频/视频视频交互式游戏交互式游戏金融应用金融应用数据丢失数据丢失不丢失不丢失不丢失允许丢失允许丢失允许丢失允许丢失不丢失带宽带宽弹性弹性弹性音频: 5Kb-1Mb视频:10Kb-5Mb同上 几 Kb/s 以上弹性实时性实时性无无无100s msecfew secs100s msecyes and no应用层应用层9Internet 的传输协议服务的传输协议服务TCP 服务:n面向连接面向连接: 在客户端和服务器进在客户端和服务器进程之间需要建立连接(程之间需要建立连接(setup )n可靠传输可靠传输 : 在发送和接受进程在发送和接受进程之间之间n流量控制流量控制: 发送数据的速度决不发送数据的速度决不超过接收的速度超过接收的速度 n拥塞控制拥塞控制: 当网络超负荷时,束当网络超负荷时,束紧发送端口,减缓发送速度紧发送端口,减缓发送速度n不提供不提供: 实时性实时性, 最小带宽承诺最小带宽承诺UDP服务:n在客户端和服务器进程之间在客户端和服务器进程之间实现实现“不可靠的不可靠的”数据传输数据传输n不提供不提供:连接建立连接建立, 可靠性保可靠性保证证,流量控制流量控制,拥塞控制拥塞控制,实时实时性性, 最小带宽承诺最小带宽承诺Q: 既生喻,何生亮既生喻,何生亮? Why is there a UDP?应用层应用层10Internet应用应用: 应用应用, 传输协议传输协议应用应用e-mail远程终端访问远程终端访问Web 文件传输文件传输流媒体流媒体远程文件服务器远程文件服务器IP电话电话应用协议应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959专有协议专有协议(e.g. RealNetworks)NSF专有协议专有协议(e.g., Vocaltec)所依赖的传输协议所依赖的传输协议TCPTCPTCPTCPTCP or UDPTCP or UDPtypically UDP应用层应用层11在在IE中输入网址后中输入网址后n首先域名解析首先域名解析DNS,浏览器和浏览器和DNS服务器交服务器交互互n其次采用其次采用http协议,浏览器和协议,浏览器和Web服务器交互服务器交互应用层应用层12DNS: 域名系统域名系统自然人自然人: 诸多定义诸多定义:p身份证身份证, 姓名姓名, 护照护照 #因特网主机因特网主机, 路由器路由器:pIP 地址地址 (32 bit) 用于用于数据报寻址数据报寻址p“域名域名”, e.g., 帮助帮助记忆记忆Q: IP 地址和域名之间如地址和域名之间如何映射何映射(转换转换) ?Domain Name System:n分布式数据库:由许多域分布式数据库:由许多域名服务器按层次构成名服务器按层次构成 nDNS透明的解决了透明的解决了IP地址地址和域名的转换问题和域名的转换问题nDNS传输一般使用传输一般使用UDP,端端口口53。应用层应用层13因特网的域名结构因特网的域名结构n因特网采用了层次树状结构的命名方法。因特网采用了层次树状结构的命名方法。n任何一个连接在因特网上的主机或路由器,都任何一个连接在因特网上的主机或路由器,都有一个有一个惟一惟一的层次结构的名字,即的层次结构的名字,即域名域名。n域名的结构由若干个分量组成,各分量之间用域名的结构由若干个分量组成,各分量之间用点点隔开:隔开: .三级域名三级域名.二级域名二级域名.顶级域名顶级域名n各分量分别代表不同级别的域名。各分量分别代表不同级别的域名。 应用层应用层14顶级域名顶级域名 TLD (Top Level Domain)(1) 国家顶级域名国家顶级域名 nTLD:如如: .cn 表示中国,表示中国,.us 表示美国表示美国,.uk 表示英国,等等。表示英国,等等。(2) 国际顶级域名国际顶级域名 iTLD:采用采用.int。国际性的组织可在国际性的组织可在 .int 下注册。下注册。(3) 通用顶级域名通用顶级域名 gTLD:最早的顶级域名是:最早的顶级域名是: .com 表示公司企业表示公司企业 .net 表示网络服务机构表示网络服务机构 .org 表示非赢利性组织表示非赢利性组织 .edu 表示教育机构(美国专用)表示教育机构(美国专用) .gov 表示政府部门(美国专用)表示政府部门(美国专用) .mil 表示军事部门(美国专用)表示军事部门(美国专用) 因特网的名字空间因特网的名字空间 com net org edu gov milcoopbizinfoaeroint cnukhkjsshbjorg net gov edu com acpkufudansjtutsinghua树根cctvibmhpmot顶级域名二级域名三级域名mailep四级域名mail csnetlseu应用层应用层16DNS name serversn没有服务器能够保存所有没有服务器能够保存所有 Name-to-IP 地址的映射地址的映射本地域名服务器本地域名服务器:p每个每个 ISP, 企业可拥有企业可拥有 本地本地(默认默认) 域名服务器域名服务器p主机的主机的 DNS 查询首先发往查询首先发往本地域名服务器本地域名服务器授权域名服务器授权域名服务器:p每台主机必须在授权服务器每台主机必须在授权服务器上注册登记上注册登记p可完成域名可完成域名/地址的转换地址的转换为什么不搞集中的为什么不搞集中的DNS?n单点失败的问题单点失败的问题n数据的流通量数据的流通量n远程集中式的数据库远程集中式的数据库n维护问题维护问题难以与时俱进,跟不上发展难以与时俱进,跟不上发展!应用层应用层17DNS: 根域名服务器根域名服务器n当本地域名服务器不能解析时,就向根域名服务器查询当本地域名服务器不能解析时,就向根域名服务器查询n根域名服务器根域名服务器:p如果域名映射未知,则向授权域名服务器查询如果域名映射未知,则向授权域名服务器查询p取得映射取得映射p将映射返回将映射返回本地域名服务器本地域名服务器b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CAe NASA Mt View, CAf Internet Software C. Palo Alto, CAi NORDUnet Stockholmk RIPE Londonm WIDE Tokyoa NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA 遍布世界各地的遍布世界各地的13个根域名服务器个根域名服务器递归查询递归查询 递归与迭代相结合的查询递归与迭代相结合的查询 应用层应用层20DNS: 缓存和更新纪录缓存和更新纪录n一旦一旦 (任何任何) 域名服务器得知了某个映射域名服务器得知了某个映射, 就将其就将其 缓存缓存p在一定的时间间隔后缓存的条目将会过期在一定的时间间隔后缓存的条目将会过期(自动消自动消除除)n更新更新/通知通知 机制由机制由 IETF负责设计负责设计pRFC 2136phttp:/www.ietf.org/html.charters/dnsind-charter.html应用层应用层21DNS 纪录纪录DNS: 存储资源纪录存储资源纪录 (RR)的分布式数据库的分布式数据库nType=NSpname = 域域 (e.g. )pvalue =该域授权域名服务该域授权域名服务器的器的 IP 地址地址RR 格式: (name, value, type,ttl)nType=Apname = 主机名主机名pvalue = IP 地址地址nType=CNAMEpName= 别名别名 is really pvalue =真名真名nType=MXpvalue = 与与 name相关的邮件服务器域名应用层应用层22DNS 协议报文格式协议报文格式DNS 协议协议 : 查询查询和和应答应答报文报文, 二者格式相同二者格式相同报文首部报文首部nidentification: 16 bit # 用于查询用于查询, 应答报文使用同应答报文使用同样的样的 #nflags:p查询查询 或或 应答应答p希望递归希望递归 p可以递归可以递归p授权应答授权应答应用层应用层23DNS 协议报文格式协议报文格式Name, type fields 查询报文RRs 响应来自授权服务器的纪录其他“帮助”信息应用层应用层24万维网万维网 WWW概述概述n万维网万维网 WWW (World Wide Web)并非某种特殊的并非某种特殊的计算机网络。计算机网络。n万维网是一个大规模的、联机式的信息储藏所。万维网是一个大规模的、联机式的信息储藏所。n万维网用链接的方法能非常方便地从因特网上的一个万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信站点访问另一个站点,从而主动地按需获取丰富的信息。息。n这种访问方式称为这种访问方式称为“链接链接”。应用层应用层25万维网提供分布式服务万维网提供分布式服务 万维网站点 A万维网站点 C万维网站点 E万维网站点 D万维网站点 B链接到链接到链接到链接到链接到链接到应用层应用层26超媒体与超文本超媒体与超文本n万维网是分布式超媒体万维网是分布式超媒体(hypermedia)系统,它是超文系统,它是超文本本(hypertext)系统的扩充。系统的扩充。n一个超文本由多个信息源链接成。利用一个链接可使一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网一个接在因特网上的超文本系统中。超文本是万维网的基础。的基础。n超媒体与超文本的区别是文档内容不同。超文本文档超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频的信息,如图形、图像、声音、动画,甚至活动视频图像。图像。应用层应用层27万维网的工作方式万维网的工作方式 n万维网以客户服务器方式工作。万维网以客户服务器方式工作。n浏览器浏览器就是在用户计算机上的万维网客户程序。就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。因此这个计算机也称为万维网服务器。n客户程序向服务器程序发出请求,服务器程序向客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。客户程序送回客户所要的万维网文档。n在一个客户程序主窗口上显示出的万维网文档称在一个客户程序主窗口上显示出的万维网文档称为为页面页面(page)。应用层应用层28万维网必须解决的问题万维网必须解决的问题 (1) 怎样标志分布在整个因特网上的万维网文档?怎样标志分布在整个因特网上的万维网文档? n使用使用统一资源定位符统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。来标志万维网上的各种文档。n使每一个文档在整个因特网的范围内具有惟一的标识使每一个文档在整个因特网的范围内具有惟一的标识符符 URL。 (2) 用何协议实现万维网上各种超链的链接?用何协议实现万维网上各种超链的链接? n在万维网客户程序与万维网服务器程序之间进行交互在万维网客户程序与万维网服务器程序之间进行交互所 使 用 的 协 议 , 是所 使 用 的 协 议 , 是 超 文 本 传 送 协 议超 文 本 传 送 协 议 H T T P (HyperText Transfer Protocol)。nHTTP 是一个应用层协议,它使用是一个应用层协议,它使用 TCP 连接进行可靠连接进行可靠的传送。的传送。 应用层应用层29万维网必须解决的问题万维网必须解决的问题 (3) 怎样使各种万维网文档都能在因特网上的各种计算怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方机上显示出来,同时使用户清楚地知道在什么地方存在着超链?存在着超链? n超文本标记语言超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。这些页面显示出来。(4) 怎样使用户能够很方便地找到所需的信息?怎样使用户能够很方便地找到所需的信息? n为了在万维网上方便地查找信息,用户可使用各种的搜索工具为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。(即搜索引擎)。 应用层应用层30统一资源定位符统一资源定位符 URL(uniform resourse location)n统一资源定位符统一资源定位符 URL 是对可以从因特网上得到是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。的资源的位置和访问方法的一种简洁的表示。nURL 给资源的位置提供一种抽象的识别方法,给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。并用这种方法给资源定位。nURL 相当于一个文件名在网络范围的扩展。因相当于一个文件名在网络范围的扩展。因此此 URL 是与因特网相连的机器上的任何可访问是与因特网相连的机器上的任何可访问对象的一个指针。对象的一个指针。 应用层应用层31URL 的一般形式的一般形式 n由以冒号隔开的两大部分组成,并且在由以冒号隔开的两大部分组成,并且在 URL 中的字中的字符对大写或小写没有要求。符对大写或小写没有要求。nURL 的一般形式是:的一般形式是::/:/ (8-2) ftp 文件传送协议 FTPhttp 超文本传送协议 HTTPNews USENET 新闻应用层应用层32URL 的一般形式的一般形式 n由以冒号隔开的两大部分组成,并且在由以冒号隔开的两大部分组成,并且在 URL 中的字中的字符对大写或小写没有要求。符对大写或小写没有要求。nURL 的一般形式是:的一般形式是::/:/ (8-2) 是存放资源的主机在因特网中的域名应用层应用层33URL 的一般形式的一般形式 n由以冒号隔开的两大部分组成,并且在由以冒号隔开的两大部分组成,并且在 URL 中的字中的字符对大写或小写没有要求。符对大写或小写没有要求。nURL 的一般形式是:的一般形式是::/:/ (8-2) 有时可省略应用层应用层34使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 这表示使用 HTTP 协议应用层应用层35使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 冒号和两个斜线是规定的格式应用层应用层36使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 这里写主机的域名应用层应用层37使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ HTTP 的默认端口号是 80,通常可省略应用层应用层38使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 若再省略文件的项,则 URL 就指到因特网上的某个主页(home page)。 应用层应用层39http 协议协议http: TCP 传输服务传输服务:n客户端启动客户端启动TCP连接连接(创建插口创建插口) 到服务器到服务器, 端口端口 80n服务器接受来自客户端的服务器接受来自客户端的 TCP 连接连接nhttp 报文报文(应用层协议报文应用层协议报文) 在浏览器在浏览器 (http client) 和和Web服务器服务器(http server)之间之间进行交换进行交换n关闭关闭TCP 连接连接http 是是 “无状态无状态(stateless)”的的n服务器不保留任何访问服务器不保留任何访问过的请求信息过的请求信息保留状态的协议很复杂哟保留状态的协议很复杂哟!n过去的历史过去的历史 (状态状态) 需要保留需要保留n一旦浏览器一旦浏览器/服务器崩溃服务器崩溃, 它它们各自的状态视图就会发生们各自的状态视图就会发生分歧,还需要重新核对分歧,还需要重新核对小评论应用层应用层40Web: http 协议协议超文本传输协议(超文本传输协议(http: hypertext transfer protocol)n万维网应用协议万维网应用协议n客户端客户端/服务器模式服务器模式p客户端客户端: 浏览器请求、接浏览器请求、接收、展示收、展示 Web对象(对象( objects)p服务器服务器: Web 服务器发服务器发送对象对请求进行响应送对象对请求进行响应nhttp1.0: RFC 1945nhttp1.1: RFC 2068PC runningExplorerServer runningNCSA WebserverMac runningNavigatorhttp requesthttp requesthttp responsehttp response应用层应用层41http 举例举例假设用户键入了一个假设用户键入了一个 URL www.someSchool.edu/someDepartment/home.index1a. http 客户端启动客户端启动 TCP 连接到连接到www.someSchool.edu上的上的http 服务器服务器 (进程进程). Port 80 是是 http 服务器的默认端服务器的默认端口口.2. http客户端客户端发送发送 http 请求报请求报文文 (包括包括URL) 进入进入 TCP 连接插连接插口(口(socket)1b. 在在www.someSchool.edu 上上的的http 服务器在服务器在 port 80 等待等待 TCP 的连接请求的连接请求. “接受接受” 连连接并通知客户端接并通知客户端3. http 服务器接收到请求报文服务器接收到请求报文, 形成形成 响应报文(响应报文( 包含了所请求包含了所请求的对象的对象 ,someDepartment/home.index), 将报将报文送入插口(文送入插口( socket)time(该网页包含文本并引用了10 jpeg 图片)应用层应用层42http 举例举例 (续续.)5. http 客户端接收到了包含客户端接收到了包含html文件的响应报文。文件的响应报文。 分分析析 html 文件文件, 发现发现 10 个个引用的引用的 jpeg 对象对象6. 对对10 jpeg objects 逐个重复逐个重复1-5 步步4. http 服务器关闭服务器关闭 TCP 连接连接. time应用层应用层43非持续和持续连接非持续和持续连接(非持续连接)(非持续连接)Non-persistentnhttp/1.0: 服务器分析请服务器分析请求、响应、关闭求、响应、关闭 TCP 连接连接n取对象需要取对象需要2 RTTspTCP 连接连接p对象请求对象请求/传送传送n每次传送都要受到每次传送都要受到TCP连连接初始化时的慢启动影响接初始化时的慢启动影响n许多浏览器同时打开多个许多浏览器同时打开多个并行的连接来改善性能并行的连接来改善性能(持续连接)(持续连接)Persistentnhttp/1.1的默认设置的默认设置n在同一在同一TCP 连接上连接上: 服服务器分析请求、响应请务器分析请求、响应请求,分析新的请求、求,分析新的请求、.n客户端一旦下载到了基客户端一旦下载到了基本的本的html文件(文件( base HTML )马上发送对所)马上发送对所有引用对象的请求有引用对象的请求.n较少的较少的 RTTs, 较少的较少的慢启动慢启动.应用层应用层44流水线和非流水线方式流水线和非流水线方式n流水线方式指没有收到上一个请求的对象就发流水线方式指没有收到上一个请求的对象就发送新的对象的请求送新的对象的请求n非流水线方式指必须要等到上一个请求的对象非流水线方式指必须要等到上一个请求的对象到达之后再发送新的对象的请求到达之后再发送新的对象的请求应用层应用层45http 报文格式报文格式: request(请求)(请求)ntwo types of http报文报文: request, responsenhttp 请求请求报文报文:pASCII (可读格式可读格式)GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (额外的 carriage return, line feed) 请求行请求行(GET, POST, HEAD 命令命令)首部首部 诸行诸行回车、换行表示回车、换行表示报文结束报文结束应用层应用层46http 请求报文格式:请求报文格式:Request方 法URL版 本首部字段名首部行:值首部字段名值:实体主体(通常不用)请求行空格回车换行:CRLFCRLFCRLFCRLF请求报文的类型是由它所采用的方法决定的。 应用层应用层47HTTP 请求报文的一些方法请求报文的一些方法 方法(操作)方法(操作) 意义意义OPTION 请求一些选项的信息请求一些选项的信息GET 请求读取由请求读取由URL所标志的信息所标志的信息HEAD 请求读取由请求读取由URL所标志的信息的首部所标志的信息的首部POST 给服务器添加信息(例如,注释)给服务器添加信息(例如,注释)PUT 在指明的在指明的URL下存储一个文档下存储一个文档DELETE 删除指明的删除指明的URL所标志的资源所标志的资源TRACE 用来进行环回测试的请求报文用来进行环回测试的请求报文CONNECT用于代理服务器用于代理服务器http 响应报文格式:响应报文格式:Response版 本状态码短 语首部字段名首部行:值首部字段名值:实体主体(有些响应报文不用)状态行空格回车换行:CRLFCRLFCRLFCRLF响应报文的开始行是状态行。状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。 开始行应用层应用层49状态码都是三位数字状态码都是三位数字 n1xx 表示通知信息的,如请求收到了或正在进表示通知信息的,如请求收到了或正在进行处理。行处理。n2xx 表示成功,如接受或知道了。表示成功,如接受或知道了。n3xx 表示重定向,表示要完成请求还必须采取表示重定向,表示要完成请求还必须采取进一步的行动。进一步的行动。n4xx 表示客户的差错,如请求中有错误的语法表示客户的差错,如请求中有错误的语法或不能完成。或不能完成。n5xx 表示服务器的差错,如服务器失效无法完表示服务器的差错,如服务器失效无法完成请求。成请求。应用层应用层50用户用户-服务器的交互服务器的交互: 认证(认证(authentication)认证认证 : 控制对服务器内容的访问控制对服务器内容的访问n信用认证信用认证: 一般通过用户名一般通过用户名, 口口令进行令进行 n无状态无状态: 客户端必须在每次请求客户端必须在每次请求前进行认证前进行认证pauthorization: 就是要求在每就是要求在每个请求报文中提交认证的首个请求报文中提交认证的首部行部行p如果客户端没有提交如果客户端没有提交 authorization: 首部行首部行, 服务服务器将拒绝访问器将拒绝访问, 只是在响应只是在响应报文首部中发送报文首部中发送WWW authenticate: clientserver普通普通 http 请求报文请求报文401: 认证要求认证要求WWW authenticate:普通普通 http 请求报文请求报文+ Authorization: 普通普通 http响应报文响应报文普通普通 http 请求报文请求报文+ Authorization: 普通普通 http响应报文响应报文time应用层应用层51Cookies: 保存保存 “状态状态”n服务器产生一个服务器产生一个 # , 服务服务器认识这个器认识这个 #, 以备不时以备不时之需之需:p认证认证p记忆用户的前序访问记忆用户的前序访问, 先前的选择先前的选择n服务器在响应报文中发送服务器在响应报文中发送 “cookie” 给客户端给客户端Set-cookie: 1678453n客户端可以在后继的请求中客户端可以在后继的请求中发送发送“cookie” cookie: 1678453clientserver普通 http 请求报文普通 http响应报文+Set-cookie: #普通 http 请求报文cookie: #普通 http响应报文普通 http 请求报文cookie: #普通 http响应报文cookie-特定的cookie-特定的应用层应用层52Conditional GET: 客户端缓存机制客户端缓存机制n目的目的: 如果客户端缓存了最新如果客户端缓存了最新的请求对象,则服务器不必重的请求对象,则服务器不必重复发送复发送n客户端客户端: 在在http请求报文中声请求报文中声明所缓存拷贝的生成日期明所缓存拷贝的生成日期If-modified-since: n服务器服务器: 如果客户端缓存的拷如果客户端缓存的拷贝是最新的,则在响应报文中贝是最新的,则在响应报文中不发请求的对象不发请求的对象: HTTP/1.0 304 Not Modifiedclientserverhttp请求报文If-modified-since: http响应报文HTTP/1.0 304 Not Modified对象未经修改http请求报文If-modified-since: http响应报文HTTP/1.1 200 OK对象已经修改应用层应用层53Web 缓存:代理服务器缓存:代理服务器 (proxy server)n用户设置浏览器用户设置浏览器: Web 访问经由访问经由代理服代理服务器务器 n客户端发送所有的客户端发送所有的 http 请求到请求到代理服务器代理服务器p代理服务器保存了请求的代理服务器保存了请求的对象对象: 代理服务器返回代理服务器返回请求的对象请求的对象 p否则代理服务器从原始否则代理服务器从原始服务器请求对象服务器请求对象,再将再将其返回给客户端其返回给客户端 目的目的: 满足客户端的请求而无需烦扰原始服务器满足客户端的请求而无需烦扰原始服务器clientProxyserverclienthttp requesthttp requesthttp responsehttp responsehttp requesthttp responseorigin serverorigin server应用层应用层54为何为何Web缓存缓存?前提前提: 缓存与客户端比较缓存与客户端比较“接近接近 “(e.g., 在同一在同一网络中网络中)n响应时间较短响应时间较短:缓存的设缓存的设备与客户端比较近备与客户端比较近n减少了往来与远程服务减少了往来与远程服务器间的数据流量器间的数据流量p因为从学校或本地因为从学校或本地ISP 通通往外部的链路往往是网络往外部的链路往往是网络瓶颈瓶颈originserverspublic Internetinstitutionalnetwork10 Mbps LAN1.5 Mbps access linkinstitutionalcache应用层应用层55实验:构建实验:构建Web服务器服务器(iis),使用使用Iris分析分析DNS和和Http协议协议nHttp是否加密传输?是否加密传输?nHttp的服务器监听端口是否必须是的服务器监听端口是否必须是80端口端口nHttp1.0和和1.1之间的区别之间的区别nWeb缓存真的存在么?缓存真的存在么?应用层应用层56用用telnet测试测试 http (客户端操作客户端操作)1. 用用Telnet 连接测试用的服务器(需要预先登录连接测试用的服务器(需要预先登录UNIX):打开打开 TCP 连接到连接到 port 80(默认的默认的http 服务器端口服务器端口) 位于位于 202.117.35.70后续键入的内容将发送到后续键入的内容将发送到202.117.35.70 的的 80 号端口号端口$telnet 202.117.35.70 802. 键入一条键入一条 http请求报文请求报文:GET /j1010/hello.htm HTTP/1.0将该指令键入后将该指令键入后 (按两次回车键按两次回车键), 就就将此最短之将此最短之 (但是完整的但是完整的) GET 请求发到了请求发到了 http 服务器服务器3. 请注意观察请注意观察http服务器发回的响应报文服务器发回的响应报文!应用层应用层57ftp: 文件传输协议文件传输协议n传输文件往来与远程主机传输文件往来与远程主机n客户端客户端/服务器模式服务器模式p客户端客户端: 启动传输启动传输 (无论与往来远程主机无论与往来远程主机)p服务器服务器: 远程主机远程主机nftp: RFC 959nftp 服务器服务器: 端口端口 21file transferFTPserverFTPuserinterfaceFTPclientlocal filesystemremote filesystemuser at host应用层应用层58ftp: 分离的控制分离的控制, 数据连接数据连接nftp客户端在客户端在 ftp 服务器的服务器的 端端口口21进行联系进行联系, 使用使用TCP作为作为传输协议传输协议n打开两个并行的连接打开两个并行的连接:p控制控制:在客户端和服务器之在客户端和服务器之间交换命令间交换命令, 响应。称为带响应。称为带外控制:外控制:“out of band control”p数据数据: 往来于服务器的文件往来于服务器的文件nftp 维持状态维持状态 (state): 当前当前目录、先前的认证信息等目录、先前的认证信息等FTPclien