-1

我目前正在为一个希望利用 cookie 来更好地塑造他们的流量等的客户构建一个网络应用程序,等等,你知道这个练习。

所以在上周结束时,我添加了一个简单的 cookie 写入(基本上设置 cookie="helloworld")和一个带有计数器的 cookie 读取到应用程序,这实际上只是一个页面,所以对服务的每个请求都会通过这个读取/肯定写。

部署 cookie 读取率后的几百万个请求占总请求的约 25%,而现在在周末之后,它们仅攀升至约 33%。


供参考:没有设置路径,域是固定的,有效期是从创建开始的一个月。重复访问的次数相对较高。我对设置/获取和计数的技术有 100% 的信心。


更新:进一步调查显示,非 IE 浏览器的接受率为90% 。将自己标识为 IE(无疑包括许多机器人)的请求有10%的接受率。基于 fiddler 会话(由 firebug 确认),响应标头如下所示:

HTTP/1.1 200 OK
Content-Encoding: gzip
Expires: Wed, 09 Jun 1993 00:00:00 GMT
Vary: Accept-Encoding
Set-Cookie: foo; domain=bar.com; expires=Sat, 11-Jul-2009 11:10:19 GMT; path=/; HttpOnly
Cache-Control: no-cache
Cache-Control: private
Cache-Control: no-store
Cache-Control: must-revalidate
Cache-Control: max-stale=0
Cache-Control: post-check=0
Cache-Control: pre-check=0
Date: Thu, 11 Jun 2009 11:10:19 GMT
Transfer-Encoding: chunked
X-AspNet-Version: 2.0.50727
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Type: text/html
Pragma: no-cache

所以我有两个理论:

1)。IE 发现标头中存在冲突,导致它忽略 cookie——这可能与缓存控制字段有关吗?

2)。IE 需要的东西丢失或格式不正确。我找不到这种谷歌搜索的证据。

任何人都可以发现上面的标题有问题或有类似的经验吗?

4

3 回答 3

2

为了未来读者的利益,事实证明它只是在一个未预料到的实现上执行P3P 。

死我死

于 2009-06-12T12:01:19.207 回答
1

当我想到更多原因时,我会更新列表,但这些都是可能的。

  • 您的网站是否使用任何创意形式的框架?
  • 您是否使用 Javascript 设置 cookie,您的用户是否可能启用它?
  • Javascript跨浏览器兼容吗?
  • 目标受众是否可能禁用 cookie?
  • 您是否有很多机器人在抓取您的网站?
  • 每个页面上都有跟踪代码吗?

您是否将 cookie 响应与 HTTP 请求的总数进行比较?您是否意识到您的一些请求可能是图像、css 或其他可能不会发送 cookie 标头的内容?我想我在某处读到浏览器没有将 cookie 标头用于某些类型的内容。

于 2009-06-01T09:16:34.393 回答
0

我想由于声明不准确,浏览器会拒绝 cookie。您尤其缺少有效性信息(Domain,PathExpires/ Max-age)。事实上,丢失ExpiresMax-age信息将使该 cookie 只是一个会话 cookie,在关闭浏览器时到期。

于 2009-06-01T09:40:47.510 回答