「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战」
Hope is a good thing, maybe the best of things. And no good thing ever dies.
前言
在工作中,我们可能会很少关注这个问题,作为一个前端工程师,接口通常都是后端提供好,我们大部分时间都是直接调用即可,基本接口都是HTTPS的,既然经常用,我们就应该知道 HTTP和HTTPS的区别,这也是面试中经常遇到问题。
基本概念
HTTP
HTTP协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或者其他程序与web服务器之间的应用层通信协议
HTTPS
HTTPS协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
具体可以参考我之前的文章: # https 小结
HTTP 的缺点
- 通信使用明文,内容可能被窃听(重要密码泄露)
- 不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
- 无法证明报文的完整性,有可能已遭篡改(运营商劫持)
HTTPS 和 HTTP 的区别
HTTPS协议需要到ca申请证书,基本上都是需要收费的。HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的ssl加密传输协议。HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。HTTP的连接很简单,是无状态的;HTTPS协议是由SSL + HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
(本图来源网络,如有侵权请联系删除)
HTTPS的工作过程
- 客户使用
HTTPS的URL访问Web服务器,要求与Web服务器建立SSL连接。 Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。- 客户端的浏览器与
Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。 - 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
Web服务器利用自己的私钥解密出会话密钥。Web服务器利用会话密钥加密与客户端之间的通信。
(本图来源网络,如有侵权请联系删除)
结语
如果这篇文章帮到了你,欢迎点赞👍和关注⭐️。
文章如有错误之处,希望在评论区指正🙏🙏
欢迎关注我的微信公众号,一起交流技术,微信搜索 🔍 :「 五十年以后 」