最近群友提了一个问题,爬虫闯关第三关时,发现被爬网址最后不加 /
,就出现一直没有正确响应的情况,我打开浏览器的调试模式看了下,发现不加 /
时,地址返回的是 301 MOVED PERMANENTLY,怪不得哦~
但是我也发现有些网址结尾带有斜杠,而有的网址后面没有带斜杠,这个斜杠到底是干嘛的?加不加有什么区别呢?又为什么我们在浏览器地址栏上打出一个网址,按回车后地址末尾会自动加上一个反斜杠?
很诡异是吧!好了,借这个东风,推广一下小知识。
在传统意义上说,网址末尾是没有反斜杠的。有没有反斜杠的意义在于该 url 是指向一个文件还是一个目录。
举个栗子举个栗子:
http://www.abc.com/abc
http://www.abc.com/abc/
末尾带斜杠 /
的是目录/abc/
,不带的是文件/abc
,是两个不同的地址。一般来说,索引页面(如文章列表)作为目录,而内容页面作为文件。
对于服务器来说,如果访问目录,则会根据规则访问改目录下的默认文件(index.html
、index.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 末尾加上反斜杠便能较大的减轻服务器的负担了。
当然给网址末尾加上反斜杠还有其他的好处:
- 在 seo 方面考虑,习惯性的给自己网站的网址末尾加上反斜杠能避免重复内容。正如域名中是否带
www
的问题,url 末尾是否有反斜杠也会造成重复内容的问题,这对于网站的 seo 无疑是不利的,要知道,重复内容绝对是 seo 的大忌。 - 因为服务器对 url 不能正确解析,有可能会出现 404 错误,习惯地给网址末尾加上反斜杠则可以避免这种情况。
总的来说给网址末尾加上反斜杠对对网站建设者是有很大好处的,这可以说是网站建设者应该养成的一个好习惯。当然,在交换友情链接时别忘了提醒一下对方,记得为你的网站 url 末尾加上反斜杠了。
参考:
https://blog.csdn.net/u010525694/article/details/78591355
https://blog.csdn.net/sosous/article/details/48784927
如果觉得有用,欢迎关注我的微信,一起学习,共同进步,不定期推出赠书活动~
你的关注是对我最大的鼓励!最近搜集到慕课网视频,视频内容涵盖 Python、Java、PHP、前端、小程序、算法、架构、数据库等等!关注本公众号,后台回复「慕课网」即可获取下载地址。
网友评论