分类: LINUX
2008-09-04 10:01:09
HTTP是Hypertext Transfer Protocol的简称,即:超文本传输。在TCP/IP簇中的一百多个中,HTTP可以说是平常接触最多的一种了。因为日常浏览网页时所使用的浏览器浏览,其基本的类型就是HTTP。HTTP是一个客户端/服务器,这里所说的服务器端是指提供WWW服务的主机,即各类Web站点等。而客户端是指运行各类浏览器(如IE、Netscape等)或者下载工具的主机。
HTTP从产生到目前,主要经历了三个发展阶段,也就是通常说的三个版本:HTTP 0.9、HTTP 1.0和HTTP 1.1版。HTTP 0.9版也是HTTP原始,它最早出现在1990年,由于它只是一个简单的面向消息的,所以很快一个新的HTTP版本出现了,即:HTTP 1.0版,这个版本在保持了对HTTP 0.9版本的兼容的同时,还增加了在复杂网络情况下,对不同的类型的对象服务能力。HTTP 1.1是在HTTP 1.0基础上发展下来的,它依然保持对HTTP 0.9和HTTP 1.0的兼容。和HTTP 1.0比较,主要改进的是性能、安全和数据处理方面。目前人们又开始提出了HTTP的下一个版本了,那就是HTTP-NG(Next Generation of HTTP)。在这个版本中,可以想象的是无论是性能、效率还是安全性都会有一个更大的提高。
在TCP/IP簇中的所有,.Net FrameWork SDK中对HTTP的支持是最全面的,具体表现在.Net FrameWork SDK为实现HTTP提供了许多专门的类。其数量之多,功能之全面是其他无可比拟的。Visual Basic .Net通过使用这些类,可以方便的实现各种HTTP功能。
一.HTTP会话:
HTTP是一个客户端/服务器,它是建立在请求/响应范式的,客户机和服务器完成一个HTTP会话主要通过以下四步:
1. 建立连接。建立连接是通过申请套接字(Socket)实现的。客户打开一个套接字并把它约束在一个端口(HTTP一般使用的是80端口)上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。
2. 客户端发送请求。 在建立连接后,客户机会往服务器正在侦听的端口发送请求消息,完成提出请求动作。一个完整的请求消息=请求行和请求头,其中请求头包括包括用户可以接受的数据类型、压缩方法、语言、长度、压缩方法、最后一次修改时间、数据有效期等。大多数请求头并不是必需要定义的,但对于POST请求命令来说Content-Length就必须定义。一个请求行的结构如下:
请求命令 请求URI HTTP版本号
其中的HTTP中的请求命令见表01所示。图01是利用侦听方法获得的客户端IE浏览器向WWW主机发送请求命令。
图01:IE浏览器向WWW主机发送请求行命令
请求命令 | 功能 |
GET | 请求一个WWW页面或者URI资源 |
HEAD | 要求服务器查找某对象的元信息,而不是对象本身 |
PUT | 从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送HTML文本中FORM的内容,让CGI程序处理 |
POST | 附加资源 |
DELETE | 删除操作 |
LINK | 连接二个存在的资源 |
UNLINK | 切断二个已有的资源连接 |