IE就是个悲剧…

3月 18th, 2010 2,112 留下评论 阅读评论

前些日子完成的淘宝商城的访问统计,竟然已经爬到了380万+条pv记录…

早上,老大说统计有问题,uv/pv竟然只有1点几,这个是明显不符合常理的。查看数据库的记录,竟然大堆大堆的session记录都为1条,即一个用户在一个session之内只访问一次页面遍离开了。老大说也许是访问量过于大,服务器吃不消,在一次页面还没有被完全打开的时候,也就是服务器端的cookie还没有返回到客户端时,用户又发起了访问,于是这样就是2个不同session之间的访问了。于是测试,不对…被问用什么浏览器测的,答曰:Chrome和Firefox都正常。IE呢? “IE?”对哦,貌似还有IE的存在!果然,问题就在IE,IE的默认安全级别不允许第三方cookie的写入,于是所有的IE用户的每次访问都是一个uv……悲剧。

今天上班,大家对着抓包器研究了半天http头,谁知百度了下发现有个很奇怪的p3p的属性,加到http头里面就好了,就能解决IE不允许第三方cookie的问题。方法如下:

Java:
response.addHeader("P3P","policyref=\"http://p3p.yahoo.com/w3c/p3p.xml\", " +
	"CP=\"CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR " +
	"DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT " +
	"STA POL HEA PRE GOV\"");
PHP:  header('P3P:……同Java');
.NET: HttpContext.Current.Response.AddHeader("p3p","……同Java");

数据库中的URL有乱码,肯定是中文的关系。测试,于是还是IE,淘宝的keyword属性有时候是中文,不过Chrome和Firefox都会自动将其URLEncoding传到服务器,IE懒懒地就传了ISO的编码的URL过去…只要将ISO-8895-1转化为UTF-8就行了。

不过又没办法,网银、rvpn都只能用IE,这日子啥时是个头…

今天鼻炎又犯,工作的效率好低…555

Categories: Trilogy 标签:, ,
  1. RainFlying | #沙发
    3月 18th, 2010 22:38

    围观!

  2. 3月 18th, 2010 22:00

    这个不能怪IE吧,虽然它确实是渣,但是你遇到的问题似乎标准里没有规定浏览器应该怎么处理。

    • 只是觉得chrome和firefox都支持的很好…就不太爽呵