2008-09-16 9 views
6

मैं एक सर्वर के रूप में टोमकैट और ब्राउज़र के रूप में इंटरनेट एक्सप्लोरर 6 का उपयोग कर रहा हूं। हमारे ऐप में एक वेब पेज में लगभग 75 छवियां हैं। हम एसएसएल का उपयोग कर रहे हैं। यह सभी सामग्री लोड करने में बहुत धीमी प्रतीत होता है। मैं टोमकैट को कैसे कॉन्फ़िगर कर सकता हूं ताकि आईई छवियों को कैश कर सके?एचटीटीपीएस पर दी गई छवियों जैसी सामग्री बनाने के लिए मुझे क्या करना चाहिए क्लाइंट-साइड कैश किया जाना चाहिए?

उत्तर

10

आप https पर एक पेज की सेवा कर रहे हैं तो आपको https भर में शामिल स्थिर या गतिशील संसाधन सेवा करने के लिए की आवश्यकता होगी (या तो एक ही डोमेन, या किसी अन्य डोमेन, भी https भर से) में एक सुरक्षा चेतावनी से बचने के लिए ब्राउज़र।

सामग्री को सुरक्षित चैनल के लिए दिया अधिकतर ब्राउज़रों द्वारा डिफ़ॉल्ट रूप से डिस्क पर लिखी नहीं किया जाएगा और इसलिए ब्राउज़रों कैश मेमोरी है, जो ज्यादा डिस्क कैश पर से छोटा होता है में रहती है। एप्लिकेशन छोड़ने पर यह कैश भी गायब हो जाता है।

यह सब वहाँ बातें आप एक ही ब्राउज़र सेटिंग के अंदर एसएसएल संपत्ति के लिए cachability सुधार करने के लिए कर सकते हैं ने कहा करने के बाद। शुरुआत करने वालों के लिए, सुनिश्चित करें कि आपके सभी संपत्तियों में उचित समय सीमा समाप्त हो और कैश-कंट्रोल हेडर हों। अगर टोमकैट अपाचे के पीछे बैठा है तो उन्हें जोड़ने के लिए mod_expires का उपयोग करें। यह ब्राउज़र की जांच किए यदि छवि दूसरे

<Location /images> 
    FileEtag none 
    ExpiresActive on 
    ExpiresDefault "access plus 1 month" 
</Location> 

पृष्ठों

के बीच बदल गया है से बचने के हो जाएंगे और इससे MSIE और अपाचे के लिए विशिष्ट है, सबसे apache ssl कॉन्फ़िगरेशन इन पंक्तियों को शामिल

SetEnvIf User-Agent ".*MSIE.*" \ 
    nokeepalive ssl-unclean-shutdown \ 
    downgrade-1.0 force-response-1.0 

कौन सा keepalive अक्षम कर देता है सभी एमएसआईई एजेंटों के लिए। आईएमएचओ यह बहुत रूढ़िवादी है, अंतिम एमएसआईई ब्राउज़र एसएसएल का उपयोग कर मुद्दों के लिए 5.x और 6.0 प्री एसपी 2 के अप्रतिबंधित संस्करण थे, जिनमें से दोनों अब असामान्य हैं। निम्नलिखित अधिक उदार जब MSIE और एसएसएल

BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 
BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown 
-1

एक HTTPS कनेक्शन पर सेवा की गई सामग्री ब्राउज़र में कभी भी कैश नहीं मिलता है। आप इसके बारे में ज्यादा कुछ नहीं कर सकते।

आमतौर पर, अपने वेब साइट में छवियों बहुत ही संवेदनशील नहीं हैं और यह बहुत ही कारण के लिए HTTP पर परोसा जाता है।

2

75 छवियां बहुत पसंद करती हैं। यदि यह बहुत छोटी छवियां हैं, तो कई छवियों को एक के रूप में बंडल करने के तरीके हैं, आप देख सकते हैं कि क्या आप एक लाइब्रेरी पा सकते हैं जो ऐसा करता है। इसके अलावा आप छवियों को google gears जैसे कुछ में कैश करने के लिए मजबूर कर सकते हैं।

-1

पहले जवाब यह है कि जब HTTPS का उपयोग करके कुछ भी नहीं कैश किया गया है सही है। हालांकि, जब आप अपना वेब पेज बनाते हैं, तो आप छवियों को उनके व्यक्तिगत यूआरएल द्वारा संदर्भित करने पर विचार कर सकते हैं। इस तरह आप छवियों को HTTP स्रोत से उत्पन्न करने के रूप में निर्दिष्ट कर सकते हैं, और वे ब्राउज़र द्वारा कैश किए जाने की संभावना होगी।

5

कुछ ब्राउज़र एसएसएल सामग्री को कैश होगा उपयोग कर रहा है और keepalives अक्षम नहीं करेंगे। फ़ायरफ़ॉक्स 2.0+ डिफ़ॉल्ट रूप से डिस्क पर एसएसएल संसाधनों को कैश नहीं करता है (बढ़ी हुई गोपनीयता के लिए)। फ़ायरफ़ॉक्स 3+ उन्हें डिस्क पर कैश नहीं करता है जब तक कि कैश-कंट्रोल: सार्वजनिक हेडर प्रकट न हो।

तो सेट सीमा समाप्त होगी: हैडर सही ढंग से और कैश-नियंत्रण: सार्वजनिक। जैसे

<Files ~ "\.(gif|jpe?g|png|ico|css|js|cab|jar|swf)$"> 
     # Expire these things 
     # Three days after access time 
     ExpiresDefault "now plus 3 days" 
     # This makes Firefox 3 cache images over SSL 
     Header set Cache-Control public 
</Files> 
-1

शायद आप अतिरिक्त सर्वर/सबडोमेन जोड़ सकते हैं जो बिना https के छवियों को प्रदान करता है?

4

उन 75 छवियों का एक बहुत आइकन या छवि है कि हर पृष्ठ पर दिखाई देते हैं, आप CSS स्प्राइट का उपयोग कर सकते तेजी से HTTP अनुरोध की संख्या को कम करने के लिए और इस तरह तेजी से पेज लोड कर रहे हैं:

http://www.alistapart.com/articles/sprites/

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

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