大数据时代互联网安全越来越重要了,很多网站都开始实施全站https。
但是为了容错,当https服务不可用时,需要重新跳转向http,那么页面中的url到底是使用http还是https?
当然如果都写成https,当https服务不可用时所有访问都重定向到http,或当https服务可用时所有http都重定向到http都重定向到https,这样一旦
出现需要切换的场景,所有访问都要经过一次跳转是不能接受的。
所以采用 //www.domain.com/path形式的Relative Reference url,将所有页面中的url改写成这样的形式,只在入口访问的时候判断是http还是https,后面的所有
//www.domain.com/path的url都会解析成上一次访问的http或https(当然上次访问如果是其它协议,//www.domain.com/path也会解析成其它协议)。
比如当https服务可用时,http://www.domain.com/aaa被强制跳转到https://www.domain.com/aaa,那么这个页面中的"//www.domain.com/bbb"就会自动解析为
https://www.domain.com/bbb而不用再跳转一次,挨过来也不一样。这正是Relative的原意。
关于 Relative Reference的详细情况可以参见rfc3986的4.2章节。
时间: 2024-10-06 06:48:53