轉載 Msxml2.ServerXMLHTTP與Msxml2.XMLHTTP區別

1.ServerXmlHttphtml

定義:ServerXMLHTTP 爲不一樣 Web 服務器之間的服務器安全 HTTP 訪問提供方法和屬性。您可使用此對象在不一樣的 Web 服務器之間交換 XML 數據。windows

被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 請求。app

缺陷:post

同時存在於單一進程中的 ServerXMLHTTP 實例數主要取決於可用於系統上應用程序的內存大小。可是其餘因素(如 CPU 處理能力或者可用的套接字鏈接)會進一步限制能夠同時處於活動狀態的實例數。就MSXML 3.0 而言,可同時存在於單一進程中的最大實例數爲5460。url

值得注意的特性----一小時超時:設計

若是你的目標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 提供了可靠性和安全性,而且是服務器安全的。

 
轉載地址:http://blog.sina.com.cn/s/blog_5067ef490101hm61.html
 
發佈一個本身寫的ASP POST
 
Function   Post(url) Dim  postData,textResponse postData="user=xxxx&password=******" Set ServerXmlHttp =Server.CreateObject("MSXML2.ServerXMLHTTP")   ServerXmlHttp.open "POST", url ,false 'ServerXmlHttp.setTimeouts 10000,10000,10000,30000 ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" ServerXmlHttp.send postData If ServerXmlHttp.status = 200 Then     textResponse = ServerXmlHttp.responseText    Else     textResponse="0" End If Set ServerXmlHttp = Nothing End Function
相關文章
相關標籤/搜索