HTTP协议技术浅析

2013-08-15 00:49
中国新技术新产品 2013年22期
关键词:版本号超文本浏览器

王 涛

(大连金融中专,辽宁 大连 116021)

一、HTTP协议简述

HTTP是一个客户端和服务器端请求和应答的标准。所有基于Web的应用都要使用到HTTP协议。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口的HTTP请求。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定可靠的传输,任何能够提供这种保证的协议都可以被其使用。

二、HTTP协议的概念

超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版。

三、HTTP协议的主要特点

1 支持“客户/服务器”模式。

2 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3 灵活:HTTP允许传输任意类型的数据。正在传输的类型由Content-Type加以标记。

4 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。它并不知道这两个请求来自同一个客户端。 为了解决这个问题, Web程序引入了Cookie机制来维护状态。另一方面,在服务器不需要先前信息时它的应答就较快。

四、HTTP协议与URL

HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。

五、HTTP消息的结构

先看Request 消息的结构, Request消息分为3部分,第一部分叫请求行,第二部分叫http header, 第三部分是body。 header和body之间有个空行。

第一行中的Method表示请求方法,比 如“POST”,“GET”,Path-toresoure表示请求的资源, Http/versionnumber 表示HTTP协议的版本号。当使用的是“GET” 方法的时候,body是为空的。

Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE。 HTTP 中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

我们再看Response消息的结构, 和Request消息的结构基本一样。 同样也分为三部分,第一部分叫request line,第二部分叫request header,第三部分是body。 header和body之间也有个空行。

HTTP/version-number表示HTTP协议的版本号,status-code 和message 为状态代码。

Response 消息中的第一行叫做状态行,由HTTP协议版本号,状态码,状态消息 三部分组成。

状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response。

HTTP/1.1中定义了5类状态码,状态码由三位数字组成,第一个数字定义了响应的类别 。

2 00 OK-最常见的就是成功响应状态码200了, 这表明该请求被成功地完成,所请求的资源发送回客户端。

3 02 Found 重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。

3 04 Not Modified 代表上次的文档已经被缓存了, 还可以继续使用。

4 00 Bad Request 客户端请求与语法错误,不能被服务器所理解。

4 03 Forbidden 服务器收到请求,但是拒绝提供服务。

4 04 Not Found 请求资源不存在。

5 00 Internal Server Error 服务器发生了不可预期的错误。

5 03 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

结语

以上便是HTTP协议的工作原理及基本结构,在实际工作学习中我们可以使用Fiddler软件工具来帮助我们具体分析http协议的工作流程。

[1]祝瑞,车敏.基于HTTP协议的服务器程序分析[J].现代电子技术,2012(04).

[2]钱宏武.HTTP协议之前世今生——兼谈网络应用结构设计[J].程序员,2008(05).

猜你喜欢
版本号超文本浏览器
ETCS基线3的系统版本管理方法
反浏览器指纹追踪
认识vSphere安装程序
基于HTML5静态网页设计
应用超文本建构教学培养学生的知识组织能力
环球浏览器
超文本阅读认知负荷的个体差异