1.ServerXmlHttp
定義:ServerXMLHTTP 為不同 Web 服務(wù)器之間的服務(wù)器安全 HTTP 訪問(wèn)提供方法和屬性。您可以使用此對(duì)象在不同的 Web 服務(wù)器之間交換 XML 數(shù)據(jù)。
被Microsoft XML Parser (MSXML) 版本 3.0 或更高版本提供,并且不支持windows95和windows98環(huán)境,支持windows2000,安裝ie5的windows NT,windows2003以上版本,windows xp,vista等等系統(tǒng)。顧名思義他是使用在server端的組建。
SSL支持:
ServerXMLHTTP 組件在 MSXML3 中對(duì) HTTPS 的支持比較有限。具體說(shuō)就是,它們不完全支持用于身份驗(yàn)證的安全套接字層 (SSL) 證書。這些組件雖然支持 HTTPS 協(xié)議,但如果服務(wù)器要求客戶端證書,請(qǐng)求將會(huì)失敗。
ServerXMLHTTP 在 MSXML 3.0 Service Pack 1 中包括了 SSL 證書支持。
優(yōu)點(diǎn):
通過(guò)使用 ServerXMLHTTP,可以在本地和遠(yuǎn)程系統(tǒng)之間以流或 XML 文檔的形式交換 XML 數(shù)據(jù);由于基礎(chǔ)協(xié)議為 HTTP 或 HTTPS,因此可以在防火墻后的系統(tǒng)之間交換數(shù)據(jù);ServerXMLHTTP 可用于從不同的環(huán)境(如 Active Server Pages (ASP)、Microsoft Visual Basic 和 Microsoft Visual C++)發(fā)送 HTTP 請(qǐng)求。
缺陷:
同時(shí)存在于單一進(jìn)程中的 ServerXMLHTTP 實(shí)例數(shù)主要取決于可用于系統(tǒng)上應(yīng)用程序的內(nèi)存大小。但是其他因素(如 CPU 處理能力或者可用的套接字連接)會(huì)進(jìn)一步限制可以同時(shí)處于活動(dòng)狀態(tài)的實(shí)例數(shù)。就MSXML 3.0 而言,可同時(shí)存在于單一進(jìn)程中的最大實(shí)例數(shù)為5460。
值得注意的特性----一小時(shí)超時(shí):
如果你的目標(biāo)url實(shí)際上不存在,使用瀏覽器訪問(wèn)的時(shí)候會(huì)發(fā)生“找不到服務(wù)器或是發(fā)生dns錯(cuò)誤”那么使用serverxmlhttp訪問(wèn)的時(shí)候可能會(huì)遇到長(zhǎng)時(shí)間得不到response。
解決方案--設(shè)置超時(shí)時(shí)間
resolveTimeout = 10000 ‘解析DNS名字的超時(shí)時(shí)間,10秒
connectTimeout = 10000 ‘ 建立Winsock連接的超時(shí)時(shí)間,10秒
sendTimeout = 120000 ‘ 發(fā)送數(shù)據(jù)的超時(shí)時(shí)間,120秒
receiveTimeout = 60000 ' 接收response的超時(shí)時(shí)間,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名字的超時(shí)時(shí)間,10秒
connectTimeout = 10000 ' 建立Winsock連接的超時(shí)時(shí)間,10秒
sendTimeout = 120000 '發(fā)送數(shù)據(jù)的超時(shí)時(shí)間,120秒
receiveTimeout = 60000 '接收response的超時(shí)時(shí)間,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相對(duì)應(yīng)他是使用在client端的組建,由于 XMLHTTP 內(nèi)部使用 WinInet,所以不支持在服務(wù)器端應(yīng)用程序(例如 Active Server Pages (ASP))、宿主在 COM+ 中的組件,或 Windows 服務(wù)中使用 XMLHTTP。
優(yōu)點(diǎn):
XMLHTTP 具有一些優(yōu)點(diǎn),如支持緩存和自動(dòng)發(fā)現(xiàn)代理。它可以在 Windows 95 和 Windows 98 平臺(tái)上使用,并且非常適合單用戶桌面應(yīng)用程序。
支持SSL:
XMLHTTP 組件在 MSXML3 中對(duì) HTTPS 的支持比較有限。具體說(shuō)就是,它們不完全支持用于身份驗(yàn)證的安全套接字層 (SSL) 證書。這些組件雖然支持 HTTPS 協(xié)議,但如果服務(wù)器要求客戶端證書,請(qǐng)求將會(huì)失敗。
3.ServerXmlHttp和XmlHttp的區(qū)別
XMLHTTP 為客戶端應(yīng)用程序而設(shè)計(jì),并依賴于基于 Microsoft Win32 Internet (WinInet) 而構(gòu)建的 URLMon。ServerXMLHTTP 為服務(wù)器應(yīng)用程序而設(shè)計(jì),并依賴于新的 HTTP 客戶端堆棧 WinHTTP。ServerXMLHTTP 提供了可靠性和安全性,并且是服務(wù)器安全的。
留言反饋