2017-11-14 15 views
5

जब कुछ सबसे लोकप्रिय वेबसाइटों में कोड पर गहरा देख, मैं कई बार देखा है कि, सीएसएस और जावास्क्रिप्ट फ़ाइल नाम इस तरह हैं, लगता हैहैश सीएसएस स्टाइलशीट और जावास्क्रिप्ट फ़ाइल नाम का उपयोग क्यों करें?

<link type="text/css" rel="stylesheet" href="//sample.com/css/css__k3sYInttBtNNuJgtPSyqaYy9vVxS4qTZLrfs1ujQB9g__SH_QaIH3bnSp3nOw8n8afhszfHJlxVt51qRlrrrOnk0__fBOuweRojwN82z7EY4v-sVsMwU_P_vZSaU3fmyho6Do.css" media="all" /> 

<script type="text/javascript" src="//sample.com/js/js__-V23Vc4PVahQcqfyxss_rmNogErBARnPCvI7oPXC0qQ__O-yO5Gg8pRRaefl4d0X9qXUJTOSHq0yazxF-4tJCU_k__fBOuweRojwN82z7EY4v-sVsMwU_P_vZSaU3fmyho6Do.js"></script> 

ऐसा नहीं है कि फ़ाइल नाम की तरह टुकड़ों में बांटा गया है और मैं डॉन पता नहीं क्या कारण है। तो मुझे निम्नलिखित समस्याएं मिली हैं।

  1. विधि के इस प्रकार का उपयोग करने का उद्देश्य क्या है?

  2. मैंने देखा है बहुत जटिल फ़ोल्डर नाम भी। ऐसा क्यों है?

  3. क्या कोई सुरक्षा चिंता है?

  4. क्या हम अधिकतम सुरक्षा के लिए PHP का उपयोग कर फ़ाइल/फ़ोल्डर नाम गतिशील रूप से बदल सकते हैं?

मैं इस क्षेत्र में थोड़ा नया हूं।

+4

यदि बंडल का पुनर्निर्माण किया जाएगा, हैश परिवर्तन और ब्राउज़र जानता है कि इसे कैश किए गए गुणों को अपडेट करने की आवश्यकता है – MysterX

+2

नाम स्वचालन स्क्रिप्ट के माध्यम से उत्पन्न होते हैं। यह नाम टकराव को रोकता है और ब्राउज़र कैशिंग मुद्दों को रोकता है। – bassxzero

+0

^^ वह। वे उत्पन्न होते हैं, शायद बंडल के दौरान। – Archer

उत्तर

5

आप मान सकते हैं कि डेवलपर्स चरण के दौरान डेवलपर काम कर रहे हैं, लेकिन फ़ाइलों की निर्माण प्रक्रिया का एक आर्टिफैक्ट है। जावास्क्रिप्ट और सीएसएस को अक्सर कई स्रोत फ़ाइलों से एक फ़ाइल में बनाया जाता है, जिसमें अधिक या कम संकलन/पारदर्शी और बंडलिंग चरण शामिल होते हैं।

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

आपको को जटिल फ़ाइल नामों पर भरोसा नहीं करना चाहिए जैसे सुरक्षा/प्राधिकरण सुविधा। फ़ाइल नामों को ऐप की अनुक्रमणिका फ़ाइल में संदर्भित किया जाता है और इस प्रकार अंतिम उपयोगकर्ता को ज्ञात किया जाता है। इसके अलावा, अस्पष्टता से सुरक्षा आमतौर पर एक बुरा विचार है।

+0

यदि आप 'http: //wxample.com/.../abc.js? v = 0.5.3' जैसे संस्करण जोड़ते हैं तो यह काम नहीं करेगा ?? ब्राउज़र किसी भी पैरा (यदि मौजूद है) के साथ पूरा यूआरएल लेता है, है ना? – mrid

+0

@ मिड यप, यह चाल भी करेगा। लेकिन फ़ाइल नामों को मानव-पठनीय रखने के लिए वास्तव में कोई प्रोत्साहन नहीं है, क्योंकि एक अच्छी तरह से सेट-अप बिल्ड/तैनाती प्रक्रिया में, कोई भी मानव उन्हें कभी छूएगा।साथ ही, इस दृष्टिकोण के लिए डेवलपर को किसी प्रकार की वर्जनिंग योजना को बनाए रखने की आवश्यकता होती है, जबकि फ़ाइल हैश की पूरी तरह से गणना की जा सकती है। – Timo

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