【Http和Https区别】

概念:

一、Http协议

HTTP(超文本传输协议)是一种用于传输超媒体文档(如HTML)的应用层协议,主要用于Web浏览器和服务器之间的通信。http也是客户端和服务器之间请求与响应的标准协议,客户端通常是浏览器,服务器则是托管网站的设备。

1、工作原理

请求:客户端向服务器发送HTTP请求,包含方法(如GET、POST)、URL、协议版本、请求头和可选的消息体。
响应:服务器返回HTTP响应,包含状态码(如200、404)、响应头和消息体(如HTML内容)。

2、特点

无状态:每个请求独立,服务器不保留之前的请求信息。
可扩展:通过请求头和响应头支持多种功能。
灵活:可传输HTML、JSON、XML等多种数据类型。

简要理解什么是HTTP?

HTTP(超文本传输协议)就像没有封口的快递信封

  • 明文传输:快递单内容谁都能看(数据不加密)
  • 快速送货:不检查快递员身份(无身份验证)
  • 门牌号80:默认送到80号仓库(端口80)

二、Https协议

HTTPS(超文本传输安全协议)是HTTP的安全版本,通过TLS/SSL加密数据传输,确保通信的隐私和完整性。HTTPS在HTTP基础上加入TLS/SSL加密层,保护数据在传输过程中不被窃取或篡改。

1、工作原理

加密:使用TLS/SSL加密数据,防止中间人攻击。
证书:服务器提供数字证书,由受信任的证书颁发机构(CA)签发,验证服务器身份。
握手:客户端与服务器通过TLS握手建立安全连接,协商加密算法和密钥。

2、特点

安全性:加密数据,防止窃听和篡改。
身份验证:数字证书确保客户端与合法服务器通信。
数据完整性:防止数据在传输中被篡改。

简要理解什么是HTTPS?

HTTPS = HTTP + 防弹玻璃(SSL/TLS加密)

  • 加密快递单:用密码书写内容(数据加密)
  • 身份检查:核对快递公司执照(CA证书)
  • 专用通道443:走VIP运输通道(端口443)

三、区别

http和https有一些核心的区别。比如最重要的安全性,和端口等等。
1、安全性
HTTP:
数据以明文形式传输,容易被中间人攻击。
例如:如果你在HTTP网站上输入密码,黑客可以通过网络工具轻松获取你的密码。
HTTPS:
数据通过TLS/SSL加密,即使被截获,也无法解密。
例如:在HTTPS网站上输入密码,即使黑客截获了数据,也只能看到乱码。
2、协议与端口
HTTP:
基于TCP协议,默认使用端口80。
例如:访问http://abc.com时,实际访问的是http://abc.com:80。
HTTPS:
基于TLS/SSL协议,默认使用端口443。
例如:访问https://abc.com时,实际访问的是https://abc.com:443。
3、身份验证
HTTP:
没有身份验证机制,无法确认服务器是否合法。
例如:你访问一个HTTP网站,无法确定它是否是钓鱼网站。
HTTPS:
使用数字证书验证服务器身份。证书由受信任的证书颁发机构(CA)签发。
例如:访问https://abc.com时,浏览器会检查证书是否有效,确保你访问的是真正的abc.com。
4、数据完整性
HTTP:
不保证数据完整性,数据可能在传输过程中被篡改。
例如:有些无聊的人可以修改HTTP网站返回的内容,插入恶意代码。
HTTPS:
通过加密和消息认证码(MAC)确保数据完整性,防止篡改。
例如:HTTPS网站返回的内容如果被篡改,浏览器会检测到并警告用户。
5、性能
HTTP:
没有加密开销,传输速度较快。
例如:加载一个HTTP网站时,速度通常比HTTPS快。
HTTPS:
由于加密和解密过程,会增加一定的性能开销。
例如:加载一个HTTPS网站时,速度可能稍慢,但现在的硬件已经减少挺多这种差距了。

四、总结

HTTP是Web通信的基础协议,但因其不安全性,已逐渐被HTTPS取代。HTTPS通过加密和身份验证,确保数据传输的安全性和完整性,是现代Web的标配。无论是为了保护用户隐私,还是提升网站的可信度,HTTPS都是不可或缺的。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM之JVM的组成

Java 虚拟机(JVM)是 Java 程序的运行核心,它主要由类加载系统、运行时数据区、执行引擎和本地方法接口这几个关键部分组成。 类加载系统(Class Loading System) 类加载系统负责在程序运行时动态地将 Java 类加载到 J…

pycharm 调试 debug 进入 remote_sources

解决办法1: pycharm函数跳转到remote_sources中的文件中_pycharm修改remotesource包存放地址-CSDN博客 file->settings->project structure将项目文件夹设为"Sources"(此时文件夹会变为蓝色)。 解决方法2 Debug:使用Pychar…

iOS App的启动与优化

App的启动流程 App启动分为冷启动和热启动 冷启动:从0开始启动App热启动:App已经在内存中,但是后台还挂着,再次点击图标启动App。 一般对App启动的优化都是针对冷启动。 App冷启动可分为三个阶段: dyld&#xff1a…

StarRocks FE leader节点CPU使用率周期性的忽高忽低问题分析

