簡體   English   中英

在下一次請求之前沒有保存在瀏覽器中的 cookie

[英]cookie not saved in the browser before the next request

我一直在 php 中開發登錄系統。 這東西效果很好,但我有 1 個我無法擺脫的有趣行為。 基本上,如果我執行許多快速刷新(瘋狂地按 f5),我就會被注銷。

這是因為系統依賴於服務器在每次發出請求時刷新瀏覽器中的 cookie。 我有一種感覺,當刷新非常快的時候,請求N+1是在請求N返回的cookie還沒有保存到瀏覽器之前發出的。 這會導致提供的 cookie 中的信息與服務器預期的信息不一致。

事實上,如果我定期按 f5,比如說每秒一次,則經過身份驗證的 state 會得到維護,並且一切正常。

Any1有過類似的問題嗎? 據您所知,保存 cookies 的進程是否在瀏覽器的不同線程中執行? 我猜這可以解釋我的問題。

格雷西亞斯兄弟

這可能不是保存cookie的問題,而是中止請求的問題。

  • 瀏覽器向服務器發送請求
  • 服務器處理請求,准備新 cookie,使舊 cookie 無效
  • 你按F5
  • 瀏覽器中止請求,使用舊 cookie 發出新請求
  • 服務器發送響應,包括新的 coo--
  • 服務器收到帶有舊的無效 cookie 的新請求

是的,這發生了。 為避免這導致問題,您可能希望允許重用最后兩個cookies,但這需要一些手動 session 雜耍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM