如何优雅地支持全站HTTPS

2015-07-17

如果你希望全站支持https,在浏览器访问的时候,有一个绿色的小锁。可以有两种方式来实现:

(1)申请CA,把证书放在Apache下
(2)使用CDN, 启用https(在国内的CDN厂家都需要域名备案,比较麻烦。推荐CloudFlare)

弄好了之后,你会发现可以使用https,http两种协议来访问网站。

但是!这一点都不酷!

我是这么做的

可以通过js来重定向https:

(function forceHttps(){
    var ishttps = 'https:' == document.location.protocol ? true: false;
    if(ishttps == false){
    location.href = location.href.replace("http://", "https://");
    }
    // fix IE memory leek.
    ishttps = null;
})();

闭包

闭包是 JavaScript 一个非常重要的特性,这意味着当前作用域总是能够访问外部作用域中的变量。 因为函数 是 JavaScript 中唯一拥有自身作用域的结构,因此闭包的创建依赖于函数。

闭包的最大特点,闭包函数返回时,该函数内部变量处于激活状态,函数所在栈区依然保留。

javascript的垃圾回收原理

(1)在javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收;
(2)如果两个对象互相引用,而不再被第3者所引用,那么这两个互相引用的对象也会被回收。

Like the old Albert Einstein said:

If you can't explain it to a six-year-old, you really don't understand it yourself.

[1]: MDN: How do JavaScript closures work?
[2]: w3schools: JavaScript Closures
[3]: Challions.com

Comments
Write a Comment