Quali caratteri sono ammessi nei nomi dei file per i file HTML sul server?
Ciò dipende totalmente dal server. HTTP stesso consente qualsiasi carattere, compresi i caratteri di controllo e i caratteri non ASCII, purché siano opportunamente codificati% quando richiesto in un URL.
Su un server Unix non è possibile utilizzare '/' o il byte zero. (Se potessi usarli, apparirebbero nell'URL rispettivamente come '% 2F' e '% 00'.) Inoltre non puoi avere i nomi di file specifici '.' O '..', o la stringa vuota.
Su un server Windows si hanno tutte le limitazioni di un server Unix, in più non è possibile usare nessuno dei \/:*?"<>|
o controllare i caratteri 1-31 e non si può avere punti o spazi iniziali o finali, e si ' Avremo difficoltà ad usare i nomi dei file legacy (CON, PRN, COM1 e molti altri).
Questo non ha nulla a che fare con HTTP; solo come i nomi dei file funzionano su Windows, che è complicated.
posso avere File-Name.htm, File_Name.htm Nome file. Htm?
Certamente. Ma nell'ultimo caso si dovrebbe collegare ad esso per URL-codifica lo spazio:
<a href="File%20Name.htm">thingy</a>
I browser di solito consente di ottenere via con lasciando lo spazio, ma non è davvero valido. Se vuoi evitare di pensare a problemi di escape dell'URL, di escape HTML e di distinzione tra maiuscole e minuscole, rimani con a-z, 0-9 e underscore.
I nomi di file sono limitati solo dal sistema operativo e dal filesystem sottostanti del server. Ad esempio, su * nix box è ammesso qualsiasi carattere tranne "/" e null. Stai davvero chiedendo informazioni sui nomi dei file, o stai chiedendo dei link ai nomi di file o forse dei riferimenti agli URL? –