http协议工作原理.ppt_第1页
http协议工作原理.ppt_第2页
http协议工作原理.ppt_第3页
http协议工作原理.ppt_第4页
http协议工作原理.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HTTP协议基础 1 HTTP与WEB服务 HTTP应用层协议是Web的核心 HTTP协议运行在客户程序和服务器程序中 不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流 HTTP定义Web客户 即浏览器 如何从web服务器请求Web页面 以及服务器如何把Web页面传送给客户 Web页面 webpage 也称为文档 由多个对象构成 对象 object 仅仅是可由单个URL寻址的文件 例如HTML文件 JPG图像 GIF图像 JAVA小应用程序 语音片段等 例如 如果一个Web页面包含HTML文本和5个JPEG图像 那么它由6个对象构成 即基本H1ML文件加5个图像 浏览器是web的用户代理 它显示所请求的Web页面 并提供大量的导航与配置特性 Web浏览器还实现HTTP的客户端Web服务器存放可由URL寻址的Web对象 web服务器还实现HTTP的服务器端 Http工作流程 HTTP客户端启动TCP连接 创建插口 到服务器 端口80 一旦建立连接 浏览器进程和服务器进程就可以通过各自的套接字来访问 http报文 应用层协议报文 在浏览器 httpclient 和Web服务器 httpserver 之间进行交换 客户端套接字 客户往自己的套接字发送HTTP请求消息 也从自己的套接字接收HTTP响应消息 服务器从自己的套接字接收HTTP请求消息 也往自己的套接字发送HTTP响应消息 关闭TCP连接注意 在向客户发送所请求文件的同时 服务器并没有存储关于该客户的任何状态信息 即便某个客户在几秒钟内再次请求同一个对象 服务器也不会响应说 自己刚刚给它发送了这个对象 所以http是 无状态 stateless 的服务 不保留任何访问过的请求信息 当用户请求一个Web页面 譬如说点击某个超链接 时 浏览器把请求该页面中各个对象的HTTP请求消息发送给服务器 服务器收到请求后 以运送含有这些对象HTTP响应消息作为响应 HTTP连接的类型 非持久连接和持久连接HTTP既可以使用非持久连接 nonpersistentconnection 也可以使用持久连接 persistentconnection HTTP 1 0使用非持久连接 HTTP 1 1默认使用持久连接 1非持久连接 非持久连接情况下从服务器到客户传送一个Web页面的步骤 假设该贝面由1个基本HTML文件和10个JPEG图像构成 而且所有这些对象都存放在同一台服务器主机中 再假设该基本HTML文件的URL为 下面是具体步骡 1 HTTP客户初始化一个与服务器主机中的HTTP服务器的TCP连接 HTTP服务器使用默认端口号80监听来自HTTP客户的连接建立请求 2 HTTP客户经由与TCP连接相关联的本地套接字发出 个HTTP请求消息 这个消息中包含路径名 somepath index html 3 HTTP服务器经由与TCP连接相关联的本地套接字接收这个请求消息 再从服务器主机的内存或硬盘中取出对象 somepath index html 经由同一个套接字发出包含该对象的响应消息 4 HTTP服务器告知TCP关闭这个TCP连接 不过TCP要到客户收到刚才这个响应消息之后才会真正终止这个连接 5 HTTP客户经由同一个套接字接收这个响应消息 TCP连接随后终止 该消息标明所封装的对象是一个HTML文件 客户从中取出这个文件 加以分析后发现其中有10个JPEG对象的引用 6 给每一个引用到的JPEG对象重复步骡1 4 2持久连接 持久连接情况下 服务器在发出响应后让TCP连接继续打开着 同一对客户 服务器之间的后续请求和响应可以通过这个连接发送 通常 HTTP服务器在某个连接闲置一段特定时间后关闭它 而这段时间通常是可以配置的 持久连接分为不带流水线 withoutpipelining 和带流水线 withpipelining 两个版本 如果是不带流水线的版本 那么客户只在收到前一个请求的响应后才发出新的请求 HTTP 1 1的默认模式使用带流水线的持久连接 这种情况下 HTTP客户每碰到一个引用就立即发出一个请求 因而HTTP客户可以一个接一个紧挨着发出各个引用对象的请求 服务器收到这些请求后 也可以一个接一个紧挨着发出各个对象 3 3流水线和非流水线方式 流水线方式指没有收到上一个请求的对象就发送新的对象的请求非流水线方式指必须要等到上一个请求的对象到达之后再发送新的对象的请求 4 HTTP消息格式 HTTP规范1 0 RPcl945 和HTTP1 1 RFC2616 定义了HTTP消息的格式 HTTP消息分为请求消息和响应稍息两类 4 1HTTP请求消息 下面是一个典型的HTTP请求消息 GET somedir page htmlHTTP 1 1Host Connection closeUser agent Mozilla 4 0Accept language zh cn 额外的回车符和换行符 首先 这个消息是用普通的ASCII文本书写的 其次 这个消息共有5行 每行以一个回车符和一个换行符结束 最后一行后面还有额外的一个回车特和换行符 请求行有3个宁段 方法字段 URL字段 HTTP版本宇段 方法字段有若干个值可供选择 包括GET POST和HEAD HTTP请求消息绝大多数使用GET方法 头部行Host 定存放所请求对象的主机 请求消息中包含头部Connection close是在告知服务器本浏览器不想使用持久连接 服务器发出所请求的对象后应关闭连接 User agent头部行指定用户代理 也就是产生当前请求的浏览器的类型 本例的用户代理是Mozilla 4 0 它是Nelscape浏览器的一个版本 HTTP请求标准格式Request 请求报文的类型是由它所采用的方法决定的 附属体不在GET方法中使用 而是在POST方法中使用 POST方法适用于需由用户填写表单的场合 如往google搜索引擎中填入待搜索的词 用户提交表单后 HEAD方法与GET方法类似 两者的差别只是服务器在对HEAD方法的响应消息中去掉了所请求的对象 其他内容则与对GET方法的响应消息一样 HEAD方法通常用于HTTP服务器软件开发人员进行调试 4 2HTTP响应消息 下面是一个典型的HTTP响应消息 HTTP 1 12000KConnectlon closeDate Thu 13Oct200503 17 33GMTServer Apache 2 0 54 Unix Last Nodified Mon 22Jun199809 23 24GMTContent Length 682lContent Type text html 数据数据数据数据数据 HTTP响应标准格式Response 版本 状态码 短语 首部字段名 首部行 值 首部字段名 值 实体主体 有些响应报文不用 状态行 空格 回车换行 CRLF CRLF CRLF CRLF 响应报文的开始行是状态行 状态行包括三项内容 即HTTP的版本 状态码 以及解释状态码的简单短语 5HTTP常用状态码 1xx表示通知信息的 如请求收到了或正在进行处理 2xx表示成功 如接受或知道了 3xx表示重定向 表示要完成请求还必须采取进一步的行动 4xx表示客户的差错 如请求中有错误的语法或不能完成 5xx表示服务器的差错 如服务器失效无法完成请求 2000K 请求成功 所请求信息在响应消息中返回 301MovedPermanently 所请求的对象己永久性迁移 新的URL在本响应消息的Location 头部指出 客户软件会自动请求这个新的URL 400BadRequest 表示服务器无法理解相应请求的普通错误的状态码 404NotFound 服务器上不存在所请求的文档 HTTPVersionNotSupport 服务器不支持所请求的HTTP协议版本 Cookies 保存 状态 服务器产生一个 服务器认识这个 以备不时之需 认证记忆用户的前序访问 先前的选择服务器在响应报文中发送 cookie 给客户端Set cookie 1678453客户端可以在后继的请求中发送 cookie cookie 1678453 client server 普通http请求报文 普通http响应报文 Set cookie cookie 特定的 cookie 特定的 ConditionalGET 客户端缓存机制 目的 如果客户端缓存了最新的请求对象 则服务器不必重复发送客户端 在http请求报文中声明所缓存拷贝的生成日期If modified since 服务器 如果客户端缓存的拷贝是最新的 则在响应报文中不发请求的对象 HTTP 1 0304NotModified client server http请求报文If modified since 对象未经修改 http请求报文If modified since http响应报文HTTP 1 1200OK 对象已经修改 用telnet测试http 客户端操作 1 用Telnet连接测试用的服务器 打开TCP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论