HTTP 与 HTTPS 的区别

ops/2024/10/18 16:50:49/

HTTP 与 HTTPS 的区别?

HTTPHTTPS
端口80443
安全性无加密,安全性较差有加密机制,安全性较高
资源消耗较少由于加密处理,资源消耗更多
是否需要证书不需要需要
协议运行在TCP协议之上运行在SSL协议之上,SSL运行在TCP协议之上

HTTPS 的优缺点?

优点

  • 安全性:

    • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

    • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

    • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

  • SEO方面:谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

简述:确保数据正确发送,ssl+http,加密传输,身份认证,增加攻击成本,https>https在检索方面排名更高。

缺点

  • 在相同网络环境中,HTTPS 相比 HTTP 无论是响应时间还是耗电量都有大幅度上升。

  • HTTPS 的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。

  • 在现有的证书机制下,中间人攻击依然有可能发生。

  • HTTPS 需要更多的服务器资源,也会导致成本的升高。

简述:耗电,安全性依然有范围,在现有证书机制下依然可能被攻击,耗费资源多。

讲一讲HTTPS 的原理?

https>https://img-blog.csdnimg.cn/img_convert/779f1c19245db6f753b10d1b4aaddfb9.png" width="732" />

图片来源:滑动验证页面

加密流程按图中的序号分为:

  1. 客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

  2. 采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。

  3. 服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。

  4. 客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

    如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

  5. 客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

  6. 服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

  7. 服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。

  8. 双方使用对称加密愉快地传输所有数据。

简述:连接端口,产生公钥私钥,私钥自己保存,公钥附带传送,服务器响应请求传递证书给客户端,客户端解析证书,客户端加密之后把key发给服务器作为加密密钥。服务器利用私钥解密。

HTTPS使用非对称加密来安全地交换密钥,然后使用对称加密来加密通信,从而提供了一个既安全又高效的加密通信方式。

在浏览器中输入www.baidu.com后执行的全部过程?

  1. 域名解析(域名 www.baidu.com 变为 ip 地址)。

    浏览器搜索自己的DNS缓存(维护一张域名与IP的对应表);若没有,则搜索操作系统的DNS缓存(维护一张域名与IP的对应表);若没有,则搜索操作系统的hosts文件(维护一张域名与IP的对应表)。

    若都没有,则找 tcp/ip 参数中设置的首选 dns 服务器,即本地 dns 服务器(递归查询),本地域名服务器查询自己的dns缓存,如果没有,则进行迭代查询。将本地dns服务器将IP返回给操作系统,同时缓存IP。

dns解析两种方式:递归和迭代

  1. 发起 tcp 的三次握手,建立 tcp 连接。浏览器会以一个随机端口(1024-65535)向服务端的 web 程序 80 端口发起 tcp 的连接。

  2. 建立 tcp 连接后发起 http 请求。

  3. 服务器响应 http 请求,客户端得到 html 代码。服务器 web 应用程序收到 http 请求后,就开始处理请求,处理之后就返回给浏览器 html 文件。

  4. 浏览器解析 html 代码,并请求 html 中的资源。

  5. 浏览器对页面进行渲染,并呈现给用户。

简述:DNS解析,建立tcp连接,发送请求,解析html,渲染

附一张形象的图片:

https>https://img-blog.csdnimg.cn/img_convert/8059282ead3f06b1a6b6aa50bb8120f1.png" width="841" />


http://www.ppmy.cn/ops/26914.html

相关文章

数据链路层(计算机网络)

0、前言 本文大多数图片都来自于 B站UP主:湖科大教书匠 的教学视频,对高军老师及其团队制作出这么优质的课程表示感谢。本文的撰写目的不是为了应试,且受限于个人水平,可能和标准答案有所出入,请自行甄别,…

Linux基础part-3

1、Linux一般系统查看类命令 【stat】命令 格式:stat [option] file显示文件的元数据信息,包括文件的权限、拥有者、大小、修改时间等。eg:stat myfile.txt 【file】命令 用于确定文件类型格式:file [option] filefile myfile.t…

Scala 多版本下载指南

Scala,这一功能丰富的编程语言,结合了面向对象和函数式编程的精华,为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进,多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…

OpenSSH 漏洞补丁更新笔记

OpenSSH 漏洞补丁更新笔记 相关背景OpenSSH 8.8 以后版本弃用RSA 以及影响centos 更新openssh9.7p1通过rpm包进行安装 Ubuntu更新openssh-9.5p1前置条件下载的源码包导入服务器后操作 相关背景 客户通过第三方扫漏工具发现服务器centos8和Ubuntu22.04有OpenSSH 相关高危漏洞 扫…

面试:ThreadLocal

目录 1、ThreadLocal可以实现〔资源对象】的线程隔离,让每个线程各用各的【资源对象】,避免争用引发的线程安全问题 2、ThreadLocal同时实现了线程内的资源共享 3、原理 4、为什么ThreadLocalMap 中的 key (即 ThreadLocal )要设计为弱引用…

【热闻速递】Google 裁撤 Python研发团队

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 【🔥热闻速递】Google 裁撤 Python研发团队引入研究结论 【&#x1f5…

【PC游戏】【World of Warcraft 魔兽世界(法语版)】怀旧版 CD-ROM 安装及使用记录(一)

一、前言 正值最近暴雪和网易重修旧好之时,笔者在新加坡从一个宅男朋友nerd bro那里淘到了一套法语版的World of Warcraft,共5张CD-ROM光碟。该套光碟的发行年份是2005年,于欧盟制造。推荐的操作系统是Windows 2000或者Windows XP或者Mac OS…

Python 深度学习(一)

原文:zh.annas-archive.org/md5/98cfb0b9095f1cf64732abfaa40d7b3a 译者:飞龙 协议:CC BY-NC-SA 4.0 序言 随着全球对人工智能的兴趣不断增长,深度学习引起了广泛的关注。每天,深度学习算法被广泛应用于不同行业。本书…