最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。

争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。

前言

通过前面内容的学习,相信大家对 HTTP 的概念、特点、请求方法及缓存等的相关知识有了一定了解,恭喜大家在面试成功的道路上迈出了坚实的一步!

HTTP 从诞生之初到现在,已经好多年了,可以称得上是“历史悠久”了。中间经历过几次大的版本更新,依然坚挺如初。

但是不管再怎么坚挺,跟人们需求的发展速度相比,却稍显逊色,比如很常见的一个需求:我使用网上银行就行转账或者支付,怎么保证我的用户信息(包括密码)不会被泄漏?

由于 HTTP 协议传输的是明文信息,如果在支付过程中发出的 HTTP 请求被攻击者截取到,那么此请求所携带的用户信息对攻击者来说是可见的,可能会带来严重的安全隐患。

显然,要解决这个问题,并不是对 HTTP 协议进行简单的属性添加就可以实现的,在这种状况下,我们今天的主人公 —— HTTPS 就应运而生。

HTTPS

超文本传输安全协议,英语全称为 HyperText Transfer Protocol Secure,缩写叫做 HTTPS,有常被称为 HTTP over TLS、HTTP over SSL 或 HTTP Secure。

还记得吗?HTTP 叫做超文本传输协议,对比 HTTPS 的中文全称,我们就大概可以知道二者的区别了。

HTTPS 是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。这个协议由网景公司(Netscape)在 1994 年首次提出,随后扩展到互联网上。

严格地讲,HTTPS 并不是一个单独的协议,而是对工作在一加密连接(TLS 传输层安全)或 SSL)上的常规 HTTP 协议的称呼。

历史上,HTTPS 连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输。在 2000 年代末至 2010 年代初,HTTPS 开始广泛使用,以确保各类型的网页真实,保护账户和保持用户通信,身份和网络浏览的私密性。所以,我们现在见到的大多数应用网站都实现了 HTTPS 协议。

作用

HTTPS 的主要作用是在不安全的网络上创建一个安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护,其具体作用如下:

  • 数据保密性:保证数据内容在传输的过程中不会被第三方查看。就像快递员传递包裹一样,都进行了封装,别人无法获知里面装了什么 。
  • 数据完整性:及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收 。
  • 身份校验安全性:保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方,通过身份校验来确保送对了地方 。

总结起来一句话:HTTPS 提供对网站服务器的身份认证,保护交换数据的隐私与完整性

工作流程

HTTPS 默认工作在 TCP 协议 443 端口,它的工作流程一般如以下图所示:

  1. TCP 三次同步握手。
  2. 客户端验证服务器数字证书。
  3. DH 算法协商对称加密算法的密钥、hash 算法的密钥。
  4. SSL 安全加密隧道协商完成。
  5. 网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

优点

尽管 HTTPS 并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但 HTTPS 仍是现行架构下最安全的解决方案,主要有以下几个好处:

  • 使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  • HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
  • HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
  • 谷歌曾在 2014 年 8 月份调整搜索引擎算法,并称“比起同等 HTTP 网站,采用 HTTPS 加密的网站在搜索结果中的排名将会更高”。

缺点

虽然说 HTTPS 有很大的优势,但其相对来说,还是存在不足之处的:

  • HTTPS 协议握手阶段比较费时,会使页面的加载时间延长近 50%,增加 10% 到2 0% 的耗电。
  • HTTPS 连接缓存不如 HTTP 高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响。
  • SSL 证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
  • SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源不可能支撑这个消耗。
  • HTTPS 协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

总结

以上就是对 HTTPS 的一些概述内容,希望对你有所帮助!

~

