php.ini 設定預設的 session.gc_maxlifetime 值為1440,該怎麼理解這個值。
當我造訪需要登入的網站的時候,一般情況下一直在操作的話登入時不會失效的,當達到一段時間沒有操作,那麼就需要重新登入了。我看了下網路上的一些資料,了解了session的保存方式和回收機制,但還是有個問題理解的不是很清楚。
先不考慮這個回收機制可能造成的問題,也不考慮cookie(假設cookie是一直有效的)。
假設session.gc_maxlifetime設定的就是這個預設值 1440,我第一次登入的時候操作了session,儲存了使用者訊息,之後就沒有改變過session。
是不是之後我不管發起了多少次請求,這個session的修改時間依舊是我登入的時間?
是不是超過1440秒之後session就失效了,不管我有沒有在這個網站操作?
還是說我一直在這個網站操作,session 的修改時間會更新,也就是說只有超過1440秒不在這個網站活動session才會刪除?
還是session不是根據修改時間來刪除的,只有在超過一定的時間不活躍之後才會刪除?
希望的到一份詳細一點的回答,謝謝!
回覆內容:
php.ini 設定預設的 session.gc_maxlifetime 值為1440,該怎麼理解這個值。
當我造訪需要登入的網站的時候,一般情況下一直在操作的話登入時不會失效的,當達到一段時間沒有操作,那麼就需要重新登入了。我看了下網路上的一些資料,了解了session的保存方式和回收機制,但還是有個問題理解的不是很清楚。
先不考慮這個回收機制可能造成的問題,也不考慮cookie(假設cookie是一直有效的)。
假設session.gc_maxlifetime設定的就是這個預設值 1440,我第一次登入的時候操作了session,儲存了使用者訊息,之後就沒有改變過session。
是不是之後我不管發起了多少次請求,這個session的修改時間依舊是我登入的時間?
是不是超過1440秒之後session就失效了,不管我有沒有在這個網站操作?
還是說我一直在這個網站操作,session 的修改時間會更新,也就是說只有超過1440秒不在這個網站活動session才會刪除?
還是session不是根據修改時間來刪除的,只有在超過一定的時間不活躍之後才會刪除?
希望的到一份詳細一點的回答,謝謝!
SESSION的回收是在每次造訪頁面的時候進行:
回收的機率= session.gc_probability/session.gc_divisor,預設是1/1000.如果設定為1,則每次超過了SESSION的生存週期(session.gc_maxlifetime,預設是1440秒也就是24分鐘)去存取的話,SESSION一定會被回收. 客戶端每訪問一次SESSION中的變數,SESSION檔案的存取時間就會進行更新. 每次存取都是根據客戶端儲存的PHPSESSID這個cookie去請求伺服器中儲存的唯一的SESSION.當客戶端的cookie過期後,就無法知道要存取的是哪一個SESSION,儘管此時伺服器上的SESSION檔案還沒有被過期收回,這樣就會造成伺服器資源的浪費. 如果使用者透過點擊"退出"按鈕退出系統,這時程式可以註銷掉cookie和session. 如果使用者沒有通知系統就關閉瀏覽器退出,sess_PHPSESSID檔案則只能依賴手動回收.
PHP的session採用被動的回收機制,過期的session檔案不會自己消失,而是透過要求觸發"回收"來處理過期的session.
這時可以定時任務(crontab)自動刪除過期的session:
找出24分鐘前的檔案並刪除:find /path/to/sessions -cmin +24 -type f | xargs rm
這個值是距離你最後一次刷新頁面的時間,也就是你刷新完頁面後24分鐘未做任何操作,服務端就會把session刪除掉。但是,是否會刪除又和在php.ini中設定的刪除命中率有關,如session.gc_divisor=1000,session.gc_probability=1,就表示每一千個用戶調用session_start()的時候,就百分百的會執行一次垃圾回收機制,將磁碟上沒用的session檔刪除。而這個刪除又不確定是哪個使用者的session檔。所以,session是會話技術,就當成與瀏覽器是否關閉重寫打開放在一起理解就好。就是,我只要關掉瀏覽器了,這次會話就斷了,那個session自然失效。 。 。 。個人淺顯理解,如有錯誤希望有大神指正?

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境