之前面试有被问道http与https的区别,于是自己下来学习了下。
简单来说http是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。由于http本身不具备加密功能,所以HTTP协议中有可能存在信息窃听或身份伪装等安全问题。而HTTPS通信机制可以有效的防止这些问题。
HTTP协议中请求和响应不会对通信方进行确认。也就是说存在“服务器是否就是发送请求中URI真正指定的主机,返回的响应是否是真的返回到实际提出请求的客户端”等问题。而SSL则提供了加密处理,还使用了一种被称为证书的手段,用于对方确认。HTTPS则是身披SSL外壳得HTTP,使HTTP先和SSL通信,再由SSL和TCP通信,来确保通信安全,防止信息被窃听。
既然HTTPS更安全可靠,那为什么Web网站不一直使用HTTPS?
因为与纯文本通信相比,加密通信会消耗更多的CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理请求数量必然也会随之减少。因此,非敏感信息则使用HTTP通信,只有在包含个人信息等敏感数据时,才利用HTTPS加密通信。