背景 本文基于 StarRocks 3.3.5 最近在做一些 StarRocks 相关的指标监控的时候,看到了FE master的CPU使用率相对其他FE节点是比较高的,且 呈现周期性的变化(周期为8分钟), 于此同时FE master节点的GC频率相对于其他节…

Spring高级篇-Spring IOC容器 Aware 接口

一、概述 在Spring框架中,IOC(Inversion of Control)容器负责管理应用程序中的对象(即Bean)的生命周期和依赖关系。Spring提供了一系列的Aware接口,允许Bean在初始化时获取Spring容器中的某些资源或信息。…

数字信任的底层逻辑:密码学核心技术与现实应用

安全和密码学 --The Missing Semester of Your CS Education 目录 熵与密码强度密码散列函数密钥体系 3.1 对称加密 3.2 非对称加密信任模型对比典型应用案例安全实践建议扩展练习杂项 密码学是构建数字信任的基石。 本文浅析密码学在现实工具中的应用,涵盖 1&…

MySQL数据库连接池泄露导致MySQL Server超时关闭连接

前言 最近做项目,发现老项目出现xxx,这个错误其实很简单,出现在MySQL数据库Server端对长时间没有使用的client连接执行清楚处理,因为是druid数据库,且在github也出现这样的issue:The last packet successf…

DirectX12(D3D12)基础教程三 线性代数与3D世界空间

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。 向量和矩阵是学习3D入门最基本的理论基础。本章重点讲向量和矩阵. 向量概念 向量最基本的定义就是一个方向和…

LeetCode 230.二叉搜索树中第K小的元素

题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 思路: 代码: /*** Definition for a binary tree node.* public class Tre…

Android 老项目 jcenter 库失效

最近重新维护了一些老项目发现大部分jcenter库失效了, Could not resolve com.xx:2.1.3. 如果你也遇到了,不妨试试 替换为 aliyun的jcenter服务,就不用一个个找代替库了。 project 下的 build.gradle 文件添加: maven { url htt…

Python数据结构:哈希表-高效存储与查找的秘密武器!

大家周一好!今天我们来聊聊Python中一个非常重要的数据结构——哈希表。无论是算法面试还是实际开发,哈希表都扮演着至关重要的角色。掌握它,你就能轻松解决许多复杂的编程问题! 在编程中,如何实现快速的存储与查找操…

【复习】Redis

数据结构 Redis常见的数据结构 String&#xff1a;缓存对象Hash&#xff1a;缓存对象、购物车List&#xff1a;消息队列Set&#xff1a;点赞、共同关注ZSet&#xff1a;排序 Zset底层&#xff1f; Zset底层的数据结构是由压缩链表或跳表实现的 如果有序集合的元素 < 12…

【电机控制器】ESP32-C3语言模型——DeepSeek

【电机控制器】ESP32-C3语言模型——DeepSeek 文章目录 [TOC](文章目录) 前言一、简介二、代码三、实验结果四、参考资料总结 前言 使用工具&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、简介 二、代码 #include <Arduino.h&g…

STM32-智能小车项目

项目框图 ST-link接线 实物图&#xff1a; 正面&#xff1a; 反面&#xff1a; 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 一、让小车动起来 新建文件夹智能小车项目 在里面复制19-串口打印功能 重命名为01-让小车动起来 新建文件夹motor&…

Redis基础学习

目录 Redis命令 通用命令 String Key的顶层格式 Hash List ​编辑​编辑Set SortedSet 在IDEA使用Jedis操作Redis 常规使用 Jedis的连接池 SpringDataRedis 手动序列化和反序列化 操作Hash Redis命令 通用命令 想知道某个命令怎么用 1.可以在官网学习用法 h…

ASP.NET Core Clean Architecture

文章目录 项目地址一、项目主体1. CQRS1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建CreateEventCommand并使用validation 2. EFcore层2.1 BaseRepository2.2 CategoryRepository2.3 OrderRepository 3. Email/Excel导出3.1 Email1. IEmail接口层2. Ema…

MySQL数据库——表的约束

1.空属性&#xff08;null/not null&#xff09; 两个值&#xff1a;null&#xff08;默认的&#xff09;和not null&#xff08;不为空&#xff09; 数据库默认字段基本都是字段为空&#xff0c;但是实际开发时&#xff0c;尽可能保证字段不为空&#xff0c;因为数据为空没办法…

DeepSeek-R1:通过强化学习激发大语言模型的推理能力

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列三DeepSeek大模型技术系列三》DeepSeek-…

蓝桥杯备考:递归初阶之汉诺塔问题

我们只要想一个主问题&#xff0c;我们是先把a上面n-1个盘子放在c里&#xff0c;然后再把第n个盘子放在b上&#xff0c;再利用a把c上n-1个盘子都放在b上就行了 #include <iostream> using namespace std;void dfs(int n,char x,char y,char z) {if(n0) return;dfs(n-1,x…

聊一聊vue如何实现角色权限的控制的

大家好&#xff0c;我是G探险者。 关于角色与权限控制&#xff0c;通常是分为两大类&#xff1a;一种是菜单权限&#xff1b;一种是操作权限。 菜单权限是指&#xff0c;每个角色对应着可以看到哪些菜单&#xff0c;至于每个菜单里面的每个按钮&#xff0c;比如增删改查等等这类…