मैं एक सर्वर के रूप में टोमकैट और ब्राउज़र के रूप में इंटरनेट एक्सप्लोरर 6 का उपयोग कर रहा हूं। हमारे ऐप में एक वेब पेज में लगभग 75 छवियां हैं। हम एसएसएल का उपयोग कर रहे हैं। यह सभी सामग्री लोड करने में बहुत धीमी प्रतीत होता है। मैं टोमकैट को कैसे कॉन्फ़िगर कर सकता हूं ताकि आईई छवियों को कैश कर सके?एचटीटीपीएस पर दी गई छवियों जैसी सामग्री बनाने के लिए मुझे क्या करना चाहिए क्लाइंट-साइड कैश किया जाना चाहिए?
उत्तर
आप 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
एक HTTPS कनेक्शन पर सेवा की गई सामग्री ब्राउज़र में कभी भी कैश नहीं मिलता है। आप इसके बारे में ज्यादा कुछ नहीं कर सकते।
आमतौर पर, अपने वेब साइट में छवियों बहुत ही संवेदनशील नहीं हैं और यह बहुत ही कारण के लिए HTTP पर परोसा जाता है।
75 छवियां बहुत पसंद करती हैं। यदि यह बहुत छोटी छवियां हैं, तो कई छवियों को एक के रूप में बंडल करने के तरीके हैं, आप देख सकते हैं कि क्या आप एक लाइब्रेरी पा सकते हैं जो ऐसा करता है। इसके अलावा आप छवियों को google gears जैसे कुछ में कैश करने के लिए मजबूर कर सकते हैं।
पहले जवाब यह है कि जब HTTPS का उपयोग करके कुछ भी नहीं कैश किया गया है सही है। हालांकि, जब आप अपना वेब पेज बनाते हैं, तो आप छवियों को उनके व्यक्तिगत यूआरएल द्वारा संदर्भित करने पर विचार कर सकते हैं। इस तरह आप छवियों को HTTP स्रोत से उत्पन्न करने के रूप में निर्दिष्ट कर सकते हैं, और वे ब्राउज़र द्वारा कैश किए जाने की संभावना होगी।
कुछ ब्राउज़र एसएसएल सामग्री को कैश होगा उपयोग कर रहा है और 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>
शायद आप अतिरिक्त सर्वर/सबडोमेन जोड़ सकते हैं जो बिना https के छवियों को प्रदान करता है?
उन 75 छवियों का एक बहुत आइकन या छवि है कि हर पृष्ठ पर दिखाई देते हैं, आप CSS स्प्राइट का उपयोग कर सकते तेजी से HTTP अनुरोध की संख्या को कम करने के लिए और इस तरह तेजी से पेज लोड कर रहे हैं:
- 1. मुझे सामग्री में क्या रखा जाना चाहिए सजावटी छवियों जैसे क्षेत्र विभाजक के लिए डिस्क्रिप्शन विशेषता?
- 2. सिफारिश इंजन बनाने के दौरान क्या विचार किया जाना चाहिए?
- 3. मुझे क्या करना चाहिए?
- 4. त्रुटि बनाने पर, क्या मुझे 'नया' प्रस्तुत करना चाहिए या 'नया' पर रीडायरेक्ट करना चाहिए?
- 5. मुझे डिवाइस ड्राइवर लिखने पर कैसे शुरू किया जाना चाहिए?
- 6. क्या एपीएनएस टोकन एन्क्रिप्ट किया जाना चाहिए?
- 7. क्या मुझे मास्टर में विकसित विलय करना चाहिए और फिर टैगिंग के बाद वापस जाना चाहिए?
- 8. क्या मुझे संदर्भक्यू पर सिंक्रनाइज़ करना चाहिए?
- 9. क्या मुझे यूनिक्स पर इरनो के लिए system_category या generic_category का उपयोग करना चाहिए?
- 10. क्या यह बग ठीक किया जाना चाहिए?
- 11. क्या मुझे एंड्रॉइड एप्लिकेशन बनाने के लिए एंड्रॉइड फोन चाहिए?
- 12. स्ट्रेस का उपयोग कैसे किया जाना चाहिए?
- 13. मुझे वर्तमान संस्कृति या InvariantCulture कब निर्दिष्ट करना चाहिए और मुझे इसे कब निर्दिष्ट नहीं किया जाना चाहिए?
- 14. क्या मुझे जावा एप्लिकेशन बंडल बनाने के लिए मैक चाहिए?
- 15. मुझे लाइब्रेरी हेडर बनाने पर विचार कब करना चाहिए?
- 16. क्या मुझे HttpRuntime.Cache का उपयोग करना चाहिए?
- 17. मेरा सरल डीबी डोमेन बनाने के लिए मुझे किस URL पर जाना चाहिए?
- 18. क्या मुझे सामग्री प्रदाता का उपयोग करना चाहिए?
- 19. मुझे किस प्रकार के पायथन ओपनसीवी के लिए जाना चाहिए?
- 20. क्या static_assert को टाइपिफ़ के साथ ट्रिगर किया जाना चाहिए?
- 21. एक बड़ी परियोजना के लिए, कोडिंग से पहले क्या योजना बनाई जानी चाहिए और इसका संपर्क कैसे किया जाना चाहिए?
- 22. क्या मुझे ऑटोव्यू के लिए इंतजार करना चाहिए?
- 23. PYTHONPATH में वास्तव में क्या सेट किया जाना चाहिए?
- 24. कब जोर देना चाहिए() का उपयोग किया जाना चाहिए?
- 25. क्या मुझे ओआरएम चाहिए?
- 26. मेरी समाप्ति, कैश-कंट्रोल, और प्राग्मा HTTP अनुरोध हेडर फ़ील्ड को क्या सेट किया जाना चाहिए?
- 27. क्या रेंडरएक्शन फॉर्म के साथ इस्तेमाल किया जाना चाहिए?
- 28. Flask.g का उपयोग कब किया जाना चाहिए?
- 29. तमिल भाषा में पूर्ण आईओएस ऐप बनाने के लिए क्या किया जाना चाहिए?
- 30. ढांचे के निर्माण के दौरान विचार किया जाना चाहिए