对于这个情况,IE能,但IDHTTP确不能。这是有原因的:
1.IDHTTP只支持SERVER端直接控制的转向。就是说他只支持SERVER说的:“转向!!!”
2。而 TVBOOK.YEAH.NET的转向是由SERVER返回的网页中的脚本控制的,脚本是由IE分析并
执行的,也就是说IE分析了网页中的脚本并执行了,然后转向了另外的URL,
3。所以说IE能转,IDHTTP不能就是因为他没有脚本分析和执行功能。
看看TVBOOK.YEAH.NET的运行过程吧:
--------连接请求数据包-------------
GET / HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)
Host: tvbook.yeah.net
------服务端返回数据包----------
HTTP/1.1 200 OK
Date: Sat, 01 May 2004 22:39:11 GMT
Server: Apache/1.3.28 (Unix) mod_virtual/0.97.1
Connection: close
Content-Type: text/html
[blue]<HTML>
[red]<meta http-equiv="refresh" content="3;url=http://api8.8u8.com/e800.rar">[/red]<body><script> window.open('http://popme.163.com/netease/pop_domain.html','my','width=400,height=300'); </script></html>[/blue]
省略。。。
--------连接请求数据包-------------
GET /e800.rar HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Pragma: no-cache
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)
Host: api8.8u8.com
------服务端返回数据包----------
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Cache-Control: max-age=180
Expires: Sat, 01 May 2004 22:44:25 GMT
Date: Sat, 01 May 2004 22:41:25 GMT
Content-Type: application/octet-stream
Accept-Ranges: bytes
Last-Modified: Fri, 30 Apr 2004 11:33:14 GMT
ETag: "62caaaeca62ec41:15bf"
Content-Length: 249856
等待IE确定保存路径后,IE就开始接受文件的内容了
4。所以你必须更据返回网页中的[red]<meta http-equiv="refresh" content="3;url=http://api8.8u8.com/e800.rar">[/red]来重新GET 这个URL。