嗨,我是一名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. 如何通過指定用戶會話從服務運行ocx
- 5. 管理iPhone應用程序用戶的Web服務器上的用戶會話
- 6. 2臺服務器上的Passport會話
- 7. apache服務器如何處理會話?
- 8. 如何安全地確定用戶在使用客戶會話
- 9. iOS/RoR - 服務器和客戶端上的oauth2會話
- 10. toplink客戶端會話與服務器會話
- 11. 春季服務器/客戶端會話和休眠會話
- 12. JSP如何查看服務器上的所有會話
- 13. 如何殺死/放棄服務器上的所有asp.net會話
- 14. 如何刷新/保持CAS服務器上的「父」會話
- 15. c#如何確定特定登錄的Windows用戶的會話ID用戶
- 16. 確定用戶是否在服務器上OS
- 17. 確定哪個用戶會話失效
- 18. 算法問題:確定「用戶會話」
- 19. 如何在Parse服務器上過期非活動會話
- 20. 如何在用戶的會話鎖定
- 21. Web服務器如何通過服務器端的會話變量維護每個用戶的請求
- 22. 確定服務器上連接的客戶端的IP地址
- 23. 如何確定服務器控件的客戶端名稱?
- 24. 創建服務以根據用戶會話確定字符串格式
- 25. 如何保存和恢復服務器中的所有用戶會話
- 26. 安全會話登錄到電話上的服務器
- 27. 如何將用戶會話傳遞給REST Web服務
- 28. 如何在客戶端使用web服務保持會話?
- 29. 閃亮的服務器 - 如何使用會話$ onSessionEnded()
- 30. 會話管理 - Websphere應用服務器
http://stackoverflow.com/questions/2954879/how-session-works – 2013-05-02 06:17:36