,xmlhttp只适用于客户端,当然服务端也可以调用这个组件,但是这个组件是一个很危险的组件。他会在连接网络失败的情况下导致iis罢工,流量小的时候没什么反应,流量一大,必然会出问题。
优点:
通过使用 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。
解决方案--设置超时时间
esolveTimeout = 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://www.qdxw.net" 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
'简单的超时设置 www.qdxw.net set objxml =server.createobject("msxml2.serverxmlhttp") objxml.settimeouts 10000, 10000, 15000, 15000 第一个数值:解析dns名字的超时时间10秒 第二个数值:建立winsock连接的超时时间10秒 第三个数值:发送数据的超时时间15秒 第四个数值:接收response的超时时间15秒
与ServerXmlHttp相对应他是使用在client端的组建,由于 XMLHTTP 内部使用 WinInet,所以不支持在服务器端应用程序(例如 Active Server Pages (ASP))、宿主在 COM+ 中的组件,或 Windows 服务中使用 XMLHTTP。
优点:
XMLHTTP 具有一些优点,如支持缓存和自动发现代理。
支持SSL:
XMLHTTP 组件在 MSXML3 中对 HTTPS 的支持比较有限。具体说就是,它们不完全支持用于身份验证的安全套接字层 (SSL) 证书。这些组件虽然支持 HTTPS 协议,但如果服务器要求客户端证书,请求将会失败。