如何理解http与https协议,他们有什么区别?

写在前面的话,关于 HTTP 和 HTTPS 的问题,常常会被很多学习者忽略,HTTP、HTTPS 不就是网址的开头吗,有啥好了解的,浏览器的引擎实现了这个协议,在开发关系不大,但想要深入一些理解数据传输原理,了解这两个概念是必须的,以下的内容为概念性,帮助小伙伴们了解 HTTP 和 HTTPS 的关键点。

HTTP(HyperText Transfer Protocol,超文本传输协议)和HTTPS(HTTP Secure,安全超文本传输协议)都是用于从网络传输超文本到本地浏览器的传输协议,它们是互联网上应用最为广泛的协议之一。以下是它们的主要区别和各自解决的问题:

HTTP(超文本传输协议)

  1. 定义:HTTP是一种用于分布式、协作式、超媒体信息系统的应用层协议,它是万维网数据通信的基础。
  2. 特点:
  • 明文传输:数据在传输过程中以明文形式存在,容易被截获和篡改。
  • 无状态:HTTP协议本身不保留之前客户端和服务器的通信状态。
  • 连接无限制:HTTP协议没有对连接的数量和频率进行限制。
  1. 使用场景:适用于不需要安全加密的普通网页数据传输,如新闻、博客等。

HTTPS(安全超文本传输协议)

  1. 定义:HTTPS是在HTTP的基础上通过SSL/TLS协议进行加密的数据传输方式。
  2. 特点:
  • 安全加密:通过SSL/TLS协议对数据进行加密,保护数据传输过程中的安全性,防止数据在传输过程中被窃取或篡改。
  • 身份验证:通过证书对服务器进行身份验证,确保数据发送到正确的服务器。
  • 完整性校验:确保数据在传输过程中未被篡改。
  1. 使用场景:适用于需要高安全性的场合,如网上银行、在线支付、登录认证、敏感数据传输等。

区别

  • 安全性:HTTPS比HTTP更安全,因为数据在传输过程中被加密。
  • 加密方式:HTTP不加密,而HTTPS使用SSL/TLS进行加密。
  • 端口:HTTP默认端口是80,HTTPS默认端口是443。
  • 性能:由于加密和解密的开销,HTTPS通常比HTTP慢一些,但这种差异随着技术的发展越来越小。
  • SEO影响:搜索引擎如Google倾向于优先索引HTTPS网站,因为它们提供了更安全的数据传输。

解决的问题

  • HTTP:解决了如何在互联网上传输超文本数据的问题,但因为其明文传输的特性,无法保证数据的安全性和完整性。
  • HTTPS:解决了数据传输过程中的安全性问题,通过加密确保数据的机密性、完整性和身份验证,从而保护用户的隐私和数据安全。

随着网络安全意识的提高,越来越多的网站选择使用HTTPS来保护用户数据和提高网站的可信度。

HTTP协议是如何工作的

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的协议之一,用于客户端(如浏览器)和服务器之间的通信。以下是HTTP协议的基本工作原理:

  1. 建立连接:
  • 客户端通过TCP协议与服务器建立一个连接。HTTP/1.1默认使用持久连接,即TCP连接在传输完一个对象后不会关闭,可以被用来传输下一个对象。
  1. 发送请求:
  • 客户端发送一个HTTP请求到服务器。请求通常包含请求行(如GET /index.html HTTP/1.1),请求头(包含请求的附加信息,如User-Agent、Accept等),以及可选的请求体(如POST请求中的数据)。
  1. 服务器处理请求:
  • 服务器接收到请求后,根据请求行中的HTTP方法(如GET、POST、PUT等)、资源路径(如/index.html)和HTTP版本等信息,确定如何处理请求。
  1. 生成响应:
  • 服务器处理请求后,生成一个HTTP响应。响应包括状态行(如HTTP/1.1 200 OK),响应头(包含响应的附加信息,如Content-Type、Content-Length等),以及响应体(即请求的资源内容,如HTML页面)。
  1. 客户端接收响应:
  • 客户端接收到服务器的响应后,根据响应的状态码(如200 OK、404 Not Found等)和响应头中的信息,处理响应体中的数据。
  1. 关闭连接:
  • 在HTTP/1.0中,每个请求/响应对完成后,连接就会关闭。而在HTTP/1.1中,默认使用持久连接,可以在同一个连接上发送多个请求/响应对,直到客户端或服务器端明确关闭连接。
  1. 内容展示:
  • 客户端(通常是浏览器)将接收到的内容展示给用户。如果是HTML页面,浏览器会解析HTML并渲染页面。
  1. 资源加载:
  • 对于HTML页面中的其他资源(如图片、CSS、JavaScript等),浏览器会再次通过HTTP协议发起请求,重复上述过程,直到页面完全加载。

