Html web服务器文件名的合法/允许字符是什么?

Html web服务器文件名的合法/允许字符是什么?,html,web,Html,Web,所有服务器(*nix、Windows等)上HTML文件的文件名中允许使用哪些字符? 我正在寻找能在所有服务器上运行的“最低公分母”。 用法:我正在命名一个要公开提供的文件(Mysite.com/My Page.htm) 例如,空间,等等 例如,我可以要File-Name.htm、File\u Name.htm和File-Name.htm吗 显然,这需要与所有服务器和浏览器配合使用。(IIRC,名称受服务器而不是浏览器的限制,但我可能错了)。没有html文件名这回事。 某些字符必须用html编码(

所有服务器(*nix、Windows等)上HTML文件的文件名中允许使用哪些字符? 我正在寻找能在所有服务器上运行的“最低公分母”。 用法:我正在命名一个要公开提供的文件(Mysite.com/My Page.htm)

例如,空间,等等

例如,我可以要File-Name.htm、File\u Name.htm和File-Name.htm吗


显然,这需要与所有服务器和浏览器配合使用。(IIRC,名称受服务器而不是浏览器的限制,但我可能错了)。

没有html文件名这回事。

某些字符必须用html编码(如在链接中使用),但文档名中允许的字符将取决于web服务器(可能还有服务器上的文件系统)。

任何文件名都可以,因此您应该可以。为了记录,您的三个文件名都可以正常工作。

如果您不希望服务器对您的文件名进行编码,您应该避免使用保留字符:$&+,/:;=?@和不安全字符:空格、引号、#%{}\^~[]`

但是正如前面的回答所述,web服务器应该通过编码字符来处理您想要使用的任何东西

一定要消除

*。“/\[]:;|=,

这是不允许的,因为文件命名约定不一致。标准做法是使用a-z和0-9以及下划线字符。大多数用户都需要空格,但如果您不使用空格,则会出现解析问题,从而提高可靠性,您可以阅读mime(多部分internet邮件扩展)上的rfc了解其中所涉及的内容

不管你做什么,在某个地方可能会有一些事情让你的生活变得困难,以至于我现在使用加密方法生成随机的a-z小写字符串,并将其用作文件名,将有用的信息嵌入到文件源代码中

不惜一切代价避免使用符号

服务器上HTML文件的文件名中允许哪些字符

这完全取决于服务器。HTTP本身允许任何字符,包括控制字符和非ASCII字符,只要它们在URL中被请求时进行了适当的编码

在Unix服务器上,不能使用“/”或零字节。(如果可以使用它们,它们将在URL中分别显示为“%2F”和“%00”)。也不能使用特定的文件名“.”或“..”或空字符串

在Windows服务器上,您具有Unix服务器的所有限制,此外,您还不能使用任何
\/:*?“
或控制字符1-31,不能使用前导或尾随点或空格,并且您将很难使用任何旧设备文件名(CON、PRN、COM1等)

这与HTTP无关;文件名如何在Windows上工作,这是一个很重要的问题

我可以要File-Name.htm、File\u Name.htm和File-Name.htm吗

当然可以。但在最后一种情况下,您应该通过URL编码空间链接到它:

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


浏览器通常会让你不必留下空间,但这并不是真的有效。如果您想避免考虑URL转义、HTML转义和区分大小写的问题,请坚持使用a–z、0–9和下划线。

我想说的是,所有服务器上HTML文件的文件名的经验法则是字母(首选小写)和数字字符(1到9)的任意组合,加上下划线(u),减去(-)或加号(+)字符,但不包含空格。另外,在文件名末尾加上点html(例如filename.html)。我个人避免使用下划线和加号。

文件名仅受服务器底层操作系统和文件系统的限制。例如,on*nix框中除“/”和null之外的任何字符都是允许的。你是真的在问文件名,还是在问文件名的链接或者URL的引用?从表面上看,这是一个错误的答案。除了“/”之外,您提到的所有字符都是类unix系统上文件名的有效字符。它们不应该被使用,但它们是有效的。就像Jim说的,服务器流量应该编码URL中不允许的任何内容-一个素数examp is space应该是%20,但你看到的是+for spaces,这也是+so的字符(在我看来不是很谦虚)这种情况就像一只猫已经抓住了它的尾巴,却在追逐它的尾巴。是的,布莱恩,它又短又便宜。这只是我删除的第一件事情,因为即使{[%%]}.ext跨越服务器跃点,它也会混淆fp*中的char[256]。(更不用说嵌入的空值等等)见过文件名中带有点运算符的操作系统崩溃吗?还要注意的是,Oakley先生的更正是在他很快意识到这个问题的时候发布的-他在UNICE(UNIX的复数形式)上工作,那里的内核更强大。。。你所拥有的就是你所看到的:跨平台问题你可以很好地使用符号和。。。如果要创建链接,则必须对其进行HTML编码,但对于所有带有查询字符串参数的URL,则必须进行HTML编码。也可以在“粘贴到”短语中添加a-Z。