




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第15章超文本传输协议 超文本传输协议HTTP HyperTextTransferProtocol 主要用于从WWW服务器传输超文本到本地浏览器 HTTP协议改变了传统的线性浏览方法 通过超文本环境实现文档间的快速跳转 实现高效浏览 超文本传输协议HTTP是应用层协议 常用的HTTP服务器有三个 共享软件APACHEWeb服务器 Apache是世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 由于其跨平台和安全性被广泛使用 是最流行的Web服务器端软件之一 同时Apache音译为阿帕奇 网景公司的企业服务器微软公司的Internet信息服务器 IIS 网景公司的企业服务器可在大多数平台上运行 微软公司的IIS仅在Windows平台上运行 第15章超文本传输协议 15 1统一资源定位符15 2超文本传输协议15 3一般格式15 4HTTP请求报文15 5HTTP响应报文 15 1统一资源定位符 统一资源定位符URL UniformResourceLocator 也称Web地址 俗称 网址 URL的完整格式有以下基本部分组成 协议 主机域名 IP地址 端口号 目录路径 文件名 1 协议协议是指定服务连接而使用的所有访问协议 下表表示常用的协议类型 2 主机域名 IP地址 主机域名 IP地址 指出WWW数据所在的服务器域名 例如 3 端口 port 服务器提供端口号表示客户访问不同资源类型 例如常见的WWW服务器提供端口号为80或8080 在URL中端口号可以省略 省略时连同前面的 一起省略 4 目录路径 path 目录路径指明服务器上存放被请求信息的路径 5 文件名 file 文件名是客户访问页面的名称 例如index htm 页面名称与设计时网页的源代码名称并不要求相同 由服务器完成两者之间的映射 路径表示资源在主机中的位置 路径描述采用的是UNIX下的路径格式 端口和路径都是可以省略的 例子 返回 15 2超文本传输协议 HTTP协议是作为一种请求 回答协议来实现的 客户请求从Web服务器上给他传输一页 Web服务器以那一页来应答 HTTP协议工作在应用层 一个客户将一个请求发送给HTTP服务器 通常在TCP的80号端口 HTTP服务器接受这个请求 并给客户发送一个合适的回答 实际的通讯一般不是持续连接的 并且非静态的 当HTTP服务器回答了客户的请求之后连接便撤销 直到发布了下一个请求 1 HTTP通信方式HTTP为客户 服务器通信提供了握手方式及消息传送格式 HTTP采用请求 响应的握手方式 HTTP定义的事务处理其运作的基本过程如下图所示 HTTP通信方式主要三种 1 点对点方式点对点方式是最简单的传输方式 用户经过请求与源服务器间通过HTTP建立起点对点的连接 2 具有中间服务器方式中间服务器系统充当通信中继功能 客户发出的请求通过中继到达相关的服务器 同样服务器的响应也要通过中继才能返回给客户 3 缓存方式缓存方式暂时保存一定时间内的客户请求及该客户请求所对应的服务器响应 这样的缓存便于处理新的客户请求 节省网络流量和当地计算资源 2 HTTP的安全性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协议对所有事务处理都加了首部 我们称之为元信息 即关于信息的信息 利用元信息可以进行有条件的请求 或报告一次事务处理是否成功 返回 15 3一般格式 HTTP信息采用RFC822的普通信息格式 信息包含请求行 状态行 start line 信息首部 message header 空行 null 和信息体 message body 请求行 状态行 信息首部 空行 信息行 1 请求行 状态行请求行 状态行指示本报文的请求类型或响应的状态等信息 在客户端发出的请求报文中指明请求类型 方法 URL HTTP版本号 在服务器发出的响应报文中指明HTTP版本号和服务器执行请求的状态信息 2 信息首部信息首部 message header 用于在客户端和服务器之间交换附加信息 HTTP信息首部有4类 一般首部 general header 请求首部 request header 响应首部 response header 实体首部 entity header 信息首部每行用一个首部名 值对表示 首部名和首部值用冒号分割 首部内容 1 一般首部 一般首部是请求和响应中都可以出现的用于描述报文的一般信息 如Cache control Connection Date MIME version Upgrade 首部名 首部值首部名 首部值 首部名 首部值 2 请求首部 仅出现在请求报文中 定义客户端的配置和客户端所期望的文档格式 如 Accept表明客户端可以接受的媒体格式Accept charset表明客户端可以处理的字符集Accept encoding表明客户端可以处理的编码机制Accept language表明客户端可以接受的语言Authorization表明客户端具有的权限From表明用户的e mail地址Host表示客户端的主机和端口号If modified since如果比定义的日期新则发送文件If match如果与给定匹配则发送文件 3 响应首部 仅出现在响应报文中 定义服务器的配置和关于请求的信息 如 Accept range服务器接受客户请求的范围Age文档的存在时间Public表明服务器所支持的方法列表Retry after定义服务器可用的日期Server服务器名和版本号 4 实体首部 给出文档主体数据的信息 实体头部主要出现在响应中 POST和PUT类型的请求也会使用实体头部 HTML的书看看FORM GET 请求的数据随HTTP请求头发过去POST 请求的数据在HTTP请求头发过去之后再发过去PUT 用于上传数据 Allow可用于URL的方法列表Content encoding定义编码机制Content language定义语言Content length表示文档的长度Content range定义文档的范围Content type定义媒体的类型Etag实体标签Expires给出实体可能变化的日期和时间Last modified给出实体上次变化的日期和时间Location定义产生和移动的文档的位置 3 信息体 message body 信息体是用来传递与请求或响应相关的实体的 使用传递编码 信息体是经过编码的实体 未使用传递编码 信息体就是实体本身 传递编码主要是用来增强保密性或让支持这种编码的接收者能正确接收 在客户的请求报文中 信息体存放POST PUT等请求向服务器传送的数据 在服务器发出的响应报文中 信息体存放服务器返回的客户所请求的页面 返回 15 4HTTP请求报文 在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隧道所用 信息首部可以有一个或多个行首部 每一个首部行由首部名 冒号 空格和首部值组成 返回 15 5HTTP响应报文 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主要用于从WWW服务器传输超文本到本地浏览器 URL规定了某一特定信息资源在WWW中存放地点的统一格式 即地址指针 统一资源定位符向浏览器提供了访问网页 资源 时需要的网页位置信息 URL的完整格式由以下基本部分组成 协议 主机域名 IP地址 端口号 目录路径 文件名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025执业药师继续教育答案
- 综合布线装维员技能操作考核试卷及答案
- 2025年主管护师考试应对技巧试题及答案
- 呼吸科VTE相关知识培训考试题(含答案)
- (完整版)土路肩施工方案
- 中心静脉维护理论考试试题及答案
- 急腹症的诊断与处理
- 化学检验员技能比武考核试卷及答案
- 经编机操作工专业知识考核试卷及答案
- 密闭鼓风炉备料工招聘考核试卷及答案
- 常见肿瘤AJCC分期手册第八版(中文版)
- 绿色施工专项方案(技术方案)
- 挂篮检查验收记录表
- 专业技术职务资格申报材料真实性承诺书
- 脓毒症指南课件
- 生产副总经理岗位职责标准版本(五篇)
- 对颈椎概念和命名的再认识
- 华为信息安全宣传
- 物业管理供方管理程序
- GB/T 3730.2-1996道路车辆质量词汇和代码
- GB 25585-2010食品安全国家标准食品添加剂氯化钾
评论
0/150
提交评论