




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Page 1第15章 超文本传输协议超文本传输协议超文本传输协议HTTP(HyperText Transfer Protocol)主要用于客户机浏览器与主要用于客户机浏览器与WWW服务服务器之间的通信与网页文件的传递。器之间的通信与网页文件的传递。Page 2常用的常用的HTTP客户软件客户软件(浏览器浏览器) :IE,FireFox等。等。常用的常用的HTTP服务器软件服务器软件(WWW服务器软件服务器软件):IIS :Microsoft的的Internet Information Server。 IIS是一种是一种Web服务组件,其中包括服务组件,其中包括WWW服务服务器、器、FTP服务器
2、、服务器、NNTP服务器和服务器和SMTP服务器。服务器。 Apache:市场占有率达市场占有率达60%左右。源代码开放、左右。源代码开放、开放的开发队伍、支持跨平台的应用开放的开发队伍、支持跨平台的应用(可以运行可以运行在在Unix、Windows、Linux系统平台上系统平台上) 、可、可移植性好。移植性好。Tomcat:是一个开放源代码、运行是一个开放源代码、运行servlet和和JSP Web的基于的基于Java的的WWW服务器。服务器。 Page 3第15章 超文本传输协议15.1 统一资源定位符统一资源定位符15.2 超文本传输协议超文本传输协议15.3 一般格式一般格式15.4
3、HTTP请求报文请求报文15.5 HTTP响应报文响应报文Page 415.1 统一资源定位符统一资源定位符 统一资源定位符统一资源定位符URL (Uniform Resource Locator),也称也称Web地址,俗称地址,俗称“网址网址”,是因特网上资源是因特网上资源的标准地址的标准地址。URL的完整格式:的完整格式: 协议协议 :/ 主机域名主机域名(IP地址地址) :端口号端口号 + 路径路径 +文件名文件名 如:如:http:/ 51协议协议 协议是用来读取文件资源的协议,下表为常协议是用来读取文件资源的协议,下表为常用的协议。用的协议。协协 议议 名名 称称功功 能能httph
4、ttp超文本文件服务超文本文件服务ftpftp文件传输服务文件传输服务gophergopherGopherGopher服务服务newsnewsUsenetUsenet新闻组服务新闻组服务telnettelnet远程主机连接服务远程主机连接服务waiswaisWAISWAIS服务器连接服务服务器连接服务Page 62主机域名主机域名(IP地址地址) 主机域名主机域名(IP地址地址)指出因特网资源所在的服务器的域指出因特网资源所在的服务器的域名名(IP地址地址) ,例如,例如。3端口端口 在在URL中中端口号可以省略端口号可以省略。如果省略,则表示使用。如果省略,则表示使用服务器进程默认的熟知端口
5、,如服务器进程默认的熟知端口,如HTTP服务器进程默服务器进程默认使用的是认使用的是TCP 80端口。客户可以通过不同的端口端口。客户可以通过不同的端口访问服务器上的不同进程,例如某访问服务器上的不同进程,例如某HTTP服务器可同服务器可同时提供端口号为时提供端口号为80或或8080。4目录路径目录路径 指明因特网资源在服务器上存放的路径。指明因特网资源在服务器上存放的路径。5文件名文件名 文件名是因特网资源的名称,例如文件名是因特网资源的名称,例如index.html。 Page 7端口、路径和文件名都是可以省略的端口、路径和文件名都是可以省略的。例子:例子:http:/ 815.2 超文本
6、传输协议超文本传输协议HTTP协议是一种协议是一种请求应答请求应答协议。客户请求协议。客户请求Web服务器给它传输信息服务器给它传输信息(一般是网页一般是网页);Web服务器以客户所请求的信息作为应答。服务器以客户所请求的信息作为应答。HTTP协议工作在协议工作在应用层,且基于传输层的应用层,且基于传输层的TCP,服务器进程通常使用,服务器进程通常使用TCP 80号端口号端口。Page 91HTTP通信方式通信方式客户客户服务器服务器发送请求消息发送请求消息发送响应消息发送响应消息建立TCP连接关闭TCP连接Page 10HTTP三种通信方式:三种通信方式: 1) 点对点方式点对点方式 是最简
7、单的通信方式,客户直接与服务器通过是最简单的通信方式,客户直接与服务器通过HTTP建立起点对点的连接。建立起点对点的连接。 2) 中间服务器方式中间服务器方式 中间服务器系统充当通信中间服务器系统充当通信中继中继功能,客户发出的功能,客户发出的请求通过中继到达相关的服务器,同样服务器的响请求通过中继到达相关的服务器,同样服务器的响应也要通过中继才能返回给客户应也要通过中继才能返回给客户 。如。如HTTP代理服代理服务器。务器。 3) 缓存方式缓存方式 某设备某设备(通常是代理服务器通常是代理服务器)的缓存中保存一定时的缓存中保存一定时间内的客户请求及其服务器响应,当新的客户请求间内的客户请求及
8、其服务器响应,当新的客户请求到来时,先查找缓存。可节省网络流量和当地资源。到来时,先查找缓存。可节省网络流量和当地资源。Page 112. HTTP的安全性的安全性 HTTP安全性可以通过使用安全性可以通过使用安全套接层安全套接层(SSL: Secure Sockets Layer)协议协议来实现。来实现。SSL工作在应用层和传工作在应用层和传输层之间,输层之间,为高层协议为高层协议提供加密和身份认证服务提供加密和身份认证服务。SSL最普通的应用是网页传输中的最普通的应用是网页传输中的HTTPS。 下图是一个典型的下图是一个典型的SSL通信。通信。 服务器发送响应消息、 证书 (包含服务器的公
9、共密钥) 客户机和服务器都知道了对称密钥, 用它来加密会话期间的最终用户数据 客户机产生随机对称密钥,并用服务器公钥加密 客户机用已知的 CA 列表来认证证书 客户机发出安全会话请求 客 户 机 服 务 器 Page 12 SSL对对HTTP传输内容的加密采用的是对称加密传输内容的加密采用的是对称加密。为了保证对称密钥可以被对方安全地接收到,为了保证对称密钥可以被对方安全地接收到,对称对称密钥的传送使用了非对称加密密钥的传送使用了非对称加密。 这样做的好处是:对称加密技术比非对称加密技这样做的好处是:对称加密技术比非对称加密技术的速度快,可用来加密较大的传输内容,但密钥术的速度快,可用来加密较
10、大的传输内容,但密钥传递不安全;非对称加密技术相对较慢,但不存在传递不安全;非对称加密技术相对较慢,但不存在私密密钥的传递过程,比较安全,可用来安全传递私密密钥的传递过程,比较安全,可用来安全传递对称加密的密钥。对称加密的密钥。 另外,另外,SSL可用通过可用通过证书证书来验证对方身份的合法来验证对方身份的合法性。性。 Page 13客户客户服务器服务器客户机发送安全会话请求客户机发送安全会话请求服务器发送响应消息服务器发送响应消息客户机用已知的客户机用已知的CA 列表来认证证书列表来认证证书客户机产生随机对称密钥客户机产生随机对称密钥,并用服务器并用服务器公钥加密发送安全会话请求公钥加密发送
11、安全会话请求客户机和服务器都知道了对称密钥客户机和服务器都知道了对称密钥,用用它来加密会话期间的最终用户数据它来加密会话期间的最终用户数据 客户机发送安全会话请求消息,客户机发送安全会话请求消息,此消息包括此消息包括SSL版本、客户机支版本、客户机支持的加密方法和数据压缩方法等。持的加密方法和数据压缩方法等。 服务器发送响应消息和服务器数字证书(含服务器服务器发送响应消息和服务器数字证书(含服务器的公钥),响应消息包含服务器选择的加密方法和的公钥),响应消息包含服务器选择的加密方法和数据压缩方法等。如果服务器需要对客户进行认证数据压缩方法等。如果服务器需要对客户进行认证(可选),则向客户发出(
12、可选),则向客户发出“证书请求证书请求”消息,此时消息,此时消息中包含服务器支持的数字证书类型的列表和可消息中包含服务器支持的数字证书类型的列表和可接受的认证中心的名称。接受的认证中心的名称。 客户机(客户机(Web 浏览器)验证服务器数字证书的有效浏览器)验证服务器数字证书的有效性,包括:证书是否过期,发行服务器证书的性,包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器是否可靠,发行者证书的公钥能否正确解开服务器证书的证书的“发行者的数字签名发行者的数字签名”,服务器证书上的域,服务器证书上的域名是否和服务器的实际域名相匹配。如果验证没有名是否和服务器
13、的实际域名相匹配。如果验证没有通过,通信将结束。通过,通信将结束。 如果服务器要求验证客户身份,客户机将发送自己如果服务器要求验证客户身份,客户机将发送自己的数字证书;如果客户没有合适的数字证书可用,的数字证书;如果客户没有合适的数字证书可用,则会话失败。则会话失败。如果服务器要求对客户进行认证,服务器将检验客户证书,如果服务器要求对客户进行认证,服务器将检验客户证书,验证成功后发送验证成功后发送“已完成已完成”消息响应,消息响应,SSL 握手结束。握手结束。随后双方的所有的数据将用对称密钥进行加密和解密。随后双方的所有的数据将用对称密钥进行加密和解密。 客户机发送客户机发送“密钥密钥”消息。
14、此消息包含客户产生的对称消息。此消息包含客户产生的对称密钥密钥(用服务器的公钥加密用服务器的公钥加密) 。如果需要的话,客户机还。如果需要的话,客户机还会发送自己的数字证书给服务器。会发送自己的数字证书给服务器。Page 1415.3 HTTP报文格式报文格式 HTTP报文报文RFC 822 包含:请求行包含:请求行/状态行、信息状态行、信息首部、空行和信息体。首部、空行和信息体。 请求报文请求报文 响应报文响应报文 状态行状态行信息首部信息首部空空 行行信息信息体体请求行请求行信息首部信息首部空空 行行信息体信息体Page 15 客户端发出的请求报文的客户端发出的请求报文的请求行请求行包含:
15、请求类包含:请求类型型(方法方法)、URL、HTTP版本号;版本号;请求行请求行信息首部信息首部空空 行行信息信息体体请求类型请求类型URLHTTP版本版本空格空格请求行请求行Page 16 服务器返回的应答报文中的服务器返回的应答报文中的状态行状态行包含:包含:HTTP版本、状态码和状态短语。版本、状态码和状态短语。状态行状态行信息首部信息首部空空 行行信息体信息体HTTP版本版本 状态码状态码状态短语状态短语空格空格状态行状态行Page 17信息首部信息首部信息首部由多行组成,格式如下:信息首部由多行组成,格式如下:信息首部中的内容有信息首部中的内容有4类:类:一般首部一般首部请求首部请求
16、首部 或或 响应首部响应首部实体首部实体首部首部名:首部值首部名:首部值首部名:首部值首部名:首部值首部名:首部值首部名:首部值Page 18 (1) 一般首部一般首部:请求和响应报文的信息首部中请求和响应报文的信息首部中都可以出现的内容,用于描述报文的一般信都可以出现的内容,用于描述报文的一般信息息,如,如Cache-control、Connection、Date、MIME-version、Upgrade。Page 19(2)请求首部请求首部:仅出现在请求报文的信息首部中,:仅出现在请求报文的信息首部中,定义客户端的配置和客户端所期望的文档格定义客户端的配置和客户端所期望的文档格式式。如:。
17、如:Accept 表明客户端可以接受的文件格式表明客户端可以接受的文件格式Accept-charset 表明客户端可以处理的字符集表明客户端可以处理的字符集Accept-encoding 表明客户端可以处理的编码机制表明客户端可以处理的编码机制Accept-language 表明客户端可以接受的语言表明客户端可以接受的语言Authorization 表明客户端具有的权限表明客户端具有的权限From 表明用户的表明用户的e-mail地址地址Host 表示客户端的主机和端口号表示客户端的主机和端口号If-modified-since 如果比定义的日期新则发送文件如果比定义的日期新则发送文件If-m
18、atch 如果与给定匹配则发送文件如果与给定匹配则发送文件Page 20(3)响应首部响应首部:仅出现在响应报文的信息首部中,:仅出现在响应报文的信息首部中,定义定义服务器的配置和客户端可以请求的信息服务器的配置和客户端可以请求的信息。如:如:Accept-range 给出服务器可接受的请求范围给出服务器可接受的请求范围Age 文档的存在时间文档的存在时间 Public 服务器所支持方法的列表服务器所支持方法的列表Retry-after 定义服务器可用的日期定义服务器可用的日期Server 服务器名和版本号服务器名和版本号Page 21(4)实体首部实体首部:给出所传颂的文档主体的信息给出所传
19、颂的文档主体的信息。实。实体首部体首部主要出现在响应报文中主要出现在响应报文中,但也可以出现在但也可以出现在POST和和PUT类型的请求中类型的请求中。Allow 可用于可用于URL的方法列表的方法列表Content-encoding 定义编码机制定义编码机制Content-language 定义语言定义语言Content-length 表示文档的长度表示文档的长度Content-range 定义文档的范围定义文档的范围Content-type 定义媒体的类型定义媒体的类型Etag 实体标签实体标签Expires 给出实体可能变化的日期和时间给出实体可能变化的日期和时间Last-modifie
20、d 给出实体上次变化的日期和时间给出实体上次变化的日期和时间Location 定义产生和移动的文档的位置定义产生和移动的文档的位置Page 223. 信息体信息体 在在请求报文中请求报文中,信息体用于存放,信息体用于存放POST、PUT类型请求中客户向服务器传送的数据;类型请求中客户向服务器传送的数据; 在在响应报文中响应报文中,信息体用于存放服务器返回,信息体用于存放服务器返回的客户所请求的页面。的客户所请求的页面。返回返回Page 2315.4 HTTP请求报文请求报文 在在HTTP报文中,大多数请求报文没有信息体。报文中,大多数请求报文没有信息体。请求报文的格式如图所示:请求报文的格式如
21、图所示: 请求报文的请求报文的方法方法有有GET、HEAD、PUT、POST、DELETE、LINK、UNLINK等方法,等方法,其中其中GET、HEAD、POST方法被大多数方法被大多数HTTP服务器支持。服务器支持。 Page 241) GET方法方法 GET方法的作用是获取由方法的作用是获取由URL指定的因特网资指定的因特网资源。源。若是若是文件文件,则,则GET获取的是文件内容;获取的是文件内容;若是若是程序或描述程序或描述,则,则GET获取的是该程序执行的结获取的是该程序执行的结果,或该描述的输出;果,或该描述的输出;若是若是数据库查询数据库查询,则,则GET获取的是查询的结果。获取
22、的是查询的结果。 GET允许通过使用允许通过使用IF语句来增加灵活性,即语句来增加灵活性,即条件条件GET。Page 252) HEAD方法方法 HEAD方法要求服务器返回某文档的信息,而非文档方法要求服务器返回某文档的信息,而非文档本身。例如获取文档的大小,文档的最后一次修改本身。例如获取文档的大小,文档的最后一次修改的时间等。的时间等。3) POST方法方法 POST方法方法可使客户向服务器传送数据可使客户向服务器传送数据。这种方法。这种方法用来向用来向HTTP服务器提交一个服务器提交一个HTML表格,或者将一表格,或者将一个数据记录添加到服务器的数据库中。个数据记录添加到服务器的数据库中
23、。Page 264)PUT方法方法 PUT方法用来方法用来将请求中所发送的数据存储到请将请求中所发送的数据存储到请求中指定的资源处求中指定的资源处。如果数服务器中据已经存。如果数服务器中据已经存在,则请求中数据将替换服务器中的数据。在,则请求中数据将替换服务器中的数据。与与POST方法的不同之处:此处方法的不同之处:此处数据的目标位置数据的目标位置可以指定可以指定。5)DELETE方法方法 DELETE方法是客户用来请求方法是客户用来请求HTTP服务器删服务器删除指定的资源。仅当服务器同意并删除这个资除指定的资源。仅当服务器同意并删除这个资源时,才会发送一个成功应答。源时,才会发送一个成功应答
24、。Page 2715.5 HTTP响应报文响应报文HTTP响应报文一般都带有信息体,响应报响应报文一般都带有信息体,响应报文的格式如图所示。文的格式如图所示。Page 281.状态行状态行 响应报文中的状态行由响应报文中的状态行由HTTP版本号版本号、状态码状态码、状态状态短语短语组成。响应报文中,状态行后面的内容均使用组成。响应报文中,状态行后面的内容均使用MIME进行编码。进行编码。版本版本:HTTP/0.9; HTTP/1.0; HTTP/1.1状态码状态码:3位十进制数。位十进制数。100199 提供信息提供信息200299 表示成功表示成功300399 URL重定向重定向400499
25、 指示客户端错指示客户端错500599 指示服务器错指示服务器错状态短语状态短语:对状态码的文字解释。:对状态码的文字解释。HTTP版本版本 状态码状态短语空格空格状态行状态行Page 29举例举例:读取文档读取文档客户客户服务器服务器请求(方法)GET usr/bin/image1 HTTP/1.1Accept:image/gifAccept:image/jpeg响应HTTP/1.1 200 OKDate:Mon,04-Jan-07 13:15:14 GMTServer:ChallengerMIME-version:1.0Content-length:2048(文档主体文档主体) 使用使用G
26、ET方法来读取路径为方法来读取路径为/usr/bin/image1的图象。的图象。请求行给出方法请求行给出方法(GET)、URL以及以及HTTP的版本(的版本(1.1)信息首部有信息首部有2行,给出了客户可以接受行,给出了客户可以接受GIF和和JPEG格式格式的图像。的图像。 响应报文包含状态行和响应报文包含状态行和4行的首部,这些首部定义日期、行的首部,这些首部定义日期、服务器、服务器、MIME版本和文档长度,文档放在信息体中。版本和文档长度,文档放在信息体中。Page 30举例:读取关于文档的信息举例:读取关于文档的信息客户客户服务器服务器响应HTTP/1.1 200 OKDate:Tue
27、,05-Jun-07 16:15:10 GMTServer:ChallengerMIME-version:1.0Content-type:text/htmlContent-length:1020请求(方法)HEAD /usr/user/file1.html HTTP/1.1Accept:*/* 使用使用HEAD方法来读取关于一个方法来读取关于一个HTML文档的信息。请文档的信息。请求行给出方法求行给出方法(HEAD)、URL以及以及HTTP的版本(的版本(1.1)信息首部只有一行,指出客户可以接受任何格式的文档。信息首部只有一行,指出客户可以接受任何格式的文档。此请求报文没有主体。此请求报文没
28、有主体。 响应报文包含状态行和响应报文包含状态行和5行的首部,这些首部定义日期、行的首部,这些首部定义日期、服务器、服务器、MIME版本、文档类型和文档长度,没有消息版本、文档类型和文档长度,没有消息体。体。Page 31服务器服务器举例:客户向服务器发送数据举例:客户向服务器发送数据客户客户响应HTTP/1.1 200 OKDate:Mon,08-May-07 10:45:10 GMTServer:ChallengerMIME-version:1.0Content-length:2000(文档的主体文档的主体)请求(方法)POST /cgi-bin/doc.pl HTTP/1.1Accept:*/*Accept:image/gifAccept:image/jpegContent-length:50(输入信息输入信息) 客户机使用客户机使用POST方法向服务器发送数据。请求行给出方法向服务器发送数据。请求行给出方法方法(POST)、URL以及以及HTTP的版本。信息首部有的版本。信息首部有4行,行,信息体中包含客户发送给服务器的输入信息。信息体中包含客户发送给服务器的输入信息。Page 32 HTTP协议的最新版本为协议的最新版本为1.1版本版本。HTTP 1.1新特新特性包括:性包括: 持续连接持续连接: 允许一个允许一个TCP连接服务于多个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路水运工程试验检测人员应试题及答案桥梁隧道工程
- 安徽省黄山市屯溪区2022-2023学年高三下学期高考第一模拟考试(一模)化学考点及答案
- 2025 年小升初临汾市初一新生分班考试英语试卷(带答案解析)-(牛津版)
- 尿毒症性心脏病患者护理查房
- 社区物业安全知识培训课件
- 统编版五年级语文上册第一单元拔尖测评卷(含答案)
- 北师大版五年级上册数学期末检测题(无答案)
- 荔湾电梯销售合同范本
- 浙江郊区厂房合同范本
- 猎头招聘合同范本
- 2024-2025学年辽宁省普通高中高三上学期9月开学联考物理试题(解析版)
- 2024-2025学年浙江Z20名校联盟高三第一次联考英语试题(解析版)
- 《卫生法》知识考试参考题库(含答案)
- 2024至2030年中国猪肉脯行业市场发展现状及潜力分析研究报告
- 2024广西专业技术人员继续教育公需科目参考答案(97分)
- 耳穴贴压技术操作评分标准
- 颅脑疾病CT诊断课件
- 假的体检报告单模板
- 2023年河北省民政行业职业技能大赛遗体火化师赛项参考赛题
- 《生物安全柜的使用》课件
- 比亚迪电动汽车无线充电技术研发
评论
0/150
提交评论