当建立一个https网页的时候,有一项非常烦琐的事情就是去掉所有的引用http资源的链接,否则,IE就会给出一个安全警告。
为了解决这个问题,所有网页上的URLs必须使用https。但就目前而言,网页的设计都是建立的高重用的基础上的,它们都必须要同时符合http和Https的标准。怎么解决这个问题呢?
使用相对URLs就是一个很好的办法。现在常用的一种方式就省略主机名,包含所要引用资源的路径,如下所示:
<img src='/images/arrow.gif' />
这样的话,不管是http还是Https的网页都不会出现警告信息。虽然它省略了主机名,实际上在网页打开时,它会自动将路径前加上主机名去加载引用的资源,并且同时会使用当前网页的协议http或者https,在Http页面,它会使用http协议请求图片,而在https页面,它会根据https协议请求图片。
但是如果我们需要引用其他网站上的图片呢?如:
<img src='http://ajaxstu.com/pic/smiley.jpg' />
如果这样引用的话,在https页面就会出现警告,怎么能在引用这样的资源的时候能够同时符合http和https呢?还是上面说到的相对URLs.根Http的方法差不多,只是省略掉前面的协议:
<img src='//ajaxstu.com/images/arrow.gif' />
这样,在请求网页的时候同样会根据当前页面的协议自动在前面加上http或者https去请求资源。
但是,在脱离了浏览器,该方法可能就不使用了,如果是在email,Outlook中,这样的URLs不能得到正确的解析,因此,结果可能不是你想象中的那样。
