【日常积累】HTTP和HTTPS的区别

news2024/12/30 1:54:03

背景

在运维面试中,经常会遇到面试官提问http和https的区别,今天咱们先来简单了解一下。

超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:各种密码,银行卡号等重要信息。
为了解决HTTP协议的这个安全问题,需要使用另一种协议:HTTPS超文本传输安全协议,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

基本概念

HTTP

HTTP(Hyper Text Transfer Protocol)全称为超文本传输协议,是一个简单的请求——响应协议:

  • HTTP协议规定了如何从网站服务器传输超文本到本地浏览器;
  • HTTP协议基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准。
  • HTTP协议可以使浏览器更加高效,使网络传输减少。
  • HTTP协议不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTPS

HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),超文本传输安全协议:

  • 是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
  • HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
  • HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
  • HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

区别

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

  • https协议需要到CA(Certificate Authority,数字证书认证机构)申请证书,一般免费证书较少,因而需要一定费用。
  • http是明文传输,数据未加密,安全性差;https则是具有安全性的ssl加密传输协议,安全性好。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  • http页面响应速度比https快,因为http使用TCP三次握手建立连接,客户端和服务器需要交换 3 个包,而https除了TCP的三个包,还要加上ssl握手需要的 9 个包,所以一共是 12 个包。
  • https=SSL/TLS+http,所以,https比http要更耗费服务器资源。

工作原理

HTTP工作原理

(1)客户端与服务器建立连接。该连接是通过TCP 来完成的,一般端口号是80。
(2)客户向服务器提出请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。
(3)服务器接受请求,并根据请求返回相应的文件作为应答。格式:一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
(4)客户与服务器关闭连接。

HTTPS工作原理

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,现在绝大多数网站都会采用安全级别较高的HTTPS协议,即使用户访问http协议的网站,也会跳转到https协议类型的网站。
在这里插入图片描述
客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如下图所示。
在这里插入图片描述
步骤分析:
(1)客户端向服务端443端口发起HTTPS请求。该请求中携带了客户端支持的加密算法和哈希算法;
(2)服务端收到请求,选择浏览器支持的加密算法和哈希算法。
(3)服务端将算法和数字证书发送给客户端。该证书包含了用于认证目的的服务器标识,可以是向某个可靠机构申请的,也可以是自制的;
(4)客户端对服务器端的证书进行验证,这一部分是浏览器内置的TLS完成的,具体步骤如下:

首先浏览器会从内置的证书中搜索,找到该证书对应的机构,如果查到了对应的机构,则取出该机构颁发的公钥;如果没有找到,此时浏览器就会提示用户该证书不是由权威机构颁发,是不可信任的。
然后用机构的证书公钥解密,得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证签名的合法性,签名通过后,浏览器验证证书记录的网址是否和当前网址是一致的,不一致会提示用户。如果网址一致会检查证书有效期,证书过期了也会提示用户。这些都通过认证时,浏览器就可以安全使用证书中的网站公钥了。
服务器生成一个随机密码串pre_master_secret,并使用服务器的公钥对其进行加密。
(5)客户端将加密的随机密码串传送给服务端。
(6)服务器用自己的私钥解密得到随机密码串(私钥),然后通过该随机密码串把网页内容进行对称加密,并传输给浏览器。
(7)浏览器用之前生成的私钥解密算法获取网页内容。

HTTPS优缺点

优点

