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

下载本文档

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

文档简介

1、 HTTP 协议基础 1、HTTP与WEB服务 nHTTP应用层协议是Web的核心。 nHTTP协议运行在客户程序和服务器程序中。 不同端系统上的客户程序和服务器程序通过 交换HTTP消息彼此交流。 nHTTP定义Web客户(即浏览器)如何从web服 务器请求Web页面,以及服务器如何把Web 页面传送给客户。 nWeb页面(web page,也称为文档)由多个对 象构成。对象(object)仅仅是可由单个URL寻 址的文件,例如HTML文件、JPG图像、GIF 图像、JAVA小应用程序、语音片段等。 n例如,如果一个Web页面包含HTML文本和5 个JPEG图像,那么它由6个对象构成,即基

2、本H1ML文件加5个图像。 n浏览器是web的用户代理,它显示所请求 的Web页面,并提供大量的导航与配置特 性。Web浏览器还实现HTTP的客户端 nWeb服务器存放可由URL寻址的Web对象, web服务器还实现HTTP的服务器端。 、Http工作流程 nHTTP客户端启动TCP连接(创建插口) 到服务 器, 端口 80。一旦建立连接,浏览器进程和 服务器进程就可以通过各自的套接字来访问。 nhttp 报文(应用层协议报文) 在浏览器 (http client) 和Web服务器(http server)之间进行交 换。 n客户端套接字。客户往自己的套接字发送 HTTP请求消息,也从自己的套

3、接字接收HTTP 响应消息。 n服务器从自己的套接字接收HTTP请求消息,也往自 己的套接字发送HTTP响应消息。 n关闭TCP 连接 n注意:在向客户发送所请求文件的同时,服务器并 没有存储关于该客户的任何状态信息。即便某个客 户在几秒钟内再次请求同一个对象,服务器也不会 响应说:自己刚刚给它发送了这个对象。 n所以http 是 “无状态(stateless)”的服 务,不保留任何访问过的请求信息 当用户请求一个当用户请求一个Web页面页面(譬如说点击某个超链接譬如说点击某个超链接)时,浏览器把请求该时,浏览器把请求该 页面中各个对象的页面中各个对象的HTTP请求消息发送给服务器。服务器收到

4、请求后,请求消息发送给服务器。服务器收到请求后, 以运送含有这些对象以运送含有这些对象HTTP响应消息作为响应。响应消息作为响应。 、HTTP连接的类型 n非持久连接和持久连接非持久连接和持久连接 HTTP既可以使用非持久连接 (nonpersistent connection),也可以使用 持久连接(persistent connection)。 HTTP/1.0使用非持久连接,HTTP/1.1默 认使用持久连接。 .1 非持久连接 n 非持久连接情况下从服务器到客户传送一个 Web页面的步骤。假设该贝面由1个基本HTML文 件和10个JPEG图像构成,而且所有这些对象都存 放在同一台服务器

5、主机中。 再假设该基本HTML 文件的URL 为: n下面是具体步骡: 1.HTTP客户初始化一个与服务器主机 中的HTTP服务器的TCP连接。 HTTP服务器使用默认端口号80监听来自HTTP客 户的连接建立请求。 2.HTTP客户经由与TCP连接相关联的本地套 接字发出个HTTP请求消息。这个消息中包含 路径名/somepath/index.html。 n 3.HTTP服务器经由与TCP连接相关联的本地套 接字接收这个请求消息,再从服务器主机的内 存或硬盘中取出对象/somepath/index.html, 经由同一个套接字发出包含该对象的响应消息。 n 4.HTTP服务器告知TCP关闭这

6、个TCP连接(不过 TCP要到客户收到刚才这个响应消息之后才会 真正终止这个连接)。 n5.HTTP客户经由同一个套接字接收这个 响应消息。TCP连接随后终止。该消息标 明所封装的对象是一个HTML文件。客户 从中取出这个文件,加以分析后发现其 中有10个JPEG对象的引用。 6.给每一个引用到的JPEG对象重复步骡 1-4。 .2持久连接 n持久连接情况下,服务器在发出响应后让TCP连接 继续打开着。同一对客户/服务器之间的后续请求和 响应可以通过这个连接发送。 n通常,HTTP服务器在某个连接闲置一段特定时间后 关闭它,而这段时间通常是可以配置的。 n持久连接分为不带流水线(without

7、 pipelining)和带流 水线(with pipelining)两个版本。如果是不带流水线 的版本,那么客户只在收到前一个请求的响应后才 发出新的请求。 nHTTP/1.1的默认模式使用带流水线的持久 连接。这种情况下,HTTP客户每碰到一 个引用就立即发出一个请求,因而HTTP 客户可以一个接一个紧挨着发出各个引用 对象的请求。服务器收到这些请求后,也 可以一个接一个紧挨着发出各个对象。 3.3 流水线和非流水线方式 n流水线方式指没有收到上一个请求的对 象就发送新的对象的请求 n非流水线方式指必须要等到上一个请求 的对象到达之后再发送新的对象的请求 4、HTTP消息格式消息格式 nH

8、TTP规范1.0RPcl945和HTTP1.1 RFC 2616定义了HTTP消息的格式。HTTP消 息分为请求消息和响应稍息两类。 4.1 HTTP请求消息请求消息 n 下面是一个典型的HTTP请求消息: GET /somedir/page.html HTTP/1.1 Host: Connection:close User-agent:Mozilla/4.0 Accept-language:zh-cn (额外的回车符和换行符) n首先,这个消息是用普通的ASCII文本书 写的。 n其次,这个消息共有5行(每行以一个回 车符和一个换行符结束),最后一行后面 还有额外的一个回车特和换行符。 n请

9、求行请求行有3个宁段:方法字段、URL字段、 HTTP版本宇段。 n方法字段有若干个值可供选择,包括GET、 POST和HEAD。HTTP请求消息绝大多数使 用GET方法, n头部行Host:定存放所 请求对象的主机。 n请求消息中包含头部Connection:close是在 告知服务器本浏览器不想使用持久连接;服 务器发出所请求的对象后应关闭连接。 nUser-agent头部行指定用户代理,也就是产 生当前请求的浏览器的类型。本例的用户 代理是Mozilla/4.0,它是Nelscape浏览器的 一个版本。 HTTP请求标准格式 Request 方 法URL版 本 首部字段名 首部行 :值

10、首部字段名值 : 实体主体 (通常不用) 请求行 空格回车换行 : CRLF CRLF CRLF CRLF 请求报文的类型是由它所采用的方法决定的。 n附属体不在GET方法中使用,而是在POST方法 中使用。 nPOST方法适用于需由用户填写表单的场合, 如往google搜索引擎中填入待搜索的词。用户 提交表单后, nHEAD方法与GET方法类似,两者的差别只是服 务器在对HEAD方法的响应消息中去掉了所请 求的对象,其他内容则与对GET方法的响应消 息一样。HEAD方法通常用于HTTP服务器软件 开发人员进行调试。 4.2 HTTP响应消息响应消息 n 下面是一个典型的HTTP响应消息: H

11、TTP/1.1 200 0K Connectlon:close Date: Thu, 13 Oct 2005 03:17:33 GMT Server: Apache/2.0.54 (Unix) LastNodified:Mon,22 Jun 1998 09;23;24 GMT ContentLength:682l ContentType:text/html (数据 数据 数据 数据 数据) HTTP响应标准格式响应标准格式 Response 版 本状态码短 语 首部字段名 首部行 :值 首部字段名值 : 实体主体 (有些响应报文不用) 状态行 空格回车换行 : CRLF CRLF CRLF C

12、RLF 响应报文的开始行是状态行。 状态行包括三项内容,即 HTTP 的版本,状态码, 以及解释状态码的简单短语。 开始行 5 HTTP常用状态码 n1xx 表示通知信息的,如请求收到了或 正在进行处理。 n2xx 表示成功,如接受或知道了。 n3xx 表示重定向,表示要完成请求还必 须采取进一步的行动。 n4xx 表示客户的差错,如请求中有错误 的语法或不能完成。 n5xx 表示服务器的差错,如服务器失效 无法完成请求。 n200 0K;请求成功,所请求信息在响应消 息中返回。 301 Moved Permanently:所请求的对象 己永久性迁移;新的URL在本响应消息的 Location

13、:头部指出。客户软件会自动请求这个 新的URL。 400 Bad Request;表示服务器无法理解 相应请求的普通错误的状态码 n404 Not Found:服务器上不存在所请求 的文档。 HTTP Version Not Support:服务器不支 持所请求的HTTP协议版本。 Cookies: 保存 “状态” n服务器产生一个 # , 服务 器认识这个 #, 以备不时 之需: n认证 n记忆用户的前序访问, 先前的选择 n服务器在响应报文中发送 “cookie” 给客户端 nSet-cookie: 1678453 n客户端可以在后继的请求 中发送“cookie” ncookie: 167

14、8453 clientserver 普通 http 请求报文 普通 http响应报文+ Set-cookie: # 普通 http 请求报文 cookie: # 普通 http响应报文 普通 http 请求报文 cookie: # 普通 http响应报文 cookie- 特定的 cookie- 特定的 Conditional GET: 客户端缓存机制 n目的: 如果客户端缓存了 最新的请求对象,则服务 器不必重复发送 n客户端: 在http请求报文 中声明所缓存拷贝的生成 日期 nIf-modified-since: n服务器: 如果客户端缓存 的拷贝是最新的,则在响 应报文中不发请求的对象: nHTTP/1.0 304 Not Modified clientserver http请求报文 If-modified-since: http响应报文 HTTP/1.0 304 Not Modified 对象未 经修改 http请求报文 If-modified-since: http响应报文 HTTP/1.1 200 OK 对象已 经修改 用telnet测试 http (客户端操作) 1. 用Telnet 连接测试用的服务器: 打开打开 TCP 连接到连接到 port 80 (默认的默认的http 服务器端口服务器端口) 位于位于 202.117.3

温馨提示

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

最新文档

评论

0/150

提交评论