ServerXmlHttp和XmlHttp的一些总结

本文详细介绍了ServerXMLHTTP和XMLHTTP两个组件的特点及应用区别。ServerXMLHTTP适用于服务器间安全HTTP数据交换,尤其适合在ASP等环境中使用。XMLHTTP则针对客户端应用设计,支持缓存和自动发现代理,在桌面应用程序中有良好表现。

1.ServerXmlHttp

定义:ServerXMLHTTP 为不同 Web 服务器之间的服务器安全 HTTP 访问提供方法和属性。您可以使用此对象在不同的 Web 服务器之间交换 XML 数据。

被Microsoft XML Parser (MSXML) 版本 3.0 或更高版本提供,并且不支持windows95和windows98环境,支持windows2000,安装ie5的windows NT,windows2003以上版本,windows xp,vista等等系统。顾名思义他是使用在server端的组建。

SSL支持:

ServerXMLHTTP 组件在 MSXML3 中对 HTTPS 的支持比较有限。具体说就是,它们不完全支持用于身份验证的安全套接字层 (SSL) 证书。这些组件虽然支持 HTTPS 协议,但如果服务器要求客户端证书,请求将会失败。
  ServerXMLHTTP 在 MSXML 3.0 Service Pack 1 中包括了 SSL 证书支持。

优点:

通过使用 ServerXMLHTTP,可以在本地和远程系统之间以流或 XML 文档的形式交换 XML 数据;由于基础协议为 HTTP 或 HTTPS,因此可以在防火墙后的系统之间交换数据;ServerXMLHTTP 可用于从不同的环境(如 Active Server Pages (ASP)、Microsoft Visual Basic 和 Microsoft Visual C++)发送 HTTP 请求。

缺陷:

同时存在于单一进程中的 ServerXMLHTTP 实例数主要取决于可用于系统上应用程序的内存大小。但是其他因素(如 CPU 处理能力或者可用的套接字连接)会进一步限制可以同时处于活动状态的实例数。就MSXML 3.0 而言,可同时存在于单一进程中的最大实例数为5460。

值得注意的特性----一小时超时:

如果你的目标url实际上不存在,使用浏览器访问的时候会发生“找不到服务器或是发生dns错误”那么使用serverxmlhttp访问的时候可能会遇到长时间得不到response。

解决方案--设置超时时间

resolveTimeout = 10000   ‘ 解析DNS名字的超时时间,10秒

connectTimeout = 10000    ‘ 建立Winsock连接的超时时间,10秒

sendTimeout = 120000     ‘ 发送数据的超时时间,120秒

receiveTimeout = 60000     ' 接收response的超时时间,60秒

xmlHttp.setTimeouts resolveTimeout, connectTimeout, sendTimeout, receiveTimeout

For Example:
  BeginTimer = Timer()
  BeiginTime = Now()
  On error resume next
  dim xmlHttp As ServerXmlHttp
  Set xmlHttp = New  ServerXmlHttp
  resolveTimeout = 10000   ' 解析DNS名字的超时时间,10秒
  connectTimeout = 10000    ' 建立Winsock连接的超时时间,10秒
  sendTimeout = 120000     ' 发送数据的超时时间,120秒
  receiveTimeout = 60000     ' 接收response的超时时间,60秒
  'xmlHttp.setTimeouts resolveTimeout, connectTimeout, sendTimeout,
  receiveTimeout
  uRL ="http://202.118.89.4:4090/2333.asp"
  xmlHttp.Open "POST", sURL, False
  xmlHttp.send "1212312"EndTimer = Timer()
  TimeSpan_Send = EndTimer - BeginTimer
 
  EndTime = Now()
  msgbox  uRL & " okay!TimeSpan=" & CStr(TimeSpan_Send) & ";start:" & BeiginTime & ";EndTime:" & EndTime
 
  2.XMLHttp

与ServerXmlHttp相对应他是使用在client端的组建,由于 XMLHTTP 内部使用 WinInet,所以不支持在服务器端应用程序(例如 Active Server Pages (ASP))、宿主在 COM+ 中的组件,或 Windows 服务中使用 XMLHTTP。

优点:

XMLHTTP 具有一些优点,如支持缓存和自动发现代理。它可以在 Windows 95 和 Windows 98 平台上使用,并且非常适合单用户桌面应用程序。

支持SSL:

XMLHTTP 组件在 MSXML3 中对 HTTPS 的支持比较有限。具体说就是,它们不完全支持用于身份验证的安全套接字层 (SSL) 证书。这些组件虽然支持 HTTPS 协议,但如果服务器要求客户端证书,请求将会失败。

3.ServerXmlHttp和XmlHttp的区别

XMLHTTP 为客户端应用程序而设计,并依赖于基于 Microsoft Win32 Internet (WinInet) 而构建的 URLMon。ServerXMLHTTP 为服务器应用程序而设计,并依赖于新的 HTTP 客户端堆栈 WinHTTP。ServerXMLHTTP 提供了可靠性和安全性,并且是服务器安全的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值