首页 HTTP通信协议

HTTP通信协议

举报
开通vip

HTTP通信协议HTTP通信协议 基本概念 HTTP(Hypertext Transfer Protocol)是目前在Internet上应用最广泛的通信协议之一。简言之,HTTP通信协议允许用户提出HTTP“请求”(request),然后由服务器视实际处理结果传回HTTP“回应”(response),其基本运行方式为: 当用户向Web服务器送出请求时,Web服务器将会开启一个新连接。 通过这个连接,用户可以将HTTP请求传送给Web服务器。 当Web服务器收到HTTP请求时,将进行解析与处理,并将处理结果包装成HTTP回应。 最后...

HTTP通信协议
HTTP通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 基本概念 HTTP(Hypertext Transfer Protocol)是目前在Internet上应用最广泛的通信协议之一。简言之,HTTP通信协议允许用户提出HTTP“请求”(request),然后由服务器视实际处理结果传回HTTP“回应”(response),其基本运行方式为: 当用户向Web服务器送出请求时,Web服务器将会开启一个新连接。 通过这个连接,用户可以将HTTP请求传送给Web服务器。 当Web服务器收到HTTP请求时,将进行解析与处理,并将处理结果包装成HTTP回应。 最后,Web服务器会将HTTP回应传送至用户。只要用户接收到HTTP回应,Web服务器就会关闭这个连接,用户的执行状态将不会被保存。 图1-1 用户与Web服务器的交互关系 注意:HTTP既可以使用非持久连接(nonpersistent connection),也可以使用持久连接(persistent connection)。HTTP/1.0使用非持久连接,HTTP/1.1默认使用持久连接。 HTTP请求消息 下面是一个典型的HTTP请求消息:   GET /somedir/page.html HTTP/1.1   Host:www.yesky.com   Connection:close   User-agent:Mozilla/4.0   Accept-language:zh-cn   (额外的回车符和换行符) 首先,这个消息是用普通的ASCII文本书写的。其次,这个消息共有5行(每行以一个回车符和一个换行符结束),最后一行后面还有额外的一个回车特和换行符。当然,一个请求消息可以不止这么多行,也可以仅仅只有一行。第一行称为请求行(request line),后续各行都称为头部行(header)。请求行有3个字段:方法字段、URL字段、HTTP版本字段。方法字段有若干个值可供选择,包括GET、POST和HEAD。HTTP请求消息绝大多数使用GET方法,这是浏览器用来请求对象的方法,所请求的对象就在URL字段中标识。本例表明浏览器在请求对象/somedir/page.html。版本字段是不言自明的;本例中浏览器实现的是HTTP/1.1版本。 现在看一下本例中的各个头部行。头部行Host:www.yesky.com定存放所请求对象的主机。请求消息中包含头部Connection:close是在告知服务器本浏览器不想使用持久连接;服务器发出所请求的对象后应关闭连接。尽管产生这个请求消息的浏览器实现的是HTTP/1.1版本,它还是不想使用持久连接。User-agent头部行指定用户代理,也就是产生当前请求的浏览器的类型。本例的用户代理是Mozilla/4.0,它是Nelscape浏览器的一个版本。这个头部行很有用,因为服务器实际上可以给不同类型的用户代理发送同一个对象的不同版本(这些不同版本位用同一个URL寻址)。最后,Accept-languag:头部行指出要是所请求对象有简体中文版本,那么用户宁愿接收这个版本;如果没有这个语言版本,那么服务器应该发送其默认版本。Accept-languag:仅仅是HTTP的众多内容协商头部之一。 我们接着看一下下图所示的请求消息的一般格式。 HTTP请求形式(HTTP method) 被请求的URI HTTP版本 标头信息(Request Header) 请求内容(Message Body) 图2:HTTP请求格式 上面的请求消息例子符合这个格式,不过一般格式中还有一个位于各个头部(及额外的回车符和换行符)之后的“附属体”(body)。附属体不在GET方法中使用,而是在POST方法中使用。POST方法适用于需由用户填写表单的场合,如往google搜索引擎中填入待搜索的词。用户提交表单后,浏览器就像用户点击了超链接那样仍然从服务器请求一个Web页面,不过该页面的具体内容却取决于用户填写在表单各个字段中的值。如果浏览器使用POST方法提出该请求,那么请求消息附属体中包含的是用户填写在表单各个字段中的值。与GET方法类似的是HEAD方法,两者的差别只是服务器在对HEAD方法的响应消息中去掉了所请求的对象,其他内容则与对GET方法的响应消息一样。HEAD方法通常用于HTTP服务器软件开发人员进行调试。 HTTP响应消息 下面是一个典型的HTTP响应消息:     HTTP/1.1 200 0K   Connectlon:close   Date: Thu, 13 Oct 2005 03:17:33 GMT   Server: Apache/2.0.54 (Unix)   Last—Nodified:Mon,22 Jun 1998 09;23;24 GMT   Content—Length:682l   Content—Type:text/html   (数据 数据 数据 数据 数据…………)     这个响应消息分为3部分:1个起始的状态行(status line),6个头部行、1个包含所请求对象本身的附属体。状态行有3个字段:协议版本字段、状态码字段、原因短语字段。本例的状态行表明,服务器使用HTTP/1.1版本,响应过程完全正常(也就是说服务器找到了所请求的对象,并正在发送)。   现在看一下本例中的各个头部行。服务器使用Connectlon:close头部行告知客户自己将在发送完本消息后关闭TCP连接。Date:头部行指出服务器创建并发送本响应消息的日期和时间。注意,这并不是对象本身的创建时间或最后修改时间,而是服务器把该对象从其文件系统中取出,插入响应消息中发送出去的时间。Server:头部行指出本消息是由Apache服务器产生的;它与HTTP请求消息中的User-agent:头部行类似。Last—Nodified:头部行指出对象本身的创建或最后修改日期或时间。Last—Nodified:头部对于对象的高速缓存至关重要,且不论这种高速缓存是发生在本地客户主机上还是发生在网络高速缓存服务器主机(也就是代理服务器主机)上。Content—Length:头部行指出所发送对象的字节数。Content—Type:头部行指出包含在附属体中的对象是HTML文本。对象的类型是由Content—Type:头部而不是由文件扩展名正式指出的。 根据HTTP通信协议的规定,每个“HTTP回应”必须包含下列信息: HTTP版本 HTTP状态代码(Status Code) HTTP状态代码所对应的摘要文字(Reason-Phrase) 标头信息(Response Header)         回应主体(Message Body) 图3:响应消息的一般格式   200 ;请求成功,所请求信息在响应消息中返回。   301 Moved Permanently:所请求的对象己永久性迁移;新的URL在本响应消息的Location:头部指出。客户软件会自动请求这个新的URL。   400 Bad Request;表示服务器无法理解相应请求的普通错误的状态码   404 Not Found:服务器上不存在所请求的文档。          HTTP Version Not Support:服务器不支持所请求的HTTP协议版本。
本文档为【HTTP通信协议】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_751406
暂无简介~
格式:doc
大小:67KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-19
浏览量:24