嗨,我是一名PHP程序員。 我在採訪中被問到客戶端的會話存儲在客戶端計算機上的瀏覽器/ cookie文件中,然後服務器如何識別從我自己的PC登錄的同一用戶,並且我必須僅顯示屬於對我來說? 請幫忙。如何確定服務器上的用戶會話
回答
當您在系統(或會話開始)登錄,唯一的會話ID創建,它通常存儲在餅乾。這將識別您的瀏覽器。
服務器然後使用此會話ID從服務器獲取數據。
SESSION
存儲在服務器端,而不是客戶端。
SESSION
在客戶端存儲爲PHPSESSID
作爲COOKIE
用於標識各個用戶。
$ _SESSION變量存儲在服務器上,並在會話啓動時生成相應的session_id。在客戶端,cookie與該session_id完全相同。通過這種方式,瀏覽器可以識別服務器,並且服務器可以爲該會話/用戶釋放存儲在$ _SESSION中的正確信息。
會話存儲在服務器端。 和每次登錄會話生成一個唯一會話ID。 會話ID服務器標識用戶。 $ _SESSION是會話變量。
會話以
session_start()
開始。如果實際會話沒有獨有的會話標識,php會生成一個並將響應發送給客戶端。瀏覽器將會話ID存儲爲cookie(如果允許)PHPSESSID
,或者如果不是,則必須創建與查詢參數?PHPSESSID=uniquesessionid
的每個鏈接。否則沒有一致的會話是可能的隨着每個請求會話cookie(如果允許)或查詢參數發送。 PHP使用此會話ID標識存儲在服務器端的數據,並且您可以通過
$_SESSION
陣列訪問。因此,您可以在會話數組中存儲用戶名或用戶標識。對於每個會話ID,會話數組都是唯一的。您只能訪問您從瀏覽器獲得的會話。在大多數服務器上,會話存儲在
session.save_path
中配置的路徑下的文件系統中。文件名通常是sess_uniquesessionid
。您可以使用session_save_path()
來確定此路徑,但也可以更改(如果您有權訪問目標路徑)。會話cookie /參數的名稱(標準:
PHPSESSID
)在php.ini中配置爲session.name
。您可以使用session_name()
確定並更改會話名稱。這是必須完成的,然後再致電session_start()
- 1. 如何管理多個服務器上的用戶會話?
- 2. 如何驗證跨服務器的用戶會話?
- 3. 會話用戶數據不更新服務器上的笨
- 4. 用戶的會話狀態服務器自定義超時
- 5. WCF - 確定會話何時在服務器端結束
- 6. 如何通過指定用戶會話從服務運行ocx
- 7. 管理iPhone應用程序用戶的Web服務器上的用戶會話
- 8. 2臺服務器上的Passport會話
- 9. 服務器上的會話問題
- 10. 是否可以在Web服務器上保存用戶會話?
- 11. 服務器如何與RMI中的客戶端進行會話
- 12. apache服務器如何處理會話?
- 13. iOS/RoR - 服務器和客戶端上的oauth2會話
- 14. 如何安全地確定用戶在使用客戶會話
- 15. toplink客戶端會話與服務器會話
- 16. 春季服務器/客戶端會話和休眠會話
- 17. 會話工作不在服務器上
- 18. 如何刷新/保持CAS服務器上的「父」會話
- 19. 如何殺死/放棄服務器上的所有asp.net會話
- 20. JSP如何查看服務器上的所有會話
- 21. c#如何確定特定登錄的Windows用戶的會話ID用戶
- 22. 使用會話ID斷開用戶與服務器的連接
- 23. Symfony的會話價值觀迷失特定服務器上
- 24. OSX上的tmux - 鎖定服務器/會話不工作
- 25. PHP多服務器會話
- 26. 服務器端JavaScript會話
- 27. 確定用戶是否在服務器上OS
- 28. 如何在Parse服務器上過期非活動會話
- 29. 確定哪個用戶會話失效
- 30. 算法問題:確定「用戶會話」
http://stackoverflow.com/questions/2954879/how-session-works – 2013-05-02 06:17:36