VB.NET与WEB服务器通讯

web|web服务|web服务器

WebRequest 和 WebResponse是两种我们访问Internet常用的类,严格说,WebRequest是一个抽象基类,我们一般用它的衍生类HttpWebRequest 以及 FileWebRequest,FTP的访问需要手动注册,具体看后面的插入协议。

从逻辑角度上讲,Net classes 包含三个层:请求/响应层、应用协议层和传输层,依次展开,从应用程序到网络。WebRequest 和 WebResponse 类代表请求/响应层。HTTP、TCP 和 UDP 类组成了应用协议层,而套接字存在于传输层中。WebRequest/WebResponse 和 HTTP 可以在 System.Net 名称空间中找到,而 TCP/UDP 和套接字则处在 System.Net.Sockets 名称空间中,包括也常用的UDPClient、TCPCLient。

WebRequest 和 WebResponse(请求/响应模型)

请求/响应模型位于顶部,提供一种简单的方式访问 Web 上的资源。WebRequest 是 .NET 框架的用于访问 Internet 数据的请求/响应模型的抽象基类。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据,什么意思?就是协议不具体。

这两种类提供了一种访问网上资源的一般方式。WebRequest 表示一个网络请求,包含诸如 RequestURI、Headers、Credentials 和 ContentType 等属性。WebRequest 上的主要方法有 GetRequestStream、GetResponse 以及它们的异步方法Begin/EndGetRequestStream 和 Begin/EndGetResponse。 GetRequestStream 用于获取流以便将数据上载到服务器。GetResponse 用于获取服务器返回的响应对象。WebResponse 表示从处理该请求的服务器接收回的响应。其关键属性有 ContentLength、ContentType、headers、ResponseURI 和 Status。WebResponse 上最常用的方法是 GetResponseStream,它用于从服务器读取(下载)数据。

当对 WebRequest.GetResponse 进行调用时,通常发出实际的网络请求。

这个示例显示如何获取一个 Web 页并将其内容输出:

Dim url As New Uri("http://www.yahoo.com") ‘定义一个URI

Dim Req As WebRequest

Req = WebRequest.Create(url)

Dim Resp As WebResponse

Try

Resp = Req.GetResponse ‘获得一个响应

Catch exc As Exception

MsgBox(exc.Message)

End Try

Dim netStream As StreamReader

netStream = New StreamReader(Resp.GetResponseStream)

Debug.WriteLine(netStream.ReadToEnd)

当然,上面的例子只是一个简单的操作,可以返回一个流式的数据。下面充分挖掘一下它们的优势(与WebClient相比)。

可插入协议

当某个应用程序仅仅使用 WebRequest 和 WebResponse 类时,无需修改应用程序的任何代码就可以“插入”和使用新的协议。注册一个带 WebRequestFactory 的 URI 模式在程序的持续时间内插入协议支持。注册是通过调用 WebRequestFactory.Register() 方法完成的。对于 HTTP 协议,这种方法是从内部调用的,因此它被默认注册;尽管如此,在将来可以实现和注册任意数目的其他协议。当然,由于 Internet 上的协议数量巨大,这种模型并不是对所有的情况都理想。那些“饶舌”的或另外排斥请求/响应模型的协议可能会在 TCP 或 UDP 类中更好地执行,或者在某些情况下会在 Sockets 类中更好地执行。有关HTTP方面的操作我们可以使用HttpWebRequest。

下面说明几个具体问题:

1. 程序分块

当应用程序需要发送或接收数据,而数据的准确大小在下载/上载开始时还未知时,程序分块是有用的。当基于其他应用程序或服务器逻辑正在创建所讨论的数据时,使用程序分块技术是最普遍的。要发送分块的数据,应该将 WebRequest 转换为 HttpWebRequest 并且将 HttpWebRequest.SendChunked 的属性设置为TRUE。如果直接用HttpWebRequest自然就免了:)

2.HTTP 管道技术

管道技术是 HTTP 1.1 的一项功能,它允许 Net classes 通过持久性连接向后端服务器发送多个 HTTP 请求,而无需在发出下次请求之前等待来自服务器的响应。这会显著影响性能,因为从服务器请求多个资源的应用程序不会被阻塞而等待某个特定资源(可能是服务器上一个非常耗时的操作,如数据库查找)。

3. 身份验证
Net classes 支持各种客户机身份验证机制,包括“摘要”、“基本”、Kerberos、NTLM 和“定制”。身份验证是通过在作出请求前对 WebRequest.Credentials 对象进行设置来达到的。在“摘要”和“基本”情况下,会指定用户名和口令。对于 NTLM 或 Kerberos,则使用 Windows 安全机制,并且 Credential 对象或者可以被设置为用户名、口令和域的结合,或者可以请求使用系统默认值。

4.代理支持
在 Net classes 中的 HTTP 代理支持可以在每个请求的基础上进行控制,或者可以一次全局性地设置它,用于应用程序的生存期。这样似乎就可以验证Proxy是不是免费;)

时间: 2024-10-27 09:04:10

VB.NET与WEB服务器通讯的相关文章

基于Unix的Web服务器安全指南

基于Unix的Web服务器安全指南 一. 安全漏洞 Web服务器上的漏洞可以从以下几方面考虑: 1.在Web服务器上你不让人访问的秘密文件.目录或重要数据. 2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截. 3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏一些重要的数据,甚至造成系统瘫痪. 4.CGI安全方面的漏洞有: (1)有意或无意在主机系统中遗漏Bugs给非法黑客创造条件. (2)用CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格(

Web服务器安全指南

在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取.本文仅仅讨论在构造Web服务器时可能出现的一些情况,希望能引起重视. 一.安全漏洞 Web服务器上的漏洞可以从以下几方面考虑: 1.在Web服务器上你不让人访问的秘密文件.目录或重要数据. 2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截. 3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏

浅析Unix系统下的web服务器的配置安全

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Internet日益普及的今天,PC安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取.本文仅仅浅析在构造 Web服务器时可能出现的一些情况,希望能引起重视.         一. 安全漏洞         Web服务器上的漏洞可以从以下几方面考虑:         1.在Web服务器上你不让人访问的秘密文件.目录或重要数据.         2.从远程用户向服务器发送信息时

Web服务器安全完全指南_服务器

在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,而且要提高系统抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取.本文仅仅讨论在构造Web服务器时可能出现的一些情况,希望能引起重视.  一. 安全漏洞  Web服务器上的漏洞可以从以下几方面考虑: 1.在Web服务器上你不让人访问的秘密文件.目录或重要数据. 2.从远程用户向服务器发送信息时,特别是信用卡之类东西时,中途遭不法分子非法拦截. 3.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统

用Win 2003 server打造安全的个人Web服务器

server|web|web服务|web服务器|安全       Win2003 Server的安全性较之Win2K确实有了很大的提高,但是用Win2003 Server作为服务器是否就真的安全了?如何才能打造一个安全的个人Web服务器?下面我们简单介绍一下 一.Windows Server2003的安装 1.安装系统最少两需要个分区,分区格式都采用NTFS格式 2.在断开网络的情况安装好2003系统 3.安装IIS,仅安装必要的 IIS 组件(禁用不需要的如FTP 和 SMTP 服务).默认情

保护(IIS)web服务器的15个技巧

iis|web|web服务|web服务器|技巧 通常地,大多数Web站点的设计目标都是:以最易接受的方式,为访问者提供即时的信息访问.在过去的几年中,越来越多的黑客.病毒和蠕虫带来的安全问题严重影响了网站的可访问性,尽管Apache服务器也常常是攻击者的目标,然而微软的Internet信息服务(IIS) Web服务器才是真正意义上的众矢之的. 高级教育机构往往无法在构建充满活力.界面友好的网站还是构建高安全性的网站之间找到平衡点.另外,它们现在必须致力于提高网站安全性以面对缩减中的技术预算 (其

网络安全之小技巧保护(IIS)Web服务器

通常地,大多数Web站点的设计目标都是:以最易接受的方式,为访问者提供即时的信息访问.在过去的几年中,越来越多的黑客.病毒和蠕虫带来的安全问题严重影响了网站的可访问性,尽管Apache服务器也常常是攻击者的目标,然而微软的Internet信息服务(IIS) Web服务器才是真正意义上的众矢之的. 高级教育机构往往无法在构建充满活力.界面友好的网站还是构建高安全性的网站之间找到平衡点.另外,它们现在必须致力于提高网站安全性以面对缩减中的技术预算 (其实许多它们的私有部门也面临着相似的局面). 正因

选购Web服务器

web|web服务|web服务器 (作者:曹文龙.李维) 通常,建立一个网站要考虑硬件平台.操作系统.数据库.Web服务器.Web应用软件等的选择问题.另外,大多数Web服务器主要是为一种操作系统进行优化的,有的只能运行在一种操作系统上,所以选择Web服务器时,还需要同操作系统联系起来考虑.对于Web服务器的性能,一般要考虑以下几个方面. 响应能力:即Web服务器对多用户浏览信息的响应速度,响应速度越快,单位时间内就可以支持越多的访问量,用户点击的响应速度就越快.前面提到的多线程.多进程.负载均

应用HttpClient来对付各种顽固的WEB服务器

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等.所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS.目前我们使用的浏览器处理这些情况都不会构成问题.不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中"偷"一些数据:利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此