2013年5月12日

在IIS 7中使用HTTPS连接

做毕设的过程中,希望能使用Https安全连接。在网上查阅了相关资料,发现仅是以调试、测试目的而启用Https连接是相当简单的。
首先,需要解释一下Https,TSL,SSL以及证书的关系。我们知道,HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情,SSL最后一个版本是3.0,今后TLS将会继承SSL优良血统继续为我们进行加密服务。目前TLS的版本是1.2,定义在RFC 5246中,暂时还没有被广泛的使用。

Date.parse()在Chrome,FireFox,IE中的差异

我翻了好几篇关于Javascript中Date.parse()方法的博文。它们着重讲的是日期格式的问题,需要以Date.parse("MM/dd/yyyy HH:mm:ss")这样的形式方能在3种浏览器中正确运行。最近在做一个需要实时绘图的项目,其时间精确到毫秒,这时Date.parse()在3个浏览器中就有了不同的表现。请看以下代码:

var now=Date.parse("05/12/2013 15:24:27.53");

这行代码在Chrome里可以正确运行时间的毫秒部分也能正确地被转换。但同样的代码到了FF和IE里就报错了。经过排除,确认是这两种浏览器的Date.parse()方法最多支持到秒级。后来我又尝试了"05/12/2013 15:24:27,53","05/12/2013 15:24:27 53","05/12/2013 15:24:27,530","05/12/2013 15:24:27 530"等形式的字符串,均无法正确地在FF和IE中转换。如果要想解决这个问题,只好采取一种很别扭的方法:把字符串从秒处截断,前面的部分在3个浏览器中都可以正确转换。转换完毕后把后一部分再加上。