秋招面试过程中,蘑菇街面试时,面试官问我http和https的区别,当时听到这个问题的时候,其实有点心虚的,因为自己对于这两个协议的具体区别只是基于表面,对于https还是比较陌生的,就按照自己的理解和这两个协议的联系简单说了一下他们之间的区别,后来面试官又问我有没有考虑过通过http协议如何实现https协议,这就触及到我的知识盲点了,所以当时这个问题我就没答上来。这几天也对这个问题进行了一些思考,查阅了相关的资料,就整理了一下:
一、https协议产生的背景
http协议是超文本传输协议,用于在web浏览器和网站服务器之间传输信息,http协议在传输数据的过程中,是以明文的方式传输,不进行任何数据加密的
,这样的一个缺点就是:在数据传输的过程中,当有一些恶意者截取了web浏览器和网站服务器之间的报文,就可以直接得到报文中的信息,所以在传输一些重要信息的时候会出现安全性问题
为了解决http协议这一缺陷,就出现了https协议,https是安全套接字层超文本传输协议,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。是在超文本传输协议http的基础上加了SSL/TLS协议,所以HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。
二、HTTPS工作原理
1、客户端发起https请求
这个就是过程用户在浏览器里输入一个https网址,然后连接到server的443端口