




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HTTP通信协议解释(2006-9-7 何红军)1. 基本概念HTTP(Hypertext Transfer Protocol)是目前在Internet上应用最广泛的通信协议之一。简言之,HTTP通信协议允许用户提出HTTP“请求”(request),然后由服务器视实际处理结果传回HTTP“回应”(response),其基本运行方式为: 当用户向Web服务器送出请求时,Web服务器将会开启一个新连接。 通过这个连接,用户可以将HTTP请求传送给Web服务器。 当Web服务器收到HTTP请求时,将进行解析与处理,并将处理结果包装成HTTP回应。 最后,Web服务器会将HTTP回应传送至用户。只要用户接收到HTTP回应,Web服务器就会关闭这个连接,用户的执行状态将不会被保存。图1-1 用户与Web服务器的交互关系 对80端口监听注意:HTTP既可以使用非持久连接(nonpersistent connection),也可以使用持久连接(persistent connection)。HTTP/1.0使用非持久连接,HTTP/1.1默认使用持久连接。2. HTTP请求消息下面是一个典型的HTTP请求消息:GET/somedir/page.htmlHTTP/1.1 Host: 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:定存放所请求对象的主机。请求消息中包含头部Connection:close是在告知服务器本浏览器不想使用持久连接;服务器发出所请求的对象后应关闭连接。尽管产生这个请求消息的浏览器实现的是HTTP/1.1版本,它还是不想使用持久连接。User-agent头部行指定用户代理,也就是产生当前请求的浏览器的类型。本例的用户代理是Mozilla/4.0,它是Nelscape浏览器的一个版本。这个头部行很有用,因为服务器实际上可以给不同类型的用户代理发送同一个对象的不同版本(这些不同版本位用同一个URL寻址)。最后,Accept-languag:头部行指出要是所请求对象有简体中文版本,那么用户宁愿接收这个版本;如果没有这个语言版本,那么服务器应该发送其默认版本。Accept-languag:仅仅是HTTP的众多内容协商头部之一。我们接着看一下下图所示的请求消息的一般格式。n HTTP请求形式(HTTP method)n 被请求的URIn HTTP版本n 标头信息(Request Header)n 请求内容(Message Body)图2:HTTP请求格式上面的请求消息例子符合这个格式,不过一般格式中还有一个位于各个头部(及额外的回车符和换行符)之后的“附属体”(body)。附属体不在GET方法中使用,而是在POST方法中使用。POST方法适用于需由用户填写表单的场合,如往google搜索引擎中填入待搜索的词。用户提交表单后,浏览器就像用户点击了超链接那样仍然从服务器请求一个Web页面,不过该页面的具体内容却取决于用户填写在表单各个字段中的值。如果浏览器使用POST方法提出该请求,那么请求消息附属体中包含的是用户填写在表单各个字段中的值。与GET方法类似的是HEAD方法,两者的差别只是服务器在对HEAD方法的响应消息中去掉了所请求的对象,其他内容则与对GET方法的响应消息一样。HEAD方法通常用于HTTP服务器软件开发人员进行调试。3. HTTP响应消息下面是一个典型的HTTP响应消息: HTTP/1.12000K Connectlon:close Date:Thu,13Oct200503:17:33GMT Server:Apache/2.0.54(Unix) LastNodified:Mon,22Jun199809;23;24GMT ContentLength:682l ContentType:text/html (数据数据数据数据数据)这个响应消息分为3部分:1个起始的状态行(status line),6个头部行、1个包含所请求对象本身的附属体。状态行有3个字段:协议版本字段、状态码字段、原因短语字段。本例的状态行表明,服务器使用HTTP/1.1版本,响应过程完全正常(也就是说服务器找到了所请求的对象,并正在发送)。现在看一下本例中的各个头部行。服务器使用Connectlon:close头部行告知客户自己将在发送完本消息后关闭TCP连接。Date:头部行指出服务器创建并发送本响应消息的日期和时间。注意,这并不是对象本身的创建时间或最后修改时间,而是服务器把该对象从其文件系统中取出,插入响应消息中发送出去的时间。Server:头部行指出本消息是由Apache服务器产生的;它与HTTP请求消息中的User-agent:头部行类似。LastNodified:头部行指出对象本身的创建或最后修改日期或时间。LastNodified:头部对于对象的高速缓存至关重要,且不论这种高速缓存是发生在本地客户主机上还是发生在网络高速缓存服务器主机(也就是代理服务器主机)上。ContentLength:头部行指出所发送对象的字节数。ContentType:头部行指出包含在附属体中的对象是HTML文本。对象的类型是由ContentType:头部而不是由文件扩展名正式指出的。根据HTTP通信协议的规定,每个“HTTP回应”必须包含下列信息: HTTP版本 HTTP状态代码(Status Code) HTTP状态代码所对应的摘要文字(Reason-Phrase) 标头信息(Response Header) 回应主体(Message Body)图3:响应消息的一般格式200 0K;请求成功,所请求信息在响应消息中返回。301 Moved Permanently:所请求的对象己永久性迁移;新的URL在本响应消息的Location:头部指出。客户软件会自动请求这个新的URL。400 Bad Request;表示服务器无法理解相应请求的普通错误的状态码404 Not Found:服务器上不存在所请求的文档。HTTP Version Not Support:服务器不支持所请求的HTTP协议版本。HTTP状态代码与其对应的摘要文字Status CodeReason-PharseStatus CodeReason-Pharse100Continue404Not Found101Switching Protocols405Method Not Allowed200OK406Not Acceptable201Created407Proxy Authentication Required202Accepted408Request Time-out203Non-Authoritative Information409Conflict204No Content410Gone205Reset Content411Length Required206Partial Content412Precondition Failed300Multiple Choices413Request Entity Too Large301Moved Permanently414Request-URI Too Large302Found415Unsupported Media Type303See Other416Requested range not satisfiabl304Not Modified417Expectation Failed305Use Proxy500Internal Server Er
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宠物美容AI技术面试题库
- 2025年安全战略填空题库
- 2025年导盲犬训练高级面试实战题库
- 2025年广播电视台后期制作面试常见问题解答
- 2025年语音合成师职业发展面试题及答案
- 2025年高效学习方法与技巧高级笔试预测题
- 2025年地震救援面试重点题解析及答案
- 2025年建筑装饰设计师专业技术考核试卷及答案解析
- 课件中控件的使用
- 2025年环保工程技术师资格考试试题及答案解析
- 2025北京平谷区初三二模数学试题及答案
- 2025年中级会计职称考试经济法冲刺试题及答案
- 乐器供销合同范本
- 2025年辽宁省中考生物学试卷真题附答案
- 2025-2030牛肉分销渠道冲突与供应链协同优化报告
- 《法律职业伦理(第3版)》全套教学课件
- 2025年青岛市崂山旅游集团招聘考试笔试试题
- 2025年秋季新学期全体中层干部会议校长讲话:在挑战中谋突破于坚实处启新篇
- 2025年幼儿园保育员考试试题(附答案)
- 2025年上半年中国铁路兰州局集团有限公司校招笔试题带答案
- 《物联网导论》课程标准
评论
0/150
提交评论