首页 > 其他分享 >【前端 · 面试 】HTTP 总结(十一)—— HTTPS 概述

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

时间:2024-07-29 20:00:31浏览次数:17  
标签:协议 HTTP SSL 面试 HTTPS 加密 传输

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

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

HTTPS

前言

通过前面内容的学习,相信大家对 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 端口,它的工作流程一般如以下图所示:

image-20210811204044397
  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,SSL,面试,HTTPS,加密,传输
From: https://blog.csdn.net/qq_24428851/article/details/140778542

相关文章

  • Java面试题(容器)
    目录1、Java容器都有哪些?2、 Collection和Collections有什么区别3、List、Set、Map之间的区别是什么?4、 HashMap和Hashtable有什么区别?5、如何决定使用HashMap还是TreeMap?6、 说一下HashMap的实现原理?7、 ArrayList和LinkedList的区别是什么?8、 ......
  • web基础以及http协议
    ⼀、web基本概念和常识Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。Web服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。Web应⽤开发也经过了⼏代技术的不断......
  • zookeeper、kafka单机版安装 https://www.cnblogs.com/dogleftover
    zookeeper、kafka单机版安装前提已经安装了jdk1.8、zookeeper3.6.3主机名:master映射:192.168.128.129master安装zookeeper单机版#将apache-zookeeper-3.6.3-bin.tar.gz上传到服务器#解压tar-zxvfapache-zookeeper-3.6.3-bin.tar.gz#移动mv/home/apache-zookeeper-3......
  • CSDN最新JAVA面试题集
    第一章-Java基础篇1、你是怎样理解OOP面向对象   难度系数:⭐面向对象是利于语言对现实事物进行抽象。面向对象具有以下特征:继承:继承是从已有类得到继承信息创建新类的过程封装:封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口多态性:多态性是指允......
  • Java面试题大全(四)
    91.Java开发设计七大原则在Java编程中,有一些基本的设计原则和模式,被广泛接受为最佳实践。以下是七个主要的Java开发原则:单一职责原则(SRP)一个类应该只有一个引起它变化的原因。开放-封闭原则(OCP)类应该是可扩展的,但是不可修改。李氏替换原则(LSP)子类型必须能够替换掉它们......
  • Python 面试常问问题及应用场景解析
    引言随着Python在数据科学、Web开发、自动化脚本、机器学习等领域中的广泛应用,越来越多的公司开始寻找具备Python技能的人才。因此,在Python面试中,面试官通常会通过一系列问题来评估应聘者的编程基础、问题解决能力和对Python特性的理解程度。本文将涵盖Python面试中最常见的......
  • 没申请域名只有IP地址可以实现HTTPS访问吗?
    一、前提条件公网IP地址:确保你拥有一个公网IP地址,因为这是从互联网直接被客户端访问的基础。私有IP地址位于内部网络中,无法直接从外部访问。管理权限:你需要对该IP地址具有完全的管理权限,以便进行后续的证书申请和服务器配置。二、申请SSL/TLS证书选择证书颁发机构(CA):并非所......
  • 70%的人都答错了的面试题,vue3的ref是如何实现响应式的?
    前言最近在我的vue源码交流群有位面试官分享了一道他的面试题:vue3的ref是如何实现响应式的?下面有不少小伙伴回答的是Proxy,其实这些小伙伴只回答对了一半。当ref接收的是一个对象时确实是依靠Proxy去实现响应式的。但是ref还可以接收 string、number 或 boolean 这样的......
  • 使用 smart_open 从 http 下载 .gz 流并上传到 s3 存储桶
    我想从http流式下载.txt.gz文件并流式上传到s3存储桶,我已经做到了这一点,但它不起作用,我错过了什么?fromsmart_openimportopenassopenchunk_size=(16*1024*1024)http_url='http://someurl'withsopen(http_url,'rb',transport_params={'headers':{�......
  • Swagger、Docker、Python-Flask: : https://editor.swagger.io/ 生成服务器 python-fl
    在https://editor.swagger.io/上您可以粘贴一些json/yaml。我正在将此作为JSON进行测试(不要转换为YAML):{"swagger":"2.0","info":{"version":"1.0","title":"OurfirstgeneratedRES......