gpt4 book ai didi

http - 哪两个分隔符可用于 URL anchor ?

转载 作者:可可西里 更新时间:2023-11-01 15:10:20 29 4
gpt4 key购买 nike

我在我的 URL 中使用 anchor ,允许人们在 Web 应用程序中为“事件页面”添加书签。我使用 anchor 是因为它们很容易适合 GWT 历史机制。

我现有的实现将导航和数据信息编码到 anchor 中,由“-”字符分隔。 IE。创建像#location-location-key-value-key-value 这样的 anchor

除了负值(如 -1)会导致严重的解析问题之外,它确实有效,但现在我发现使用两个分隔符会更好。另外,考虑到负数问题,我想放弃使用“-”。

在不干扰 URL 或其 GET 参数的 URL anchor 中还有哪些其他字符?这些在未来会有多稳定?

最佳答案

查看 RFC for URLs, section 3.5片段标识符(我相信你指的是)定义为

fragment    = *( pchar / "/" / "?" )

and from Appendix A

pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"                 / "*" / "+" / "," / ";" / "="

Interestingly, the spec also says that

"The characters slash ("/") and question mark ("?") are allowed to represent data within the fragment identifier."

So it appears that real anchors, like

<a href="#name?a=1&b=2">
....
<a name="name?a=1&b=2">

应该是合法的,并且非常像普通的 URL 查询字符串。 (快速检查证实这些至少在 chrome、firefox 和 ie 中正常工作)因为这个有效,我假设你可以使用你的方法来拥有像

http://www.site.com/foo.html?real=1&parameters=2#fake=2&parameters=3

没问题(例如,片段中的“参数”变量不应干扰查询字符串中的变量)

您还可以在必要时使用百分比编码......并且在子定义中定义了许多其他可用的字符。

注意:

同样来自规范:

“片段标识符组件由数字符号 (“#”) 字符的存在指示,并由 URI 的末尾终止。”

因此# 之后的所有内容都是片段标识符,不应干扰 GET 参数。

关于http - 哪两个分隔符可用于 URL anchor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566276/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com