在 url 中使用冒号是个好主意?
Posted
技术标签:
【中文标题】在 url 中使用冒号是个好主意?【英文标题】:Good idea to use colons in url? 【发布时间】:2011-06-22 18:55:33 【问题描述】:我正在构建一个小系统,它有很好的 htaccess 重写 URL。现在我想知道使用冒号是否是个好主意。这是一个例子:
domain.tld/section:Foo/page:12
它比这样的更稳定,因为它描述了每个字符串:
domain.tld/section/Foo/12
唯一的问题是,所有浏览器都支持它吗?我知道***使用它们:)
马蒂·莱恩
【问题讨论】:
是的,所有浏览器都支持它。例如,它不如 SEO 看起来那么好......如果这与你有任何相关性...... 【参考方案1】:是的,浏览器会很好。但是,我不明白为什么它比通常的/Foo/12
更“稳定”。 url 重写的全部意义在于您不公开参数名称是什么(即?section=Foo&page=12
)。如果你只是把参数名称放回去,那有什么意义呢?
【讨论】:
【参考方案2】:冒号是很好的浏览器;将对任何会导致问题的字符进行 URL 编码。后一种形式(使用斜线)更符合REST 架构,如果您计划在未来提供类似 Web 服务的东西,它可能会更容易识别/标准。
【讨论】:
【参考方案3】:非常不推荐。 它不符合标准,可能会引起一些麻烦。
见:Is a colon safe for friendly-URL use?
【讨论】:
这个问题是关于确保“浏览器不会对冒号 [...] 进行 url 编码”。这并不意味着它们不安全,而且事实上,这根本不是一个问题。 你说得对,Andrew,但我想指出,支持冒号的决定可能会引入其他 [unexpected] 问题,不一定是在客户端。以上是关于在 url 中使用冒号是个好主意?的主要内容,如果未能解决你的问题,请参考以下文章
使用反射替换 java.net.URL URLStreamHandlerFactory 是个好主意吗?
在 Web 服务 URL 中使用加密的数据库 ID 而不是 UUID 是个好主意吗?
在 PHP mkdir 中使用模式 0664 是个好主意吗?