In most cases, Msxml2.XMLHTTP works well because it has a cache. For example, if we use Msxml2.XMLHTTP to send an http post request to simulate a website login, it will cache the Cookie and Session during login, when we want to GET the website data, we can simply get http, without the need to manually send cookies and sessions.
However, sometimes caching can cause us trouble. For example, if we want to write a VBS script to brute force crack the account of a website, if we have cracked an account and continue to crack the account, the website will think that we have logged in due to the cache relationship, this will interfere with our determination of whether the account has been successfully cracked. That is to say, after successfully cracking an account, you need to add several lines of code to log out of the account. In this case, Msxml2.ServerXMLHTTP without caching should be used.
To sum up, use Msxml2.XMLHTTP if the cache is needed; otherwise, use Msxml2.ServerXMLHTTP.
Original article: http://demon.tw/programming/msxml2-xmlhttp-msxml2-serverxmlhttp-cache.html