面试常见问题——http/https的区别,cookie和session的区别
http:
1、简单快速
2、传输类型灵活
3、无连接
4、无状态
一般http中存在如下问题:
- 请求信息明文传输,容易被窃听截取。
- 数据的完整性未校验,容易被篡改
- 没有验证对方身份,存在冒充危险
https:
- 首先客户端通过URL访问服务器建立SSL连接。
- 服务端收到客户端请求后,会将网站支持的证书信息(证书中包含公钥)传送一份给客户端。
- 客户端的服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
- 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
- 服务器利用自己的私钥解密出会话密钥。
- 服务器利用会话密钥加密与客户端之间的通信。
https的缺点:
- HTTPS协议多次握手,导致页面的加载时间延长近50%;
- HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
- 申请SSL证书需要钱,功能越强大的证书费用越高。
- SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。
总结:
- HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
- http和https使用连接方式不同,默认端口也不一样,http是80,https是443。
cookie和session的区别:
1、存储方式不同:cookie存储在客户端的浏览器中,session存储在服务器端
2、安全性:Session相对于Cookie更为安全
3、 存储的数据类型:Cookie只能存储简单的字符串数据,如用户名、密码等。而Session则可以存储任意类型的数据,包括对象、数组等复杂数据结构
4、大小限制:单个Cookie的大小不能超过4KB(具体大小取决于浏览器和服务器端的设置)。而Session则没有这样的限制
总结:
-
Cookie适用于存储少量简单信息且需要长期保存的场景如用户登录状态保持、个性化设置等;
-
Session适用于存储大量复杂信息且只需要短期保存的场景如购物车功能、表单提交等;
-
在安全性要求较高的情况下应优先考虑使用Session来跟踪用户会话并采取必要的安全措施来保护Session数据的安全;
-
在处理大量并发请求时应合理控制服务器上存储的Session数量以避免对服务器性能造成过大影响。