2007年5月2日

User Agent 的大写字母导致不能浏览 Live Spaces

Author: Hagen.GoO 转载请联系作者
MSN_contact: wantm009@hotmail.com
Keyword:浏览器,User Agent,Live Spaces,Sniffer,
Quote:


  浏览器是 IE 6.0 SP1,每次浏览 Microsoft Live Spaces 的用户页面时,不是正常显示网页内容,而是弹出一个文件下载的对话框,下载下来的文件却是该 Live Spaces 的正常页面。



  在该机器上,用Opera、FireFox等第三方浏览器,都能正常访问 Live Spaces,而用Maxthon、GreenBrowser等基于IE内核的浏览器都是弹出文件下载对话框,百思不解。
  细看被下载下来的网页,有 关键字,不同于普通的 HTML 页面。无奈之下,使用网络嗅探器Sniffer:

GET / HTTP/1.1
Accept: application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.0)
Host: hagengoo.spaces.live.com
Connection: Keep-Alive



  这是浏览器发送的请求,下面是 Live Spaces 服务器的响应:

HTTP/1.1 200 OK
Cache-Control: private
Date: Tue, 24 Apr 2007 21:17:19 GMT
Content-Type: application/xhtml+xml; charset=utf-8
Server: Microsoft-IIS/6.0
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-Powered-By: ASP.NET
MSNSERVER: H: TK2SPCWEBA146 V: 1 D: 1/1/2000
X-AspNet-Version: 2.0.50727



  Live Spaces 的 IIS 给出的 Content-Type 居然是IE 6.0 SP1 所不支持的 application/xhtml+xml,查看另外机器 IE 6.0 SP1 的浏览情况,Live Spaces 的 IIS 给出的却是常见的“Content-Type: text/html”,这样看来不是 Live Spaces 的问题。问题应该是 Lives Spaces 的 IIS 没有正确识别客户端的IE浏览器所致。
  于是回过头检查 IE 发送的 User-Agent,唯一有别于正常浏览器的地方就是 Compatible 的首字母大写了。马上打开注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent,找到键值 Compatible ,将其全部小写,重开浏览器,问题即告解决。

没有评论: