【问题标题】:What are the legal and illegal characters in URL/Link?URL/Link 中的合法字符和非法字符是什么?
【发布时间】:2015-08-04 18:53:34
【问题描述】:

如果出现非法字符会怎样? URL 是否通过将非法字符编码为其他内容来自行修复?

【问题讨论】:

    标签: url hyperlink web


    【解决方案1】:

    正如here解释的那样

    ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=。 任何其他字符都需要使用百分比编码进行编码 (%hh)。 URI 的每一部分对内容有进一步的限制 字符需要用百分比编码的单词来表示。

    【讨论】:

      【解决方案2】:

      允许的字符

      RFC 3986 定义在哪些 URI 组件中允许使用哪些字符。

      针对特定 URI schemes 的 RFC 可能会进一步限制这一点。

      如果您对 HTTP/HTTPS URI 感兴趣:它们在 RFC 7230 中定义。 AFAIK 他们对允许的字符没有进一步的限制,所以你可以坚持 RFC 3986 中的定义。

      如果使用了非法字符会怎样?

      取决于许多因素……可能是“什么都没有发生”到“不再起作用”。

      URL 是否通过将非法字符编码为其他内容来自行修复?

      URI 无法自行修复,它只是一个字符串。

      使用此 URI 的客户端(浏览器、服务器、电子邮件客户端等)可能根据自己的规则尝试修复 URI(或使用无效 URI)。

      URI 与链接

      另请注意,URI 与在文档中链接(或存储等)此 URI 之间存在差异。
      宿主语言(例如 HTML)可能有编码什么的规则。这不会更改 URI,只会更改 URI 在本文档中存储/指定的方式。

      例如,有效的 URI http://example.com/a&b 在 HTML 文档中必须像这样链接:

      <a href="http://example.com/a&amp;b">Link</a>
      

      但 URI 仍然是 http://example.com/a&amp;amp;b,而不是 http://example.com/a&amp;amp;b

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 2013-05-19
        • 2021-06-25
        相关资源
        最近更新 更多