已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络协议分析与测试 第六章HTTP协议 本章主要内容 6 1统一资源定位符6 2超文本传输协议6 3HTTP请求报文6 4HTTP响应报文 超文本传输协议HTTP HyperTextTransferProtocol 主要用于从WWW服务器传输超文本到本地浏览器 HTTP协议改变了传统的线性浏览方法 通过超文本环境实现文档间的快速跳转 实现高效浏览 超文本传输协议HTTP是应用层协议 常用的HTTP服务器有三个 共享软件APACHEWeb服务器网景公司的企业服务器微软公司的Internet信息服务器 IIS 网景公司的企业服务器可在大多数平台上运行 微软公司的IIS仅在Windows平台上运行 第一节统一资源定位符 6 1统一资源定位符 统一资源定位符URL UniformResourceLocator 也称Web地址 俗称 网址 URL的完整格式有以下基本部分组成 协议 主机域名 IP地址 端口号 目录路径 文件名 1 协议 指定服务连接而使用的所有访问协议 下表表示常用的协议类型 2 主机域名 IP地址 主机域名 IP地址 指出WWW数据所在的服务器域名 例如 3 端口 port 服务器提供端口号表示客户访问不同资源类型 例如常见的WWW服务器提供端口号为80或8080 在URL中端口号可以省略 省略时连同前面的 一起省略 4 目录路径 path 目录路径指明服务器上存放被请求信息的路径 5 文件名 file 文件名是客户访问页面的名称 例如index htm 页面名称与设计时网页的源代码名称并不要求相同 由服务器完成两者之间的映射 路径表示资源在主机中的位置 路径描述采用的是UNIX下的路径格式 端口和路径都是可以省略的 例子 第二节超文本传输协议 6 2超文本传输协议 HTTP协议是作为一种请求 回答协议来实现的 客户请求从Web服务器上给他传输一页 Web服务器以那一页来应答 HTTP协议工作在应用层 一个客户将一个请求发送给HTTP服务器 通常在TCP的80号端口 HTTP服务器接受这个请求 并给客户发送一个合适的回答 实际的通讯一般不是持续连接的 并且非静态的 当HTTP服务器回答了客户的请求之后连接便撤销 直到发布了下一个请求 1 HTTP通信方式HTTP为客户 服务器通信提供了握手方式及消息传送格式 HTTP采用请求 响应的握手方式 HTTP定义的事务处理其运作的基本过程如下图所示 HTTP通信方式主要三种 1 点对点方式点对点方式是最简单的传输方式 用户经过请求与源服务器间通过HTTP建立起点对点的连接 2 具有中间服务器方式中间服务器系统充当通信中继功能 客户发出的请求通过中继到达相关的服务器 同样服务器的响应也要通过中继才能返回给客户 3 缓存方式缓存方式暂时保存一定时间内的客户请求及该客户请求所对应的服务器响应 这样的缓存便于处理新的客户请求 节省网络流量和当地计算资源 2 HTTP的安全性可以通过加密和鉴别来实现 最通常的方法是使用安全套接字层 SSL 安全套接字层SSL工作在TCP IP的传输层和应用层之间 在客户和服务器之间的所有传输都被SSL加密和解密 下图显示的是一个典型的SSL通信顺序 SSL通信工作过程如下 1 客户机发送安全会话请求消息 此消息包括SSL版本 客户机支持的密码族和客户机支持的数据压缩方法等 2 服务器发送响应消息和服务器数字证书 含服务器的公钥 响应消息包含密码方法和由服务器选择的数据压缩方法 以及会话标识等 如果服务器需要对客户进行认证 可选 则向客户发出 证书请求 消息 消息中包含服务器支持的数字证书类型的列表和可接受的认证中心的专有名称 3 客户机 Web浏览器 将验证服务器数字证书的有效性并检查服务器的响应消息参数是否可以接受 如果服务器请求客户机的证书 客户机将发送数字证书 如果没有合适的数字证书可用 客户机将发送 没有证书 警告 如果客户机认证是强制性的 服务器将会使会话失败 4 客户机发送 客户机密钥交换 消息 此消息包含随机产生的会话密钥 报文鉴别码 MAC 密钥 用服务器的公钥加密的 以及用于加密和报文鉴别的密钥材料 如果客户机发送数字证书给服务器 客户机将发出签有客户机的专用密钥的 证书验证 消息 通过验证此消息的签名 服务器可以显式验证客户机数字证书的所有权 5 服务器发送 已完成 消息响应 SSL握手结束 随后的所有的数据将被加密和解密 URL中包含HTTPS 3 HTTP主要特点1 简单HTTP协议在客户与服务器连接后 要求客户必须传送的信息只是请求方法和路径 HTTP协议规范定义的几种请求方法 实际上常用的只是其中的GET HEAD POST三种 由于HTTP简单 使得HTTP服务器程序规模小且简单 与其它协议相比时间开销小 HTTP协议的通信速度很快 可以有效地处理大量请求 得到了广泛的使用 2 无连接性HTTP是一个无连接性协议 HTTP1 0 每次连接只处理一个请求 并且客户接到服务器应答后立即断开连接 HTTP1 1提供对持续连接的支持 3 无状态性HTTP是无状态的协议 HTTP无状态性使客户与服务器连接通信运行速度快 服务器应答也快 但是 因为无状态性 协议对事务处理是没有记忆的和独立的 所以 为了满足后续事务处理需要前面事务的有关信息的情况 这些前面事务的有关信息必须在协议外面保存 这便导致每次连接要传送较多的信息 4 元信息HTTP协议对所有事务处理都加了首部 我们称之为元信息 即关于信息的信息 HTTP协议通信过程 1 URL自动解析2 获取IP 建立TCP连接3 客户端浏览器向服务器发出HTTP请求4 Web服务器应答 并向浏览器发送数据HTTP 1 1200OK5 Web服务器关闭TCP连接 第三节HTTP请求报文 6 3HTTP请求报文 在HTTP报文中 大多数请求报文没有实体数据 请求报文的格式如图所示 常用的HTTP请求的方法有GET HEAD PUT POST DELETE LINK UNLINK七种方法 其中GET HEAD POST方法被大多数服务器支持 1 GET方法GET方法的目的是取回由URL指定的资源 若对象是文件 则GET取的是文件内容 若对象是程序或描述 则GET取的是该程序执行的结果 或该描述的输出 若对象是数据库查询 则GET取的是查询的结果 GET允许通过使用IF语句来增加附加的灵活性 即条件GET 当在IF语句中的条件得到满足时 数据便被传输 如果Web页在最近没有被更新 HTTP客户便可以使用Web页在缓冲区的拷贝 这样可以充分利用网络带宽 2 HEAD方法HEAD方法要求服务器查找某对象的元信息而不是对象本身 仅要求服务器返回关于文档的信息 而非文档本身 例如用户想知道对象的大小 对象的最后一次修改的时间等 HEAD方法和GET方法的工作非常类似 只是信息体不被返回到客户那里 3 POST方法POST方法从客户向服务器传送数据 用来请求HTTP服务器将附带的数据当作HTTP服务器一个新的记录来接收 这种方法可被用来将消息发给一个新闻组 或向HTTP服务器提交一个HTML表格 或者将一个记录附加到HTTP服务器上驻留的一个数据库上去 4 PUT方法PUT方法是用来请求将这个请求中所发送的数据储存到请求消息中表明的资源处 如果数据已经存在 则此数据将被看成已存在数据的一个修改 与POST方法的不同之处 数据的目标位置可以规定好 5 DELETE方法DELETE方法是用来请求HTTP服务器删除在请求消息中表明的资源 这个方法可能被人工干预或HTTP服务器上的安全设置所超越 仅当服务器同意删除这个资源时 才会发送一个成功应答 6 TRACE方法TRACE方法用来确保HTTP服务器所接收到的数据是正确的 TRACE的回答是实际的HTTP请求 允许对HTTP请求进行测试和调试 7 CONNECT方法CONNECT方法被保留为安全接口层SSL隧道所用 第四节HTTP响应报文 6 4HTTP响应报文 HTTP响应报文一般都带有实体数据 响应报文的格式如图所示 1 状态行 status line 响应信息中的状态行由协议版本号 数字式的状态码 status code 以及这个状态码对应的状态短语 Reason Phase 组成 响应信息中 状态行以后的内容均使用MIME进行编码 版本 HTTP1 1 HTTP1 0 HTTP0 9状态码 3位十进制数的状态编码 100 199信息200 299成功300 399重定向400 499客户端错500 599服务器错状态短语 对状态码的文字解释 HTTP1 1正被定义为新的HTTP协议的标准 一些新特性已被增加到最新版本的HTTP协议中 包括如下这些 固定的连接 HTTP1 1允许在同一个连接中服务于多重请求 此协议以前的实现方法要求为每一个在一个Web页上嵌入的图像建立一个独立的连接 流水线技术 这个特性允许给一个Web服务器发送附加的请求 这可在他们初始请求的回答信号到达之前发生 这将导致一个巨大的性能改进 缓冲区指针 实现缓冲区指针允许客户和服务器的缺省缓冲区算法可以被调用或优化 主机标题 HTTP1 1协议允许多重主机名与一个单独的IP地址相关联 这便除去了给一个驻留许多虚拟服务器的Web服务器配置多个IP地址的需要了 这个主机标题用来确定请求应该被导向哪个虚拟服务器 PUT和DELETE选项 这些命令允许一个远程管理者通过使用一个标准的Web浏览器来记入或删除一些内容 HTTP重定向 当原始的主页不能访问或被删除时 这个特性允许一个管理者将一个用户重定向到一个备选的主页或Web站点 HTTP通信 HTTP请求消息 当客户端和服务端建立TCP连接后 客户端就会向服务器发送一个请求信息 如 1 GET HTTP 1 1 2 Accept image gif image x xbitmap image jpeg 客户端可识别的内容类型列表 3 Accept Language zh cn客户端所能解释的语言 简体中文 4 UA CPU x86 5 Accept Encoding gzip deflate客户端可以解释的类型 6 User Agent Mozilla 4 0 compatible MSIE7 0 WindowsNT 客户端浏览器型号 7 Host 提交请求页面 8 Connection Keep AliveTCP连接保持打开 9 该请求信息主要由4部分组成 请求方法URI协议 版本 以上代码第 1 行 GET 表示请求方法 HTTP 1 1代表协议和协议的版本 HTTP请求可以使用多种请求方法 最常用的为GET和POST方法请求头 2 8 行 包含许多有关客户端环境和请求正文的有用信息 空行 9 请求头和请求正文之间是一个空行 这个行非常重要 表示请求头已经结束 接下来是正文 这个行非常重要 它表示请求头已经结束 接下来是请求正文 请求正文 请求正文中可以包含客户提交的查询字符串信息 如用户名和密码等 GET和POST方法 GET方法是默认的HTTP请求方法 我们日常用GET方法来提交表单数据 然而用GET方法提交的表单数据只经过了简单的编码 同时它将作为URL的一部分向Web服务器发送 因此 如果使用GET方法来提交表单数据就存在着安全隐患 同时这个URL长度还有限制 不允许超过1k POST方法是GET方法的一个替代方法 它主要是向Web服务器提交表单数据 尤其是大批量的数据 POST方法克服了GET方法的一些缺点 通过POST方法提交表单数据时 数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器 这就克服了GET方法中的信息无法保密和数据量太小的缺点 因此 出于安全的考虑以及对用户隐私的尊重 通常表单提交时采用POST方法 HTTP响应消息 1 HTTP 1 1200OK 2 Cache Control private max age 0 3 Date Fri 27Feb200907 53 36GMT 4 Expires 1 5 Content Type text html charset UTF 8 6 Set Cookie PREF ID cc4a31ab6792ef2c NW 1 TM 1235721216 LM 1235721216 S q1hQBu 1KdamAWK expires Sun 27 Feb 201107 53 36GMT path domain 7 Content Encoding gzip 8 Server gws 9 Transfer Encoding chunked 10 11 ddc 响应信息1 1 协议状态描述 HTTP 1 1表示协议版本 200OK表示服务器已经成功处理了客户端发出的请求 HTTP应答码由3位数字构成 其中首位数字定义了应答码的类型 1XX 信息类 Information 表示收到Web浏览器请求 正在进一步的处理中2XX 成功类 Successful 表示用户请求被正确接收 理解和处理例如 200OK3XX 重定向类 Redirection 表示请求没有成功 客户必须采取进一步的动作 4XX 客户端错误 ClientError 表示客户端提交的请求有错误例如 404NOTFound 意味着请求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 背课件教学课件
- 医疗数据安全体系:区块链架构设计
- 云南省昭通市永善一中2026届高三英语第一学期期末统考模拟试题含解析
- 医疗数据安全与医疗数据安全规范
- 胃癌科普课件
- 医疗数据存储的区块链安全与产业升级
- 安徽省安庆市望江县2025-2026学年八年级上学期10月月考数学试题【含答案】
- 医疗数据区块链完整性与全球健康治理
- 肿瘤登记流程培训课件
- 肿瘤姑息治疗课件
- 《SJG29-2023合成材料运动场地面层质量控制标准》
- 中考数学压轴题专项突破:胡不归模型(含答案及解析)
- 办公室装修改造合同协议
- 《德州扒鸡》课件
- 可再生水使用与管理方案计划
- 公务员2020年国考《申论》真题及答案(省级)
- 安桥功放TX-SR508使用说明书
- 小升初拓展培优:环形跑道问题(讲义)-2023-2024学年六年级下册数学人教版
- 2024年劳务合同协议样本(二篇)
- 汉中市考录公务员(人民警察)政审表
- 卓越绩效管理手册(含质量环境职业健康安全四合一手册)
评论
0/150
提交评论