为什么网站链接//index.html也可以正常访问/index.html的内容?

知识问答作者:U大使日期:2021-01-24点击:104

为什么网站链接//index.html也可以正常访问/index.html的内容?

正常链接:a.com/index.html 网站状态码是200
非正常链接:a.com//index.html居然也可以正常打开显示正常链接的内容,网站状态码是304

如发布问题页面:https://uclub.ucloud.cn//addons/ask/question/post.html
双//正常访问

//是可以正常访问的,但是会对搜索引擎seo造成影响

HTTP RFC 2396标准将路径分隔符定义为单斜杠 。

但是,除非你使用某种形式的URL重写(在这种情况下,重写规则可能会受到斜杠数量的影响),否则url会映射到磁盘上的路径,但在(大多数)现代操作系统(Linux/Unix,Windows),连续的多个路径分隔符没有任何特殊含义,因此/path/to/foo和/path//to////foo最终将映射到同一文件。

会影响的是缓存。所以此时访问是304状态码,由于浏览器和服务器均缓存单个页面(根据其缓存设置),因此通过略有不同的URL多次请求同一文件可能会影响缓存(取决于服务器和客户端的实现)。

如楼上所说,首先分析304状态码:客户端发起一个请求,客户端本地和服务端数据对比,服务器就可以判断这个页面是不是更新过了,如果未更新过那么他会给你返回一个304状态码,就会使用本地数据。
路劲/ 只是服务端可识别可解析这个路径并找到这个文件, 多个//可以解析为/个,知道我们代码不写错,客户端很少主动去改这种的,只有代码写错了多加了// 就会造成对seo不利

下一篇       上一篇