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

问题描述 投票:0回答:1

考虑第一种情况:

如果我将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属性不包含尾部斜杠?

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

谢谢。

url url-rewriting url-routing anchor trailing-slash
1个回答
1
投票

这两个网址:

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.