分享
 
 
 

Visual Basic .Net中实现HTTP协议(一)

王朝vb·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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就必须定义。一个请求行的结构如下:

请求命令请求URIHTTP版本号

其中的HTTP协议中的请求命令见表01所示。图01是利用侦听方法获得的客户端IE浏览器向WWW主机发送请求命令。

图01:IE浏览器向WWW主机发送请求行命令

请求命令

功能

GET

请求一个WWW页面或者URI资源

HEAD

要求服务器查找某对象的元信息,而不是对象本身

PUT

从客户机向服务器传送数据,在要求服务器和CGI做进一步处理时会用到POST方法。POST主要用于发送Html文本中FORM的内容,让CGI程序处理

POST

附加资源

DELETE

删除操作

LINK

连接二个存在的资源

UNLINK

切断二个已有的资源连接

表01:HTTP协议中客户端的请求命令

3. 服务器进行响应。服务器在处理完客户的请求之后,要向客户机发送响应消息。其响应消息是由状态行和应答头组成的。其中应答头包括服务程序名,通知客户请求的URI需要认证,请求的资源何时能使用等。状态行的主要结构如下:

HTTP版本号状态码原因叙述

其中最常见的状态码是“200”和“404”,下面是服务器响应客户端的一个请求通过的状态行:

HTTP/1.1 200 OK

下面是服务器响应客户端的一个请求失败的状态行:

HTTP/1.1 404 Object Not Found

4. 关闭连接。

在下面的内容中将使用Visual Basic .Net通过.Net FrameWork SDK提供的类来模拟IE浏览器中发送的请求行命令以及获取WWW主机返回的状态行信息。首先还是先了解一下.Net FrameWork SDK为在Visual Basic .Net实现HTTP协议所提供的类。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有