在两种不同的场景中,尾随斜杠在URL中扮演什么实际角色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在两种不同的场景中,尾随斜杠在URL中扮演什么实际角色?相关的知识,希望对你有一定的参考价值。

考虑第一种情况:

如果我将URL https://www.w3schools.com/html输入到我的Web浏览器的地址栏中,它会自动更改为具有尾部斜杠的URL https://www.w3schools.com/html/,然后加载相关的网页。

为什么以及如何将尾部斜杠添加到我在Web浏览器地址栏中输入的URL?谁负责自动将尾部斜杠添加到我之前输入的URL?

考虑第二种情况:

考虑下面的锚标签<a>代码:

 <a href="https://www.w3schools.com/html/">Visit our HTML tutorial</a> 

这很好用。然后,我从相同的URL中删除了尾部斜杠,并尝试下面的锚标签<a>代码不起作用:

 <a href="https://www.w3schools.com/html">Visit our HTML tutorial</a> 

为什么这样?

为什么它没有被重定向到锚标签src<a>属性中提到的URL?

虽然,我不知道在输入到网页浏览器的地址栏中自动添加尾部斜杠背后的原因,我的问题是为什么在第二种情况下同样的基础不起作用,即在包含URL的锚标记<a>中它的href属性不包含尾部斜杠?

请有人用简单,清晰易懂的语言回答我所有的疑虑,帮助我。

谢谢。

答案

这两个网址:

是规范不同的网址。这意味着服务器和客户端应将它们视为2个不同的URL。没有客户端应该自动添加或删除斜杠,因为它们可能会返回非常不同的东西。

但是,许多服务器和服务器框架将自动添加斜杠。他们通过HTTP重定向执行此操作。

例如,如果您运行普通的apache,并且从某种目录提供index.html,默认情况下,如果没有提供,则apache将重定向到带有斜杠的url。

这不是HTTP所必需的,也不是服务器或客户端工作所必需的。这完全是服务器实现者的选择。

以上是关于在两种不同的场景中,尾随斜杠在URL中扮演什么实际角色?的主要内容,如果未能解决你的问题,请参考以下文章

在两种不同的场景中给出 6985 和 61xx 的初始化更新

为啥在 URL 中缺少尾部斜杠 (/) 时会发生重定向?

删除多个尾随斜杠 mod_rewrite

WCF Rest 4.0 中没有斜杠的简单 URL 路由

文件/路径不带斜杠的规范 URL

PMO主要职能都有哪些?在实际过程中PMO更多扮演啥角色?