HTTP协议是无状态的,即服务器不会在请求之间保存任何会话信息。为了解决这个问题,引入了Cookie和Session机制来保持状态。

此外,HTTP协议还有一些扩展,如HTTP/2,它引入了头部压缩、多路复用等特性,以提高传输效率和性能。

HTTPS协议是如何工作的

HTTPS(HTTP Secure)协议是在HTTP协议的基础上,通过SSL/TLS(Secure Socket Layer/Transport Layer Security)协议进行数据加密和安全认证的网络协议。以下是HTTPS的工作原理:

  1. 建立TCP连接:
  • 客户端(通常是浏览器)首先通过TCP协议与服务器建立一个安全的连接。
  1. 客户端发起HTTPS请求:
  • 客户端通过HTTPS URL(以https://开头)发起请求,这个请求会被发送到服务器的443端口(或其他配置的端口)。
  1. 服务器响应证书:
  • 服务器接收到客户端的HTTPS请求后,会向客户端发送其SSL证书。这个证书通常由受信任的证书颁发机构(CA)签发,包含了服务器的公钥和其它身份信息。
  1. 证书验证:
  • 客户端接收到证书后,会检查证书的有效性,包括证书是否过期、证书颁发机构是否受信任等。如果证书验证失败,客户端会警告用户连接可能不安全。
  1. 密钥交换:
  • 如果证书验证通过,客户端会生成一个随机的对称加密密钥,用于本次会话的加密通信。然后,客户端使用服务器证书中的公钥对这个对称密钥进行加密,并将加密后的密钥发送给服务器。
  1. 服务器解密密钥:
  • 服务器使用自己的私钥解密客户端发送的加密信息,得到对称加密密钥。
  1. 加密通信:
  • 从此时开始,客户端和服务器都会使用这个对称密钥对所有传输的数据进行加密和解密,确保数据的机密性和完整性。
  1. 发送和接收数据:
  • 客户端和服务器现在可以安全地交换数据。所有通过HTTPS传输的数据都会被加密,只有通信双方才能解密和理解数据内容。
  1. 会话结束:
  • 当通信结束时,客户端和服务器可以安全地关闭连接,或者保持连接以供后续通信使用(HTTP持久连接)。
  1. 安全性特性:
  • HTTPS提供了数据完整性校验和身份验证,确保数据在传输过程中没有被篡改,并且确认了通信双方的身份。

HTTPS协议通过在HTTP协议之上增加SSL/TLS层,提供了数据加密、身份验证和数据完整性校验等安全特性,从而保护了用户数据和隐私安全,尤其适用于需要高安全性的场合,如网上银行、在线支付、电子邮件等。

最后

了解 HTTP 和 HTTPS 的概念,连接客户端与服务端请求响应的知识空白,不用太多,V 哥觉得以上的内容够了,如果还需要更深入了解,需要从网络七层协议,浏览器的TCP实现细节入手。求个关注,威哥爱编程,一起热爱技术。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《植物大战僵尸杂交版》2.2版本:全新内容与下载指南

《植物大战僵尸杂交版》2.2版本已经火热更新,带来了一系列令人兴奋的新玩法和调整,为这款经典的塔防游戏注入了新的活力。如果你是《植物大战僵尸》系列的忠实粉丝,那么这个版本绝对值得你一探究竟。 2.2版本更新亮点 新增看星星玩法 这个新…

HarmonyOS鸿蒙DevEco Studio无法连接本地模拟器

使用DevEcoStudio 5.0.3.403版本 发现无法选择模拟器 解决方法: 1、打开模拟器 2、关闭DevEco Studio,(不要关闭模拟器) 3、重新打开DevEco Studio。

效果惊人!LivePortrait开源数字人技术,让静态照片生动起来

不得了了,快手已经不是众人所知的那个短视频娱乐平台了。 可灵AI视频的风口尚未过去,又推出了LivePortrait--开源的数字人项目。LivePortrait让你的照片动起来,合成逼真的动态人像视频,阿里通义EMO不再是唯一选择。 让图像动起来 LivePortrait 主要提供了对眼睛和嘴唇动作的…

Junior.Crypt.2024 CTF Web方向 题解WirteUp 全

Buy a cat 题目描述:Buy a cat 开题 第一思路是抓包改包 Very Secure App 题目描述:All secrets become clear 开题 乱输一个密码就登陆成功了(不是弱口令) 但是回显Your role is: user 但是有jwt!!&a…

线程池【开发实践】

文章目录 一、为什么要用线程池1.1 单线程的问题1.2 手动创建多线程的问题1.3 线程池的作用(优点)1.4 线程池的使用场景 二、线程池的基础知识2.1 线程池的核心组件2.2 JUC中的线程池架构2.3 线程池的配置参数2.4 线程池常见的拒绝策略(可自定…

看影视学英语(假如第一季第一集)

in the hour也代表一小时吗?等同于in an hour?

科研绘图系列:R语言小提琴图(Violin Plot)

介绍 小提琴图(Violin Plot)是一种结合了箱线图和密度图的图表,它能够展示数据的分布密度和分布形状。以下是对小提琴图的详细解释: 小提琴图能表达: 数据分布:小提琴图通过在箱线图的两侧绘制曲线来展示数据的分布密度,曲线的宽度表示数据点的密度。集中趋势:箱线图部…

渲染农场怎么用更省钱?渲染100邀请码1a12

现在越来越多的设计师开始使用渲染农场,其中收费是个大问题,怎么用渲染农场才能更省钱呢?今天我们就来看下吧。 1、明确渲染方式 要根据不同情况选择合理的渲染方式,比如渲染农场就适合大场景渲染和紧急出图情况,其他…

DDR3 SO-DIMM 内存条硬件总结(一)

最近在使用fpga读写DDR3,板子上的DDR3有两种形式与fpga相连,一种是直接用ddr3内存颗粒,另一种是通过内存条的形式与fpga相连。这里我们正好记录下和ddr3相关的知识,先从DDR3 SO-DIMM 内存条开始。 1.先看内存条的版本 从JEDEC下载…

Python面试宝典第8题:二叉树遍历

题目 给定一棵二叉树的根节点 root ,返回它节点值的前序遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root [] 输出:[] 示例 3: 输入:root […

机器人伦理分析:从扫地机器人到智能伙伴

我发过一个泡泡:机器人和扫地机器人。 意犹未尽,我觉得这是一个值得讨论下去的话题。或者是未来话题 在科技迅猛发展的今天,机器人已经从简单的执行工具演变为能够执行复杂任务的智能实体。特别是在家庭环境中,扫地机器人已经成为…

Python酷库之旅-第三方库Pandas(012)

目录 一、用法精讲 28、pandas.HDFStore.keys函数 28-1、语法 28-2、参数 28-3、功能 28-4、返回值 28-5、说明 28-6、用法 28-6-1、数据准备 28-6-2、代码示例 28-6-3、结果输出 29、pandas.HDFStore.groups函数 29-1、语法 29-2、参数 29-3、功能 29-4、返回…

14-57 剑和诗人31 - LLM/SLM 中的高级 RAG

​​​ 首先确定几个缩写的意思 SLM 小模型 LLM 大模型 检索增强生成 (RAG) 已成为一种增强语言模型能力的强大技术。通过检索和调整外部知识,RAG 可让模型生成更准确、更相关、更全面的文本。 RAG 架构主要有三种类型:简单型、模块化和高级 RAG&…

嵌入式通信协议全解析:SPI、I²C、UART详解(附带面试题)

目录 一、什么是通信 二、 通信的分类 同步通信(Synchronous Communication) 异步通信(Asynchronous Communication) 不同协议标准区分图: UART UART的特点: UART的通信过程: UART的配置…

设计模式探索:装饰器模式

1. 装饰器模式定义 装饰器模式(Decorator Pattern) 装饰器模式是一种结构型设计模式,允许向一个对象动态添加行为。在不改变类的接口的情况下,装饰器模式在原始类上增加额外的职责,并且支持多个装饰器嵌套使用。 装…

使用树莓派进行python开发,控制电机的参考资料

网站连接:https://www.cnblogs.com/kevenduan?page1 1、简洁的过程步骤, 2、有代码示例, 3、有注意事项,

数据结构--二叉树相关习题5(判断二叉树是否是完全二叉树 )

1.判断二叉树是否是完全二叉树 辨别: 不能使用递归或者算节点个数和高度来判断。 满二叉树可以用高度和节点来判断,因为是完整的。 但是完全二叉树前面是满的,但是最后一层是从左到右连续这种 如果仍然用这种方法的话,如下图…

零信任网络安全

随着数字化转型的发生,网络边界也在不断被重新定义,因此,组织必须使用新的安全方法重新定义其防御策略。 零信任是一种基于“永不信任,永远验证”原则的安全方法,它强调无论在公司内部或外部,任何用户、设…

电脑文件夹怎么设置密码?让你的文件更安全!

在日常使用电脑的过程中,我们常常会有一些需要保护的个人文件或资料。为了防止这些文件被他人未经授权访问,对重要文件夹设置密码是一种有效的保护措施,可是电脑文件夹怎么设置密码呢?本文将介绍2种简单有效的方法帮助您为电脑文件…

数据结构基础--------【二叉树题型】

1、前提(待补充) 1.**DFS(Depth First Search)😗*递归法得到最终的数组(深度优先算法) 其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,如果遇到死路就往回退,回退过程中如果遇…