Msxml2.XMLHTTP和Msxml2.ServerXMLHTTP的区别与应用场景

Msxml2.XMLHTTP和Msxml2.ServerXMLHTTP的区别与应用场景

Msxml2.XMLHTTP和Msxml2.ServerXMLHTTP的区别与应用场景

发送 HTTP 请求时,首先想到的一般是 Msxml2.XMLHTTP(Microsoft.XMLHTTP 已经不提倡使用了)。

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

ServerXMLHTTP 随 Microsoft XML Parser (MSXML) 版本 3.0 或更高版本提供。

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

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

ServerXMLHTTP 推荐用于服务器应用程序,而 XMLHTTP 推荐用于客户端应用程序。

在大部分情况下,Msxml2.XMLHTTP 能够很好地完成工作,因为它是有缓存的。比如,我们用 Msxml2.XMLHTTP 发送 HTTP POST 请求模拟登陆了某个网站,它会把登陆时的 Cookie 和 Session 缓存下来,当我们想获取网站的数据时直接 HTTP GET 就行了,不需要人工发送 Cookie 和 Session。

但是,在有些时候,缓存会给我们造成麻烦。比如我们要写一个 VBS 脚本暴力破解某个网站的账号,假设我们已经破解了一个账号,继续破解时,由于缓存的关系,网站会认为我们已经登陆了,这样会干扰我们判断账号是否破解成功。也就是说,当成功破解一个账号后,需要多加几行代码登出这个账号。在这种情况下,就应该使用没有缓存的 Msxml2.ServerXMLHTTP。

总结一下就是,如果需要缓存,则用 Msxml2.XMLHTTP;否则应该用 Msxml2.ServerXMLHTTP。

THE END
喜欢就支持一下吧
点赞7 分享