(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

缺点

(1)相同网络环境下,HTTPS协议会使页面的加载时间延长,耗电增加。此外,HTTPS协议还会影响缓存,增加数据开销和功耗。
(2)HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
(3)SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。
(4)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(5)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。

HTTP请求消息和响应消息

在HTTP请求和响应的过程中传递的数据块就叫HTTP消息,包括要传送的数据和一些附加信息,并且要遵守规定好的格式。

请求消息

请求消息是指客户端向服务器端发送请求时所携带的数据块,来自客服端。
请求方式用来规定客户端与服务器端联系的类型。
HTTP协议中客户端8种请求方式如下:

请求方式说明
Get向特定资源发出请求(请求指定页面信息,并返回实体主体)
Post向指定资源提交数据进行处理请求(提交表单、上传文件),可能导致新的资源的建立或原有资源的修改
Put向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
Head与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
opions返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
Delete请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
Trace回显服务器收到的请求,用于测试和诊断
ConnectHTTP/1.1协议中能够将连接改为管道方式的代理服务器

响应消息

响应消息是指服务器端向客户端进行响应请求时所携带的数据块,来自服务端

在响应消息中,对于客户端的每一次请求,服务器端都要给予响应,在响应的时候我们可以通过状态码告诉客户端此次请求是成功还是失败。

状态代码由3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体的分类,第1位数字有5种可能的取值,大致了解:
1**:请求已接收,需要继续处理。
2**:请求已成功被服务器接收、理解并接受。
3**:为完成请求,客户端需进一步细化请求。
4**:客户端的请求有错误。
5**:服务器端出现错误。

HTTP协议常见的状态码

状态码说明
200表示服务器成功处理了客户端的请求
302表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求
404表示服务器找不到请求的资源
400表示客户端请求有语法错误
500表示服务器发生错误,无法处理客户端的请求

更多关于Linux的知识请前往博客主页查看,编写过程中可能由于能力有限难免出现问题,敬请指出,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/882177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你的汽车充电桩控制板可能比你的智能手机还要智能?

你是否想过,你的汽车充电桩控制板可能比你的智能手机还要智能?今天我们就来聊聊这个话题。 汽车充电桩控制板的智能性让充电过程更加高效、安全。首先,它具备自检功能,就像你的手机一样,不仅能检查出设备的工作状态,还…

[杂症]PLSQL很卡

PLSQL症状如下: 1、PLSQL隔段时间没用再执行语句时会很卡2、就是很卡,干啥都卡 目前网上的方法汇总如下: 1、Tools >> Preferesnces >> Oracle >> Connection 打开自动连接 勾选检查连接、勾选所有会话,设置成…

正中优配:牛市旗手“又行了”

8月15日早盘,A股首要指数呈弱势盘整态势,截至记者发稿时,沪指小幅翻红,深证成指、创业板指依然飘绿。 中拉升;周一活泼的酒店、旅游板块则震荡调整;房地产板块盘中震荡,体现较弱。 “牛市旗手”…

软件测试简历撰写与优化,让你面试邀约率暴增99%!

如何撰写一份优秀的简历呢??这是一个求职者都会遇到的问题,今天就来详细带大家写一份软件测试工程师职位的简历!希望能给各位软件测试求职者一个带来帮助! 个人简历是求职者给招聘单位发的一份简要介绍。包含自己的基本…

grafana 的 ws websocket 连接不上的解决方式

使用了多层的代理方式,一层没有此问题 错误 WebSocket connection to ‘wss://ip地址/grafana01/api/live/ws’ failed: 日志报错 msg“Request Completed” methodGET path/api/live/ws status403 解决方式 # allowed_origins is a comma-separated list of o…

Qt扫盲- Graphics View框架理论综述

Graphics View框架理论综述 一、概述二、Graphics View 体系结构1. The Scene2. The View3. 图元 Item 三、图形视图坐标系统1. 图元Item的坐标2. Scene Scene坐标3. View 视图坐标4. 坐标映射 四、关键特性1. 缩放和旋转2. 打印3. 拖放4. 鼠标指针和 提示5. 动画6. OpenGL渲染…

在Vscode中,使用Shift + Alt + F导致本来一行的代码变成多行,看起来贼难受

在VSCode中,我们经常安装各种插件,本人采用的时vuter插件,但是在使用这个插件的时候,我发现,使用Shift Alt F,对整个前端vue界面进行代码格式化的时候,本来是一行就可以展示的代码&#xff0c…

揭穿DevOps的5个谣言!

据不完全统计,软件故障每年都会给企业造成数十亿美元的损失,这也是为什么拥有一个可靠的软件交付流程是如此重要的原因,而DevOps能够帮助我们实现这一目标。 尽管如今DevOps如今已在大量企业中落地,但人们对DevOps其实存在很多误…

0基础转行产品经理可行吗?如何操作才靠谱?

在多年的产品经验中,遇到了很多朋友同事咨询转行做产品的可行性,在沟通的过程中,大家都普遍认为零基础转行产品,对于一个已经有工作经验的人来说,是不是需要付出很大的努力,之前走的路就全白费了&#xff0…

在VMware平台安装centos8.4详细图文步骤

CentOS-8 的首个发行版本。CentOS Linux 发行版本是一个稳定、高预测性、高管理性、高重复性的平台,它源于 Red Hat 企业级 Linux(RHEL)的源代码。你可以检阅此发行版本的官方发布。 官方中文的发行说明:https://wiki.centos.org/action/show/zh/Manuals…

针对低分辨率或小目标的卷积-SPDConv

针对低分辨率或小目标的卷积-SPDConv 摘要引言A New Building Block:SPD-Conv附录代码: 摘要 卷积神经网络在许多计算机视觉任务中取得了巨大成功。然而,在图像低分辨率或目标较小任务上,他们的性能迅速下降。在本文中,我们指出&…

Springboot 实践(3)配置DataSource及创建数据库

前文讲述了利用MyEclipse2019开发工具,创建maven工程、加载springboot、swagger-ui功能。本文讲述创建数据库,为项目配置数据源,实现数据的增删改查服务,并通过swagger-ui界面举例调试服务控制器 创建数据库 项目使用MySQL 8.0.…

dataframe resample时间重采样的坑

无论日期列不在index,index一定要按顺序,否则结果会和实际不一致。reset_index

WebDAV之π-Disk·派盘 + 厚墨

厚墨是目前网络上非常方便的一款电子阅读软件,采用独家数据采集分析技术,汇合了移动互联网各种资源网站大数据,能同步起点中文网、纵横中文网、逐浪小说网、言情小说吧、晋江文学城、百度阅读、网易云阅读、塔读文学、创世中文网、潇湘书院、飞卢小说和腾讯文学等等小说更新…

Java培训出来的怎么样?看到就是赚到

近些年来,Java作为一门招聘市场上热门的技能之一,越来越受到人们的重视,也因此越来越多的人选择通过Java培训来提高自己技能水平。那么,Java培训出来的怎么样呢?接下来,小编将从学习体验、就业前景等方面进行分析。 1…

Electron基础篇

人生有些事,错过一时,就错过一世。 官网:简介 | Electron Electron-大多用来写桌面端软件 Electron介绍 Electront的核心组成是Chromium、Node.js以及内置的Native API,其中Chromium为Electron提供强大的UI能力,可以在不考虑兼容的情况下利…

如何仅用几分钟就能破解8个字符长的密码?

安全专家一直建议我们创建复杂的强密码,以保护我们的在线账户和数据免受狡猾的网络犯罪分子的攻击。“复杂”通常意味着使用大小写字母、数字,甚至特殊符号。但是据安全公司Hive Systems的研究显示,如果密码所含的字符不够多,密码…

解读2023年上半年财报:营收净利双增长,珀莱雅离高端还有多远?

夏季炎热,防晒类产品的销量暴涨。根据千牛数据,防晒衣今年5月全网搜索人数同比增长15%,加购人数同比增长29.8%,访问人数同比增加42%。消费者狂热的防晒需求,孕育着巨大的商机,许多企业开始瞄准这一机会。而…

python命令行参数argparse的简单使用

1、终端中执行脚本程序 pycharm的终端中执行 python xxx.py命令行中执行程序 2、获取命令行输入的参数 import sysprint(sys.argv) 3.专门处理命令行的library:argparse 添加optional arguments参数:默认是可选的,意味着可以不用填写 p…

08 - 追加commit和修改最新的commit message

查看所有文章链接:(更新中)GIT常用场景- 目录 文章目录 1. 追加提交2. 修改最新的commit message 1. 追加提交 将改动追加到上一次的commit 现在我已经修改了Readme文件并且已经add、commit操作,但是还没有push到远程仓库&#x…