2009-09-28 5 views
11

सभी सर्वरों (* निक्स, विंडोज, इत्यादि) पर HTML फ़ाइलों के लिए फ़ाइल नामों में कौन से वर्णों की अनुमति है? मैं "सबसे कम आम संप्रदाय" की तलाश में हूं जो सभी सर्वरों पर काम करेगा। उपयोग: मैं सार्वजनिक रूप से सेवा करने के लिए एक फ़ाइल नामकरण कर रहा हूं (Mysite.com/My-Page.htm)वेब सर्वर फ़ाइल नामों के लिए कानूनी/अनुमत वर्ण क्या हैं?

उदा।, स्थान? _ -, आदि

उदा।, क्या मेरे पास फ़ाइल-नाम.htm, File_Name.htm फ़ाइल नाम.htm हो सकता है?

जाहिर है, इसे सभी सर्वरों और ब्राउज़रों के साथ काम करने की आवश्यकता है। (आईआईआरसी, नाम सर्वर द्वारा सीमित नहीं है ब्राउज़र, लेकिन मैं गलत हो सकता है)।

+0

फ़ाइल नाम केवल अंतर्निहित ओएस और सर्वर के फाइल सिस्टम द्वारा ही सीमित हैं। उदाहरण के लिए, * निक्स बॉक्स पर "/" और नल को छोड़कर किसी भी चरित्र की अनुमति है। क्या आप वास्तव में फ़ाइल नामों के बारे में पूछ रहे हैं, या आप फाइलनामों के लिंक या शायद यूआरएल के संदर्भों के बारे में पूछ रहे हैं? –

उत्तर

18

किन अक्षरों सर्वर पर HTML फ़ाइलों के लिए फ़ाइल नाम में अनुमति दी जाती है?

यह पूरी तरह से सर्वर पर निर्भर करता है। एचटीएमएल स्वयं किसी भी चरित्र को नियंत्रण वर्णों और गैर-ASCII वर्णों सहित, जब तक कि वे URL में अनुरोध किए जाने पर उचित रूप से% -encoded समेत अनुमति देता है।

यूनिक्स सर्वर पर आप '/' या शून्य बाइट का उपयोग नहीं कर सकते हैं। (यदि आप उनका उपयोग कर सकते हैं, तो वे क्रमशः '% 2F' और '% 00' के रूप में यूआरएल में दिखाई देंगे।) आपके पास विशिष्ट फ़ाइल नाम '।' या '..', या खाली स्ट्रिंग भी नहीं हो सकती है।

विंडोज सर्वर पर आपके पास यूनिक्स सर्वर की सभी सीमाएं हैं, साथ ही आप \/:*?"<>| का उपयोग नहीं कर सकते हैं या वर्ण 1-31 को नियंत्रित नहीं कर सकते हैं और आपके पास डॉट या रिक्त स्थान का नेतृत्व या पीछे नहीं हो सकता है, और आप ' किसी भी विरासत डिवाइस फ़ाइल नाम (CON, PRN, COM1 और कई अन्य) का उपयोग करने में कठिनाई होगी।

यह HTTP के साथ कुछ भी नहीं है; विंडोज़ पर फाइलनाम कैसे काम करते हैं, जो complicated है।

क्या मेरे पास फ़ाइल-नाम.htm, File_Name.htm फ़ाइल नाम.htm हो सकता है?

निश्चित रूप से। लेकिन पिछले मामले में आप अंतरिक्ष यूआरएल-एन्कोडिंग द्वारा इसे करने के लिए लिंक करना चाहिए:

<a href="File%20Name.htm">thingy</a> 

ब्राउज़र आमतौर पर आप में जगह खाली छोड़ने के साथ दूर होने देंगे, लेकिन यह वास्तव में मान्य नहीं है। यदि आप यूआरएल-एस्केपिंग, एचटीएमएल-एस्केपिंग और केस-सेंसिटिव मुद्दों के बारे में सोचना चाहते हैं, तो ए-जेड, 0-9 और अंडरस्कोर से चिपके रहें।

+1

शायद ए-जेड को _stick to_-phrase में भी जोड़ सकता है। –

0

