मानक सत्र जीवनकाल 24 मिनट (1440 सेकंड) क्यों है?


101

मैं PHP सत्र हैंडलिंग पर कुछ शोध कर रहा हूं और session.gc_maxlifetime1440 सेकंड के मूल्य पर आया हूं । मैं सोच रहा था कि मानक मूल्य 1440 क्यों है और इसकी गणना कैसे की जाती है? इस गणना का आधार क्या है?

सत्रों को रखने में कितना समय लगता है? सत्र के लिए न्यूनतम / अधिकतम मान। Gc_maxlifetime क्या आप सुझाएंगे? अधिक मूल्य, वेब-ऐप सत्र अपहरण के लिए अधिक संवेदनशील है, मैं कहूंगा।


+1अच्छा प्रश्न। से संबंधित कुछ, 60 x 12 x 2 ... दिलचस्प जवाब की प्रतीक्षा करें ... :)
प्रवीण कुमार पुरुषोत्तम

4
यहां स्रोत कोड लाइन है जहां डिफ़ॉल्ट मान सेट किया गया है । GIT से परिचित लोग इसके इतिहास को ट्रैक करने में सक्षम हो सकते हैं और शायद RFC या बग टिकट (यदि कोई हो) का पता लगा सकते हैं।
अल्वारो गोंजालेज

1
@ अनिल: यह चर्चा मेरे सवाल का जवाब नहीं देती है।
अन्ना वोक्कल

2
@ ThelvaroG.Vicario मैंने परिवर्तन पाया: github.com/php/php-src/commit/… फिर भी शून्य प्रासंगिक संबद्ध दस्तावेज़ है। 1440वास्तव में टाइमआउट के लिए मिनटों की मूल संख्या थी, इसलिए मुझे लगता है कि हम कभी नहीं जान पाएंगे जब तक कि कोई शचा शूमन को ट्रैक नहीं करता।
दाई

6
मुझे साचा का ईमेल पता मिला और उसने इस बारे में उससे संपर्क किया, मैं लोगों को बता दूंगा कि क्या वह जवाब देता है।
दाई

जवाबों:


183

असली जवाब शायद इसके बहुत करीब है:

PHP3 दिनों के दौरान, PHP के पास सत्र समर्थन नहीं था।

लेकिन PHPLIB नामक एक ओपन-सोर्स लाइब्रेरी, जिसे शुरू में NetUSE AG के बोरिस एर्डमैन और क्रिस्टियन कोएहंटॉप द्वारा लिखा गया था, PHP3 कोड के माध्यम से सत्र प्रदान करता था।

सत्र जीवनकाल मिनटों में परिभाषित किया गया था , सेकंड नहीं। और डिफ़ॉल्ट जीवनकाल 1440 मिनट, या ठीक एक दिन था। यहाँ PHPLIB से कोड की एक पंक्ति है:

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

शचा शूमन 1998 से 2000 की अवधि के आसपास PHPLIB परियोजना से जुड़े थे। इसमें कोई संदेह नहीं है कि वे PHPII कोड से परिचित थे।

तब PHP4 देशी सत्र समर्थन के साथ वर्ष 2000 में सामने आया, लेकिन अब जीवनकाल सेकंडों में निर्दिष्ट किया गया था।

मैं शर्त लगाता हूँ कि किसी ने कभी भी मिनटों को सेकंड में बदलने की जहमत नहीं उठाई। यह संभव है कि वह व्यक्ति शचा शूमन था। एक बार उस मूल्य को Zend इंजन में कोडित कर दिया गया, तो यह कॉन्फ़िगरेशन ( php.ini) डिफ़ॉल्ट भी हो गया।


3
यह किसी की आँखों पर प्रहार करता है कि इकाई को बदलते समय 24 का एक विशेष अर्थ निकलता है। इसलिए दिए गए उत्तरों में से आपका सबसे अधिक अर्थ मेरे लिए है।
मार्कस मल्कुश

1
यह तो दिलचस्प है। साझा करने के लिए धन्यवाद! :)
SysVoid

3
यह वास्तव में दिलचस्प है! धन्यवाद!
अन्ना वोक्कल

PHP4 डिफ़ॉल्ट सेटिंग्स का एक संदर्भ: github.com/php/php-src/blob/PHP-4.0/ext/session/session.c
CXJ

PHP प्रलेखन के अनुसार सत्र जीवनकाल सेकंड में सेट किया गया है: php.net/manual/en/…
lemhannes

-16

1440 का उपयोग समय गणना में सेकंड / घंटे / दिन में किया जाता है।

  • 1 दिन = 24 घंटे (घंटे * 24 = 1 दिन)
  • दिन = 1440 मिनट (मिनट * 60 * 24 = 1 दिन)
  • दिन = 86400 सेकंड (सेकंड * 60 * 1440 = 1 दिन)

उदाहरण:

9 दिन [* 60] = 540 [* 1440] = 777600 सेकंड

वही उल्टा सच है:

777600 सेकंड [/ 1440] = 540 [/ 60] = 9 दिन


14
तो यह मानक जीवनकाल क्यों है?
फेलिक्स गगनोन-ग्रेनियर

3
क्योंकि इसकी गणित नीरद संख्या लगभग वैसी ही होती है जैसे कि शोध से पता चलता है कि एक ही सत्र में दो अनुरोधों के बीच सबसे बड़ा समय (20-30 मिनट) है।
डिमिटर वेसेलिनोव

22
@dimitarveselinov कौन सा शोध?
मार्कस मल्कुश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.