网址中最后的斜杠 / 是干嘛的?

1,213 阅读3分钟

先说下第2⃣️期赠书结果:大巧克力、Jack Tian。恭喜二位 🎉 两位小伙伴已取得联系,收到书后也可以跟我晒一下~

下面开始正文。

最近群友提了一个问题,爬虫闯关第三关时,发现被爬网址最后不加 /,就出现一直没有正确响应的情况,我打开浏览器的调试模式看了下,发现不加 / 时,地址返回的是 301 MOVED PERMANENTLY,怪不得哦~

但是我也发现有些网址结尾带有斜杠,而有的网址后面没有带斜杠,这个斜杠到底是干嘛的?加不加有什么区别呢?又为什么我们在浏览器地址栏上打出一个网址,按回车后地址末尾会自动加上一个反斜杠?

很诡异是吧!好了,进入正题,推广一下小知识。

在传统意义上说,网址末尾是没有反斜杠的。有没有反斜杠的意义在于该 url 是指向一个文件还是一个目录。

举个栗子

http://www.abc.com/abchttp://www.abc.com/abc/

末尾带斜杠 / 的是目录/abc/,不带的是文件 /abc,是两个不同的地址。一般来说,索引页面(如文章列表)作为目录,而内容页面作为文件。

对于服务器来说,如果访问目录,则会根据规则访问改目录下的默认文件(index.htmlindex.htm之类)。如访问/abc/服务器会寻找 /abc/index.html文件,而访问/abc服务器则会寻找 /abc文件。

对于用户来说,在大多数情况下这两个网址没有任何区别,他们访问的都是网站 abc 目录下的默认首页。一般用户也都知道最后一个斜杠是可有可无的,他们输入网址的时候一般都只会输入 http://www.abc.com/abc。

当 Web 服务器接收到某个末尾不含斜杠的 url 请求时,例如 http://www.abc.com/abc,这时服务器会搜索网站根目录下有没有名为 abc 的文件,如果没有就把 abc 当做目录处理,然后返回 abc 目录下的默认首页。

当 Web 服务器接收到的是末尾带斜杠的请求时就会直接当做目录处理,返回 abc 目录下的默认首页。

这样一来加上反斜杠就会加快网站加载速度。对于网站所在的服务器,网址没有加上反斜杠会给服务器增加一个查找是否有同名文件的过程,这明显会增加服务器的负担,当然这个影响并不会很大,但如果你的网站的直接流量很大,那么给 url 末尾加上反斜杠便能较大的减轻服务器的负担了。

当然给网址末尾加上反斜杠还有其他的好处:

  1. 在 seo 方面考虑,习惯性的给自己网站的网址末尾加上反斜杠能避免重复内容。url 末尾是否有反斜杠也会造成重复内容的问题,这对于网站的 seo 无疑是不利的。

  2. 因为服务器对 url 不能正确解析,有可能会出现 404 错误,习惯地给网址末尾加上反斜杠则可以避免这种情况。

总的来说给网址末尾加上反斜杠对对网站建设者是有很大好处的,这可以说是网站建设者应该养成的一个好习惯。当然,在交换友情链接时别忘了提醒一下对方,记得为你的网站 url 末尾加上反斜杠了。

参考:https://blog.csdn.net/u010525694/article/details/78591355https://blog.csdn.net/sosous/article/details/48784927

推荐阅读

我的 Python 学习资源分享

1 行代码,实现微信消息发送

如何优雅地使用 rm 防止误删除?

Python 爬虫闯关(第三关)

教你用 Python 来朗读网页

Python 爬取「知识星球」

你还在用 format 格式化字符串?

Python 玩转 Excel