浏览器是如何解析相对路径和绝对路径的

来源:互联网 发布:淘宝客网站建站教程 编辑:程序博客网 时间:2024/04/29 19:27

出处:http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute/

在网页源代码中出现的url路径有可能是以下几种情况, 浏览器分别作不同的处理:

1) 绝对路径, 比如: http://www.vinceruan.info/front/cross-domain-process-cookie-session/, 浏览器对此url不做任何的处理.

2)绝对路径, 类似:www.vinceruan.info/java/optimize-website/, 浏览器仅仅是在url前面补上http://

3)相对路径:/database/row-format-myisam/, 浏览器会在url前面补上host, 变成: http://www.vinceruan.info/database/row-format-myisam/

4)相对路径: http-cache/,  此时浏览器做两种处理, 如果你在网页中明确给出了base标签, 那么得到的url是 base url + http-cache/, 如果没有给出base标签,那么浏览器试图自己解析得到base url, 解析方法是根据当前url的最后一个/之前的内容返回作为base url. 因为当前路径是:http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute/,浏览器分析得到的base url 是:http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute, 因此最后拿到的url 是http://www.vinceruan.info/front/how-browser-parse-url-relative-absolute/http-cache/, 这显然是不正确的, 之所以出错是因为本站做了seo优化, 网页url优化成目录url了,因此应该在网页中显示提供base标签.