XMLHTTP vs ServerXMLHTTP
XMLHTTP
ServerXMLHTTP
1
Works on Windows 98, 95 and ME
Requires at least Windows NT 4 with IE5.01 .
2
Does not have a means of waiting for an async call other than using another thread to handle the response via onreadystatechange.
Another technique is to loop on the main thread, polling the readystate property.
For example:
While xmlhttp.readystate <> 4
' async request not complete yet; still waiting
Wend
But this is not as efficient as the ServerXMLHTTP's WaitForResponse method
Has a waitForResponse method with a timeout when using async calls.
3
Allows configuring timeouts when sending messages.
4
Is designed for single-user, desktop applications, such as running in a browser-based app.
XMLHTTP's assumption that it is used only in single-user environments has security implications.
Do not use XMLHTTP in multi-user scenarios such as on IIS/ASP servers.
Also, in various cases, XMLHTTP may display UI dialogs (to collect credentials).
Supports multi-user, server-based applications, such as ASP apps.
5
Because XMLHTTP is designed for single-user client applications and is based on WinInet, it enforces strict limits on the number of simultaneous connections to a given server.
The limit is either 2 or 4 (depending on HTTP version).
The ServerXMLHTTP component does not impose any limits on the number of connections to a server.
6
XMLHTTP integrates with the IE browser's cache, which may cause problems in which "stale" response data is returned.
ServerXMLHTTP does not implement a cache.
7
XMLHTTP is HTTP/1.1 compliant.
XMLHTTP does support HTTP/1.1 chunking.
ServerXMLHTTP reports itself as an HTTP/1.0 client.
The reason is that ServerXMLHTTP does not support the HTTP/1.1 response "chunking" feature, which is required for 1.1 compliance.
8
By using the IE browser's proxy settings, XMLHTTP can take advantage of IE's auto-detection of proxy servers.
If IE is configured to access sites via a proxy server, then all requests made via XMLHTTP will also go through the proxy.
However, IE (and thus XMLHTTP) can be configured to bypass the proxy server for certain sites (assuming that a direct connection to the target server can be made).
This is done in the "Tools/Internet Options/Connections/LAN Settings" dialog in IE.
The "Bypass proxy server for local addresses" option should be checked to have the proxy server bypassed for intranet sites.
ServerXMLHTTP does not support any auto-detection or discovery of proxy servers; you must explicitly specify the name of the proxy server using the proxycfg.exe utility.
Can be configured with WinHTTP proxy config to access other machines directly (no proxy server).
9
The XMLHTTP component in MSXML 3.0 supports automatic gzip decompression;
ServerXMLHTTP does not.
10
ServerXMLHTTP in MSXML 3.0 SP1 supports SSL certificates.
11
重用Socket端口,或者有Socket端口缓存.
没有缓存,每次连接都会启用一个新的Socket端口.
12
默认的CodePage是UTF8.
默认时,URL被先转换为UTF8编码.