javascript – 为什么url编码域后的第一个斜杠打破了网址?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么url编码域后的第一个斜杠打破了网址?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1517字,纯文字阅读大概需要3分钟。
内容图文
Salvete!我发现某种url编码方式打破了链接.对于记录/表示正斜杠字符:/
现在,考虑一下:
原始链接:http://dottech.org/95285/this-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day
javascript(encodeURIComponent)urlencoded链接:http://dottech.org/95285/this-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day
现在,如果您将编码的链接粘贴到浏览器的地址栏中,它就会被破坏(Firefox,Chrome,IE).
但是,如果您不对第一个正斜杠进行url编码,则它可以完美地运行:
“http://dottech.org/95285/this-is-the-pacific-barreleye-a-fish-with-a-transparent-head-amazing-photo-of-the-day
为什么?
解决方法:
/是保留字符.它不等于/.如果您需要没有定义含义的斜杠,则使用编码形式.
见RFC 3986: “Reserved Characters”:
The purpose of reserved characters is to provide a set of delimiting
characters that are distinguishable from other data within a URI.
URIs that differ in the replacement of a reserved character with its
corresponding percent-encoded octet are not equivalent. Percent-
encoding a reserved character, or decoding a percent-encoded octet
that corresponds to a reserved character, will change how the URI is
interpreted by most applications.
如果您不使用保留字符/用于第二个斜杠,则提及URL仍然有效的原因是:他们的CMS只是在URL中查找ID部分.因此,您可以向网址添加任何内容,例如以下应该仍然有效:
http://dottech.org/95285/hey-this-URL-got-featured-at-stackoverflow
(但是,似乎它仍然必须是/或/在他们的情况下.)
如果您使用维基百科文章尝试它,它会重定向到首页:
http://en.wikipedia.org/wiki%2fStack_Overflow
内容总结
以上是互联网集市为您收集整理的javascript – 为什么url编码域后的第一个斜杠打破了网址?全部内容,希望文章能够帮你解决javascript – 为什么url编码域后的第一个斜杠打破了网址?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。