~本文完,感谢阅读!

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述相关推荐

  1. 深入理解前端跨域问题的解决方案——前端面试

    深入理解前端跨域问题的解决方案--前端面试 参考文章: (1)深入理解前端跨域问题的解决方案--前端面试 (2)https://www.cnblogs.com/greatluoluo/p/627346 ...

  2. 2019年六月前端面试经验总结

    四月底从上家公司离职,五月六月陆陆续续面试了十几家公司,也拿到了几个offer.总体来说大环境和就业形势还是比较不乐观的,面试的人多,而招的人少,对前端的的要求也比以往要高,这些先不具体讨论,这里主要 ...

  3. 2020 - 2021 年 Web 前端最新导航 - 前端学习资源分享前端面试资源汇总

    前端javascriptvue.jses6typescript 发布于 10月9日 国庆这几天,我收集了大量可以显著提升开发效率的前端导航链接. 这些导航链接对我很有帮助,希望对你也是如此. 这些好用 ...

  4. 2022届秋招保利威前端面试

    2022届秋招保利威前端面试 原文网址:https://www.nowcoder.com/discuss/353158719997419520?sourceSSR=search 对象的浅拷贝和深拷贝如 ...

  5. 前端面试查漏补缺--(三) 跨域及常见解决办法

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  6. 前端面试查漏补缺--(一) 防抖和节流

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  7. (建议收藏)前端面试必问的十六条HTTP网络知识体系

    大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.已进行四个月了,很多小伙伴表示收获颇丰. 想学源码,极力推荐订 ...

  8. web前端面试问答_Web服务面试问答

    web前端面试问答 在这篇文章中,我们涵盖了您需要熟悉的Web服务概念的几乎所有部分,以回答任何层级问题. 您还将在分类中找到最佳的Web服务面试问题和答案,因此只有在必要时才可以使用特定条款. 今天 ...

  9. 前端面试技巧和注意事项_前端面试百分之九十九过的技巧

    2020最全的前端面试指南,一个多月 1.8w 字的面试经验积累,凭借它最终成功入职大厂-- 今年的金三银四刚好赶上疫情,很多大公司都停止招聘甚至裁员,想跳槽的小伙伴被打的措手不及. 需求减少要求肯定 ...

  10. 2018年中高级前端面试题目小结

    2018年中高级前端面试题目小结 前言 关于前端面试,及面试题目,我之前有很多文章总结过,可以在右侧搜索面试,进行查找.其实面试中可以问的问题很多,最近几年,我也面试过很多工作2-4年的前端,我一般会 ...

最新文章

  1. 王敏捷 - 深度学习框架这十年!
  2. 只有这种AI芯片才能拯救人工智能?
  3. python中collections_Python中的collections模块
  4. 如何实现ios屏幕的横竖屏自适应
  5. Goland实现Set操作
  6. 深入理解html5系列-文本标签
  7. Android学习笔记进阶十三获得本地全部照片
  8. egg.js ajax上传文件,上传图片功能不会使用
  9. HTML5各种标签总结(HTML、head)
  10. mysql 数值型注入_SQL注入之PHP-MySQL实现手工注入-数字型
  11. 10、jeecg 默认为空的字段值是如何被填充的?
  12. 了解前端——js需知道知识点
  13. android不同机型编译不同so,如何使用adb命令查看android中的数据库
  14. linux下ssh/scp无密钥登陆方法
  15. EL表达式(Exprission language)
  16. wait和notify的用法
  17. 2013总结和2014展望
  18. Python自然语言处理学习笔记(23):3.7 用正则表达式文本分词
  19. [北航软工]技术规格说明书
  20. 【Android -- 学习】学习资料汇总

热门文章

  1. C++ Error C2664:无法将参数 1 从“const char [9]”转换为“LPCWSTR”解决方案
  2. Unity3D引用dll打包发布的问题及解决
  3. 如何使用jQuery设置输入文本的值
  4. 在JavaScript中将字符转换为ASCII代码
  5. 如何检查正在运行脚本的Python版本?
  6. AT:AT命令控制上网 PDP
  7. STM32:UART中的硬件流控RTS与CTS
  8. vivox6android版本5.1,vivo X6 Plus的手机系统是什么?能升级安卓5.0吗?
  9. java .size,Java中length,length(),size()详解及区别
  10. 如何使用python编程画图_【Python开发】使用python中的matplotlib进行绘图分析数据...