href属性中的“http:”没有正斜杠

时间:2014-09-13 19:25:24

标签: html

在冒号后使用http:而不使用正斜杠会有什么影响。

这是我目前所知道/测试的:


案例A - <a href="http:#">..

From a file at root directory: ../ -> ../#

From a file at a subdirectory: ../sub/ -> ../sub/#

From a get or rewrited URL: ../?q=about OR ../about/ -> ../#

案例B - <a href="http:something">..

From a file at root directory: ../ -> ../something

From a file at a subdirectory: ../sub/ -> ../sub/something

From a get or rewrited URL: ../?q=about OR ../about/ -> ../something

那么发生了什么?

2 个答案:

答案 0 :(得分:1)

RFC 3986解释了如何解释URI。一般语法是:

URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

      hier-part   = "//" authority path-abempty
                  / path-absolute
                  / path-rootless
                  / path-empty

如果在方案名称之后省略//,则URI的hier-part部分将被解释为绝对路径或无根路径,具体取决于它是否以/开头,如果它是空的,则为空路径。

如果http:之后没有服务器名称,它将使用与包含URI的页面相同的服务器。

如果路径为空,则使用当前页面的路径。

如果路径是相对路径,则相对于当前页面路径的目录进行解释。

如果路径是绝对的,则将其用作给定的。

上述解决方案算法的详细信息在RFC的第5节中。

答案 1 :(得分:0)

这没有办法有效。您必须在http:之后使用“//”告诉浏览器该链接是一个网页。如果您使用../而不是http,则告诉浏览器在他所在的文件夹后面找一个文件夹。此外,如果您使用href =“google.com”,您的浏览器将不会查找Google.com(网站),而是查找名为Google.com的文件位于同一目录中。