Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189312
  • 博文数量: 54
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-02 18:41
文章分类

全部博文(54)

文章存档

2011年(1)

2009年(30)

2008年(23)

我的朋友

分类:

2009-01-13 20:48:41

超文本传输协议(Hypertext Transfer Protocol,HTTP)是万维网(World Wide Web,WWW,也简称为Web)的基础。

HTTP是一个属于应用层的面向对象协议,简捷,快速,适用于分布式超媒体信息系统。目前WWW中使用的是HTTP/1.1。


HTTP协议的特点:
 <1>支持C/S模式。
 <2>简单快速:Client向Server请求服务时,只需传递请求方法和路径。常用请求方法有GET,HEAD,POST。HTTP协议简单,因而HTTP Server程序规模小,通信速度很快。
 <3>灵活:HTTP允许传输任意类型的数据对象,传输类型由Content-Type标记。
 <4>无连接:每次连接只处理一个请求,Server处理完Client的请求,并收到客户的应答后,即断开连接。这种方式可以节省传输时间。
 <5>无状态:HTTP协议是无状态协议。它指协议对事务处理没有记忆能力,这意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,而在Server不需要先前信息时它的应答就较快。


HTTP协议的运作方式:
 HTTP协议是基于请求/应答模式的。一个Client与Server建立连接以后,发送一个请求给Server,请求方式的格式为:统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
 在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。

 基于HTTP协议的C/S模式的信息交换过程分四步:建立连接,发送请求信息,发送应答信息,关闭连接。
 <1>建立连接 连接的建立是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。

 <2>发送请求 打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。

    HTTP/1.0  请求消息的格式为:
    请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
    请求 行=方法 请求URL HTTP版本号 CRLF
    方  法=GET|HEAD|POST|扩展方法
    U R L=协议名称+宿主名+目录与文件名

    请求行中的方法描述指定资源中应该执行的动作,常用的方法有GET、HEAD和POST。不同的请求对象对应GET的结果是不同的,对应关系如下:
    对象      GET的结果
    文件      文件的内容
    程序      该程序的执行结果
    数据库查询   查询结果

    HEAD——要求服务器查找某对象的元信息,而不是对象本身。
    POST——从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理。

    一个请求的例子为:
    GET HTTP/1.0

    头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。
    请求头——告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压缩方法和语言等。
    实体头——实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。
    实体——请求或应答对象本身。

 <3>发送响应 服务器在处理完客户的请求之后,要向客户机发送响应消息。

    HTTP/1.0的响应消息格式如下:
    响应消息=状态行(通用信息头|响应头|实体头) CRLF 〔实体内容〕
    状态行=HTTP版本号 状态码 原因叙述
    状态码表示响应类型
    1××  保留
    2××  表示请求成功地接收
    3××  为完成请求客户需进一步细化请求
    4××  客户错误
    5××  服务器错误
    响应头的信息包括:服务程序名,通知客户请求的URL需要认证,请求的资源何时能使用。

 <4>关闭连接 客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话

阅读(629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~