2009-10-22 13 views
27

मैंने RFC 2616 पढ़ा है, लेकिन फिर भी मुझे आश्चर्य है कि दिनांक फ़ील्ड क्या है। आखिरी संशोधित क्षेत्र है, जिसका वास्तव में मेटाडेटा की सेवा के अलावा अर्थ है, यानी कैशिंग के लिए ('अगर संशोधित-चूंकि')।HTTP दिनांक शीर्षलेख के पीछे तर्क क्या है?

लेकिन अलग-अलग दिनांक शीर्षलेख में जानकारी को दोगुना करने के लिए इसका क्या उपयोग है?

उत्तर

31

प्रति the spec, इसका उपयोग आयु गणनाओं में किया जाता है। यदि आपको नहीं पता कि सर्वर किस समय सोचता है, तो आप संसाधन की "आयु" की गणना करने में सक्षम नहीं होंगे। यहाँ कल्पना से प्रासंगिक पाठ है:

आयु गणना एल्गोरिथ्म, जब एक कैश एक प्रतिक्रिया प्राप्त करता है का सारांश:

age_value
उम्र का मान: हैडर इस के साथ कैश द्वारा प्राप्त प्रतिक्रिया।

date_value
मूल सर्वर के Date: हैडर का मूल्य है

request_time
(स्थानीय) समय था जब कैश अनुरोध कि इस संचित प्रतिक्रिया के परिणामस्वरूप बनाई गई है

response_time
(स्थानीय) समय था जब कैश प्रतिक्रिया

now
प्राप्त वर्तमान (स्थानीय) समय

apparent_age = max(0, response_time - date_value); 
corrected_received_age = max(apparent_age, age_value); 
response_delay = response_time - request_time; 
corrected_initial_age = corrected_received_age + response_delay; 
resident_time = now - response_time; 
current_age = corrected_initial_age + resident_time; 
+0

आह है, ठीक है। तो तारीख आखिरी संशोधन के समान नहीं है? अगर मैं सही ढंग से समझता हूं तो यह और अधिक है "सर्वर कब सामान भेजना शुरू कर दिया?"। यह समझ में आता है ... – Boldewyn

+0

@ बोल्डविन यह सही है - यह "दिनांक और समय जिस पर ** संदेश ** की उत्पत्ति हुई थी"। –

+0

@DanielLubarov कुछ भी लायक नहीं है कि यह केवल प्रतिक्रिया नहीं है जो दिनांक शीर्षलेख भेज सकता है। यह अनुरोधों के लिए भी समर्थित है, जहां ग्राहक पर समय स्थापित करना उपयोगी होगा। दुर्भाग्य से यह आम तौर पर जो मैं देख सकता हूं उससे सेट नहीं होता है –

संबंधित मुद्दे