首頁 >後端開發 >php教程 >一個session失效的偽命題

一個session失效的偽命題

巴扎黑
巴扎黑原創
2016-12-19 11:22:531228瀏覽

最近遇到一個問題,一個ajax請求會呼叫已存在的session,再依據session做一些處理。發現session有時候有生效有時候沒生效。 

session是儲存到db的,所以不存在存取不同伺服器導致session不一致的問題。 
頁面使用了varnish,一開始以為是varnish 快取了頁面,導致請求沒有執行到php,而是使用了http快取。後來清除了varnish,依然有這個問題。 

我又清理了下請求的頁面,發現頁面的header的簡繁體鏈接用的是html後綴,這個可能是緩存HTML,導致點了這個header的link生成的頁面實際上並不會生成session。而這個快取頁面的ajax自然就沒有session可以取得了。 

好。解決方法來了: 
1 將session的參數帶入ajax,每次請求都帶上,這樣就不用依賴session來處理。 
2 將html改為php。但如果用了varnish或其他快取技術,也有可能會導致上述問題。因此,最好還是用第一個辦法,不依賴session。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn