浏览器相对url的解析

使用相对url,可以引用同一服务器的其它资源,相对url缺失的部分,由发起引用的那个url自身的信息补齐。如果url字符串不是以一个有效的协议名开始,后面没有跟着冒号,又或者没有那个有效的“//”分隔符,那该url就是一个需要被引用的相对url。


相对url大体大体可以分为5种情况,其解析规则如下:

(1)有协议名称,但没有域名信息

对于这种形式的url,它的协议,路径,查询字符串和片段ID都以它自身为准,但域名信息的部分,以引用它的那个页面地址为准。

(2)没有协议名,但有域名信息

在这种情况下,协议名称由原发起页面确定,而所有接下来的url信息都取自这个相对url,构成完整的url。

(3)没有协议名,没有域名信息,但有路径

这种情况下分为两种结果,如果相对url的开头不是斜杠,则相对路径会拼接在引用url最右边的“/”后面,如果最右边是文件名,则要砍掉文件名。另外如果相对url的开头确实是个斜杠,则应该忽略引用页面自身的路径信息,直接把相对路径拼在引用url的域名后面。

(4)没有协议名,没有域名信息,没有路径,但有查询字符串

这种情况下,协议,域名,路径信息全部原封不动的从原引用url复制过来,查询字符串和片段ID则来自相对url。

(5)只有片段ID

只替换片段ID的部分,其他所有信息全部原封不动的从原引用url复制过来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容