2012-03-19 15 views
8
से कैश नहीं संपत्ति करता

परिदृश्य:ब्राउज़र (क्रोम) CloudFront

मैं सेटअप प्रगतिशील धारा के लिए कस्टम मूल से एक CloudFront distribuition (अपने सर्वर) mp4 वीडियो फ़ाइलों की एक सूची।

ये फ़ाइलें क्रोम मूल HTML5 वीडियो एपीआई के माध्यम से looped और खेला जाता है। जब भी वीडियो समाप्त होता है क्रोम फ़ाइल को एक और अनुरोध करता है।

जब मेरे सर्वर से फ़ाइल खेलने, क्रोम रिटर्न

Status Code:206 Partial Content (from cache) 
प्रत्येक अनुरोध पर

, जबकि जब CloudFront से एक ही फाइल खेल रहे हैं, क्रोम कभी नहीं फ़ाइल कैश और प्रत्येक अनुरोध पर इसे डाउनलोड करने रहता है!

एक ही फ़ाइल के क्रोम में
HTTP/1.0 206 Partial Content 
Date: Mon, 19 Mar 2012 19:47:44 GMT 
Server: Apache 
Last-Modified: Mon, 19 Mar 2012 12:35:37 GMT 
ETag: "a78e87ba-335d8e-4bb97cb9f887f" 
Accept-Ranges: bytes 
Content-Type: video/mp4 
Content-Range: bytes 4228-3366285/3366286 
Content-Length: 3362058 
Age: 3819 
X-Cache: Hit from cloudfront 
X-Amz-Cf-Id: xxxxxx 
Via: 1.0 xxxxxx.cloudfront.net (CloudFront) 
Connection: keep-alive 

प्रतिक्रिया हेडर को अपने सर्वर से (मूल):

HTTP/1.1 206 Partial Content 
Date: Mon, 19 Mar 2012 20:50:40 GMT 
Server: Apache 
Last-Modified: Mon, 19 Mar 2012 12:35:37 GMT 
ETag: "a78e87ba-335d8e-4bb97cb9f887f" 
Accept-Ranges: bytes 
Content-Length: 3366286 
Content-Range: bytes 0-3366285/3366286 
Keep-Alive: timeout=2, max=256 
Connection: Keep-Alive 
Content-Type: video/mp4 

मैं कुछ याद आ रही हूँ

ये अमेज़न CloudFront से प्रतिक्रिया हेडर क्रोम में कर रहे हैं?

शायद कारण क्लाउडफ्रंट प्रतिक्रिया से Keep-Alive शीर्षलेख की कमी में है? या शायद विभिन्न HTTP प्रोटोकॉल संस्करण (1.0 बनाम 1.1) में?

अद्यतन:

मैं यह भी कहा समाप्त हो रहा है और कैश-नियंत्रण हेडर, कुछ भी नहीं बदला। यह दुखद रूप से सुंदर बनाता है बेकारखतरनाक एचटीएमएल 5 वीडियो एपीआई और अमेज़ॅन क्लाउडफ्रंट संयोजन।

इंस्पेक्टर से एक स्क्रीनशॉट, आप देख सकते हैं के रूप में फ़ाइल प्रत्येक पाश पर फिर से डाउनलोड किया जाता है: http://i.imgur.com/go1zN.jpg

अद्यतन: http://i.imgur.com/0VyZD.jpg

इस फ़ाइल में स्थानीय सर्वर से लोड के साथ एक और स्क्रीनशॉट है 2:

ऐसा लगता है कि यह कड़ाई से क्लाउडफ्रंट से संबंधित नहीं है। विभिन्न परीक्षणों के बाद ऐसा लगता है क्रोम वीडियो कैश नहीं करता है तो

1) फ़ाइल 2Mb 2) से भी बड़ा है Content-Range हैडर 0 पर शुरू नहीं करता है (ऊपर विभिन्न उदाहरण देखें)

और मुझे लगता है यह केवल मूल HTML5 वीडियो एपीआई और इसकी 206 आंशिक सामग्री स्थिति से संबंधित है।

उत्तर

8
अपने CloudFront प्रतिक्रिया से

:

HTTP/1.0 206 आंशिक सामग्री

HTTP/1.0 एक 206 प्रतिक्रिया कोड (कि/HTTP में जोड़ा गया 1.1) तो क्रोम का कैश शामिल नहीं है परत प्रतिक्रिया का पुन: उपयोग करने से मना कर दिया। http://crbug.com/128116 में अधिक क्रोम-विशिष्ट विवरण, लेकिन संक्षिप्त उत्तर यह है कि क्लाउडफ्रंट को 206 प्रतिक्रियाओं को HTTP/1.1, नहीं/1.0 के रूप में प्रस्तुत करना चाहिए।

+0

एफटीआर, https://forums.aws.amazon.com/thread.jspa?threadID=96247 – Ami

+2

में एडब्ल्यूएस सीएफ को सूचित किया गया है क्या इसके लिए कोई क्लाइंट-साइड वर्कअराउंड है? मुझे नफरत है कि मेरे सभी वीडियो कैसे कैश नहीं करेंगे। –

+0

यह भी देखें: https://forums.aws.amazon.com/thread.jspa?threadID=124998 –

2

कोई समाप्ति/कैश-नियंत्रण शीर्षलेख निर्दिष्ट नहीं है। क्रोम आइटमों को कैश करने के बारे में वास्तव में विशेष हो सकता है (विशेष रूप से जब उन्हें जावास्क्रिप्ट के माध्यम से डीओएम में गतिशील रूप से जोड़ा जाता है) यदि कोई एक्सपियर हेडर प्रदान नहीं किया जाता है।

http://code.google.com/speed/page-speed/docs/caching.html

गूगल से

:

यह में से एक निर्दिष्ट करने के लिए महत्वपूर्ण है समय-सीमा समाप्त या कैश-नियंत्रण अधिकतम उम्र, और अंतिम-Modified या ETag में से एक, सभी कैश करने योग्य संसाधन के लिए। एक्सपियर और कैश-कंट्रोल दोनों निर्दिष्ट करने के लिए अनावश्यक है: अधिकतम आयु, या अंतिम-संशोधित और ईटीएजी दोनों निर्दिष्ट करने के लिए।

+0

धन्यवाद, मैं एक एक्सपियर हेडर जोड़ने और कोशिश करने जा रहा हूं। हालांकि मैं अभी भी समझ नहीं पा रहा हूं कि क्यों क्रोम मेरे सर्वर से फ़ाइल को कैश करता है, क्लाउडफ़्रंट से नहीं। – achairapart

+0

स्थानीय सर्वर और अमेज़ॅन दोनों से परोसा जाता है जब फ़ाइल के आसपास अन्य आइटम समान हैं? शायद कैशिंग हेरिस्टिक उस मूल्यांकन के लिए पड़ोसी सामग्री के आधार पर उस फ़ाइल के लिए अलग-अलग क्या करना है इसका मूल्यांकन कर रहा है। – javram

+0

हेडर जोड़े गए, कुछ भी नहीं बदला। अन्य वस्तुओं का एक ही व्यवहार है। मुझे संदेह है कि यह 206 आंशिक सामग्री स्थिति के साथ कुछ है। मैंने क्रोम इंस्पेक्टर से एक स्क्रीनशॉट भी जोड़ा। – achairapart

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