【Http和Https区别】

news/2025/2/23 5:36:07
http://www.w3.org/2000/svg" style="display: none;">

概念:

一、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)

三、区别

httphttps有一些核心的区别。比如最重要的安全性,和端口等等。
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.niftyadmin.cn/n/5863007.html

相关文章

Linux-Ansible基础模块

文章目录 模块Command模块Shell模块Script模块 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月22日19点21分 模块 Command模块 Command模块实践 ansible 192.168.1.100 -m com…

HarmonyOS 开发套件 介绍——下篇

HarmonyOS 开发套件 介绍——下篇 在HarmonyOS的生态中,开发套件作为支撑整个系统发展的基石,为开发者提供了丰富而强大的工具和服务。本文将深入继续介绍HarmonyOS SDK、ArkCompiler、DevEco Testing、AppGallery等核心组件,帮助开发者全面掌…

分布式之Gossip协议

目录 Gossip 协议 Redis如何通过Gossip 协议进行通信的? Gossip 协议 参考: Gossip 协议详解 | JavaGuide Redis进阶 - 高可拓展:分片技术(Redis Cluster)详解 | Java 全栈知识体系 Redis如何通过Gossip 协议进行通信的? 在 Redis Cluster 中使用 Gossip 协议来实…

Spark on Yarn 多机集群部署

Spark on Yarn 多机集群部署 1. 规划机器角色 服务器IP 地址角色Master192.168.1.100NameNode ResourceManager Spark MasterWorker1192.168.1.101DataNode NodeManager Spark WorkerWorker2192.168.1.102DataNode NodeManager Spark Worker 2. 配置所有机器 2.1 安装…

漏扫问题-服务器中间件版本信息泄露(消除/隐藏Nginx版本号)

漏洞详情 使用Nginx部署应用程序,请求中默认会返回Nginx版本信息,攻击者可以根据版本号来了解相关漏洞并进行针对性攻击。 Nginx版本信息: 解决方法 使用 server_tokens off; 配置,配置项官网介绍:Module ngx_http_…

Rust 语法噪音这么多,是否适合复杂项目?

Rust 是一门被广泛认为具有高效性和内存安全的编程语言,但它的复杂语法常常被开发者称为“语法噪音”。这种设计上的严格要求,特别是其所有权系统、生命周期管理以及类型系统,虽然能够保证代码的安全性和性能,但也让很多初学者感到…

神经网络防“失忆“秘籍:弹性权重固化如何让AI学会“温故知新“

神经网络防"失忆"秘籍:弹性权重固化如何让AI学会"温故知新" “就像学霸给重点笔记贴荧光标签,EWC给重要神经网络参数上锁” 一、核心公式对比表 公式名称数学表达式通俗解释类比场景文献EWC主公式 L t o t a l L n e w λ 2 ∑ i…

MYSQL学习笔记(九):MYSQL表的“增删改查”

前言: 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇,涵盖入门、进阶、高级(一些原理分析);这一篇讲述一些在MYSQL的数据类型,和表的“增删改查”基本操作;虽然MYSQ…