2009-06-01 55 views
0

我目前正在爲希望利用cookie來更好地塑造其流量等的客戶構建一個Web應用程序,您知道該演練。Cookie接受度很低的原因是什麼?

所以在上週結束時,我添加了一個簡單的cookie寫入(基本上設置cookie =「helloworld」)和一個應用程序的計數器讀取的cookie,這實際上只是一個頁面,所以每個服務請求經過這個讀/寫肯定。

在部署cookie讀取率後,幾百萬個請求佔總請求的25%,現在在週末之後,他們只能勉強達到33%。


僅供參考:未設置路徑,域是固定的,到期時間是從創建起的一個月。重複訪問的次數相對較多。我對設置/獲取和計數技術充滿信心。


更新:進一步的調查顯示,接受率是瀏覽器哪個(驚奇,驚奇)是不是IE 90%。將自己標識爲IE(無疑包括多個機器人)的請求的接受率爲10%。基於一個Fiddler會話(由螢火蟲確認),響應頭是這樣的:

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需要某些內容缺失或格式錯誤。我找不到有關這個Google搜索的證據。

任何人都可以找到以上標題或有類似經驗的錯?

+0

我必須得到足夠的選票才能關閉我自己的問題嗎?嗯,uservoice ... – annakata 2009-06-12 12:02:21

回答

2

爲了未來讀者的利益,事實證明它只是在不期望的實現上佯裝P3P

DIE IE DIE

1

我會更新列表,因爲我想更多的原因,但這些都是可能的。

  • 您的網站是否利用任何創意形式的框架?
  • 您是否使用Javascript設置Cookie,並且您的用戶可能已啓用?
  • Javascript跨瀏覽器是否兼容?
  • 目標受衆可能是否禁用了Cookie?
  • 你有很多機器人在爬你的網站嗎?
  • 是否在每個頁面上都有跟蹤代碼?

您是否將cookie響應與HTTP請求總數進行比較?您是否意識到您的某些請求可能是圖片,CSS或其他可能不會發送cookie標頭的內容?我認爲我在某些地方瀏覽器沒有使用cookie頭來處理某些類型的內容。

+0

不,沒有和沒有(沒有JS,這一切都是用C#完成的)。這是一個非常大的觀衆,但大多數將是隨機的公共用戶。不,是的,只有一頁。 – annakata 2009-06-01 09:26:39

+0

對編輯的迴應:不,絕對只是比較實際的數據請求,但我不確定您是否正確地使用Cookie進行瀏覽器歧視。 – annakata 2009-06-01 09:37:55

0

我想由於瀏覽器的聲明不準確,cookies會被瀏覽器拒絕。您特別錯過了有效性信息(Domain,PathExpires/Max-age)。事實上,缺少ExpiresMax-age信息會使該cookie只是一個會話cookie,在關閉瀏覽器時過期。