एचटीएमएल फ़ाइल नाम जैसी कोई चीज़ नहीं है।
कुछ पात्रों को HTML में एन्कोड किया जाना चाहिए (उदाहरण के लिए यदि लिंक में उपयोग किया जाता है) लेकिन दस्तावेज़ नामों में अनुमत वर्ण वेब सर्वर (और संभवतः सर्वर पर फ़ाइल सिस्टम) पर निर्भर होंगे।

0

कोई फ़ाइल नाम URL-encoded होगा ताकि आपको ठीक होना चाहिए। और रिकॉर्ड के लिए आपके सभी तीन फाइल नाम ठीक काम करेंगे। ? $ & +, /:

1

आप अपनी फ़ाइल नाम नहीं चाहते, तो सर्वर द्वारा एन्कोड करने की है, तो आप आरक्षित वर्ण से बचना चाहिए; = @ और असुरक्षित वर्ण: अंतरिक्ष, उद्धरण चिह्न, <> #% {} | \^~ [] `

लेकिन जैसा कि पिछले उत्तरों में कहा गया है, वेब सर्वर को जो भी आप चार्ज एन्कोडिंग द्वारा उपयोग करना चाहते हैं उसका सामना करना चाहिए।

2

* . "/\ [ ] : ; | = ,

कर रहे हैं जो सम्मेलनों मानक अभ्यास a-z और 0-9 और अंडरस्कोर वर्ण का उपयोग है नामकरण फ़ाइल में विसंगतियों की वजह से, की अनुमति कभी नहीं समाप्त करने के लिए सुनिश्चित करें। अधिकांश उपयोगकर्ताओं के लिए अंतरिक्ष आवश्यक है, लेकिन यदि आप इसका उपयोग करने से दूर हो सकते हैं तो विश्वसनीयता में सुधार करने वाले मुद्दों को पार्स कर रहे हैं, आप शामिल होने के स्वाद के लिए एमएफ (बहु-भाग इंटरनेट मेल एक्सटेंशन) पर आरएफसी पढ़ सकते हैं।

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

किसी भी कीमत पर एम्परसेंड, से बचें ...

+0

चेहरे की कीमत पर यह एक गलत जवाब है। "/" के अपवाद के साथ, आपके द्वारा वर्णित सभी वर्ण यूनिक्स-जैसी प्रणालियों पर फ़ाइल नाम के लिए मान्य वर्ण हैं। उन्हें जरूरी नहीं इस्तेमाल किया जाना चाहिए, लेकिन वे मान्य हैं। –

+0

जिम की तरह, सर्वर यातायात को यूआरएल में किसी भी चीज को एन्कोड करना नहीं माना जाता है - एक प्रमुख एक्सपैम्प स्पेस% 20 होना चाहिए, लेकिन जो भी आप देखते हैं वह + स्पेस के लिए होता है, जो कि + के लिए इस्तेमाल किया जाने वाला चरित्र भी है मेरी इतनी नम्र राय नहीं है) स्थिति ठीक है कि बिल्ली की पूंछ का पीछा करने वाली बिल्ली की है जब यह पहले से ही पकड़ लेती है। –

+0

हां, ब्रायन - यह छोटा और सस्ता है। यह केवल पहली चीजें हैं जिन्हें मैं हटाता हूं क्योंकि भले ही {[%%%]}। Ext इसे सर्वर होप्स में बनाता है, यह fp * में char [256] को भ्रमित करता है। (एम्बेडेड नल का उल्लेख नहीं करना और इतने पर) कभी भी फाइल नाम में डॉट ऑपरेटर के साथ ओएस को क्रैश देखा? –

0

मैं कहूंगा कि सभी सर्वरों पर HTML फ़ाइलों के लिए फ़ाइल नामों के लिए अंगूठे का एक अच्छा नियम वर्णमाला (लोअरकेस पसंदीदा) और संख्या वर्ण (1 हालांकि 9) का संयोजन हो सकता है, साथ ही अंडरलाइन (_), शून्य (-) या प्लस (+) वर्ण लेकिन कोई रिक्त स्थान नहीं। साथ ही, फ़ाइल नाम को डॉट एचटीएमएल (उदा। Filename.html) के साथ समाप्त करें। मैं व्यक्तिगत रूप से अंडरलाइन और प्लस वर्णों का उपयोग करने से बचता हूं।

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