http和https的工作原理是什么?

HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol Secure)是两种用于在互联网上传输数据的主要协议,它们均用于在客户端(通常是Web浏览器)与服务器之间交换信息。尽管它们的核心功能相似,即实现Web内容的请求和响应,但它们在安全性方面存在显著差异。下面分别阐述HTTP和HTTPS的工作原理,并对比两者之间的区别。
HTTP的工作原理:
1. 客户端请求:
- 用户在浏览器中输入一个HTTP网址或点击一个链接。
- 浏览器构建一个HTTP请求,其中包含请求方法(如GET或POST)、请求URI(统一资源标识符)、HTTP版本、头部信息(如Accept、Cookie等)以及可能存在的请求体(如表单数据)。
- 浏览器通过TCP/IP协议栈建立与服务器端口80的连接,然后发送请求。
2. 服务器响应:
- 服务器接收到请求后,解析请求内容,确定要提供的资源(如HTML页面、图片、脚本等)。
- 服务器处理请求(如查询数据库、执行脚本等),生成响应内容。
- 服务器构建HTTP响应,包含状态码(如200 OK、404 Not Found等)、响应头部(如Content-Type、Set-Cookie等)以及响应体(实际数据)。
- 服务器通过已建立的TCP连接将响应发送回客户端。
3. 断开连接:
- 一旦响应发送完毕,服务器与客户端通常会关闭TCP连接,除非使用了Keep-Alive机制以复用连接。
永久免费SSL证书_永久免费https证书_永久免费ssl证书申请-JoySSL真正完全且永久免费!不用您花一分钱,SSL证书免费使用90天,并且还支持连续签发。JoySSL携手全球权威可信顶级根,自研新一代SSL证书,全系列支持90天免费使用。在这里,你可以申请到免费单域名证书、免费多域名证书以及免费通配符证书。部署于国内的验签服务器3-5分钟极速签发,而且只需要简单的域名解析验证,即可让您的网站开启https安全协议。
https://www.joyssl.com/certificate/select/free.html?nid=7
HTTPS的工作原理:
HTTPS是在HTTP的基础上添加了一层SSL/TLS(Secure Sockets Layer/Transport Layer Security)协议,以提供数据加密、身份验证和完整性校验。以下是HTTPS特有的工作流程:
1. SSL/TLS握手:
- 客户端发起HTTPS请求,连接到服务器端口443。
- 服务器返回其SSL/TLS证书,包含公钥、证书颁发机构信息、证书有效期等。
- 客户端验证服务器证书的有效性(如是否由受信CA签发、是否过期、域名是否匹配等),确认服务器身份。
- 双方协商共享的加密密钥,可能涉及非对称加密算法(如RSA、ECC)和对称加密算法(如AES)的使用,以及协商加密套件、哈希函数等。
2. 加密通信:
- 完成握手后,客户端与服务器使用协商好的密钥和加密算法对后续的数据进行加密。
- 客户端发送经过加密的HTTP请求给服务器。
- 服务器解密请求,处理后加密响应内容,再发送给客户端。
- 客户端解密响应,呈现网页内容给用户。
3. 安全增强:
- 由于使用了加密,传输的数据即使被第三方截获也无法解读。
- 服务器证书验证确保客户端与预期的服务器建立连接,防止中间人攻击。
- 数据完整性校验(通过MAC或HMAC)防止数据在传输过程中被篡改。
永久免费SSL证书_永久免费https证书_永久免费ssl证书申请-JoySSL真正完全且永久免费!不用您花一分钱,SSL证书免费使用90天,并且还支持连续签发。JoySSL携手全球权威可信顶级根,自研新一代SSL证书,全系列支持90天免费使用。在这里,你可以申请到免费单域名证书、免费多域名证书以及免费通配符证书。部署于国内的验签服务器3-5分钟极速签发,而且只需要简单的域名解析验证,即可让您的网站开启https安全协议。
https://www.joyssl.com/certificate/select/free.html?nid=7
HTTP与HTTPS的区别:
- 安全性:HTTP不提供任何形式的数据加密,信息以明文传输,容易被窃听、篡改或伪造。而HTTPS通过SSL/TLS加密通信,保障数据的机密性和完整性,同时验证服务器身份,大大增强了安全性。
- 端口:HTTP默认使用端口80,HTTPS使用端口443。
- 证书:HTTPS需要服务器拥有由受信任的CA颁发的SSL/TLS证书,而HTTP无需证书。
- 性能:HTTPS由于增加了加密和解密过程,以及证书验证,理论上比HTTP略慢,但现代硬件和优化技术已大幅减小了这种差距。
- 成本:获取和维护SSL/TLS证书可能产生一定费用,尤其是对于需要OV或EV证书的组织,而HTTP则无此成本。
综上所述,HTTP和HTTPS分别代表了未加密和加密的Web通信方式。HTTP适用于对安全性要求较低的场景,而HTTPS是现代互联网上推荐使用的标准,尤其对于涉及敏感信息传输(如登录凭据、个人数据、金融交易等)的网站和服务至关重要。
相关文章:
http和https的工作原理是什么?
HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol Secure)是两种用于在互联网上传输数据的主要协议,它们均用于在客户端(通常是Web浏览器)与服务器之间交换信息。尽管它们…...
STL中容器、算法、迭代器
STL标准模板库封装了常用的数据结构和算法,让程序员无需太关心真实的数据结构实现。 容器 容器:用来存放数据的。 STL容器就是将运用最广泛的的一些数据结构实现出来。 常用的数据结构有:数组、链表、树、栈、队列、集合、映射表。 这些…...
深入并广泛了解Redis常见的缓存使用问题
Redis 作为一门主流技术,缓存应用场景非常多,很多大中小厂的项目中都会使用redis作为缓存层使用。 但是Redis作为缓存,也会面临各种使用问题,比如数据一致性,缓存穿透,缓存击穿,缓存雪崩&#…...
nginx界面管理工具之nginxWebUI 搭建与使用
nginx界面管理工具之nginxWebUI 搭建与使用 一、nginxWebUI 1.nginx网页配置工具 官网地址: http://www.nginxwebui.cn 源码地址:https://git.chihiro.org.cn/chihiro/nginxWebUI 2.功能说明 本项目可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议…...
linux下 罗技鼠标睡眠唤醒问题的解决
sudo dmesg | grep Logitech | grep -o -P "usb.?\s" 得到3-2,用上面这条命令得到哪个usb口。 下面这条命令禁用罗技鼠标睡眠唤醒系统(3-2改成你自己电脑上得到的usb口) sudo sh -c "echo disabled > /sys/bus/usb/devic…...
架构师之路--Docker的技术学习路径
Docker 的技术学习路径 一、引言 Docker 是一个开源的应用容器引擎,它可以让开发者将应用程序及其依赖包打包成一个可移植的容器,然后在任何支持 Docker 的操作系统上运行。Docker 具有轻量级、快速部署、可移植性强等优点,因此在现代软件开…...
【动手学深度学习-pytorch】 9.4 双向循环神经网络
在序列学习中,我们以往假设的目标是: 在给定观测的情况下 (例如,在时间序列的上下文中或在语言模型的上下文中), 对下一个输出进行建模。 虽然这是一个典型情景,但不是唯一的。 还可能发生什么其…...
网际协议 - IP
文章目录 目录 文章目录 前言 1 . 网际协议IP 1.1 网络层和数据链路层的关系 2. IP基础知识 2.1 什么是IP地址? 2.2 路由控制 3. IP地址基础知识 3.1 IP地址定义 3.2 IP地址组成 3.3 IP地址分类 3.4 子网掩码 IP地址分类导致浪费? 子网与子网掩码 3.5 CIDR与…...
DC-9靶场
一.环境搭建 1.下载地址 靶机下载地址:https://download.vulnhub.com/dc/DC-9.zip 2.虚拟机配置 设置虚拟机为nat,遇到错误点重试和是 开启虚拟机如下图所示 二.开始渗透 1. 信息收集 查找靶机的ip地址 arp-scan -l 发现靶机的ip地址为192.168.11…...
自定义类型(二)结构体位段,联合体,枚举
这周一时兴起,想写两篇文章来拿个卷吧,今天也是又来写一篇博客了,也是该结束自定义类型的学习与巩固了。 常常会回顾努力的自己,所以要给自己的努力留下足迹。 为今天努力的自己打个卡,留个痕迹吧 2024.03.30 小闭…...
MySQL5.7源码分析--解析
select语句会走的case COM_QUERY判断 具体流程如下: 1.获取网络包数据,拿到查询语句,放入thd->query alloc_query(thd, packet, packet_length) 2.先查询缓存,缓存命中直接返回结果,未命中则解析 功能集中在mys…...
windows10搭建reactnative,运行android全过程
环境描述 win10,react-native-cli是0.73,nodeJS是20,jdk17。这都是完全根据官网文档配置的。react-native环境搭建windows。当然官网文档会更新,得完全按照配置来安装,避免遇到环境不兼容情况。 安装nodeJS并配置 这里文档有详…...
小迪学习笔记(内网安全)(常见概念和信息收集)
小迪学习笔记(内网安全)(一) 内网分布图内网基本概念工作组和域环境的优缺点内网常用命令域的分类单域父域和子域域数和域森林 Linux域渗透问题内网安全流程小迪演示环境信息收集mimikatzLazagne(all)凭据信息政集操作演示探针主机…...
Python自动连接SSH
Python自动连接SSH 在 Python 中,可以使用 paramiko 模块来编写脚本自动执行 SSH 命令。paramiko 是一个用于 SSHv2 的 Python 实现,可以帮助你在脚本中进行远程执行命令。 首先,确保安装了 paramiko: pip install paramiko然后…...
机器学习实验------AGNES层次聚类方法
机器学习 — AGNES层次聚类方法 第1关:距离的计算 任务描述 本关任务:根据本关所学知识,完成calc_min_dist函数,calc_max_dist函数以及calc_avg_dist函数分别实现计算两个簇之间的最短距离、最远距离和平均距离。 import numpy as np def calc_min_dist(cluster1, clus…...
HBase常用的Filter过滤器操作
HBase过滤器种类很多,我们选择8种常用的过滤器进行介绍。为了获得更好的示例效果,先利用HBase Shell新建students表格,并往表格中进行写入多行数据。 一、数据准备工作 (1)在默认命名空间中新建表格students…...
容器安全与防御(德迅蜂巢)
通过容器可以快速的运行应用、迁移应用、快速集成、快速部署、也提高了系统的资源利用率,因此现在越来越多的企业把应用上云,来达到快速上线应用、方便运维的目的。容器安全也逐渐地被重视起来,了解容器如何检测当前企业环境内容器环境是否安…...
【面经八股】搜广推方向:面试记录(十一)
【面经&八股】搜广推方向:面试记录(十一) 文章目录 【面经&八股】搜广推方向:面试记录(十一)1. 自我介绍2. 实习经历问答4. 编程题5. 反问1. 自我介绍 。。。。。。 2. 实习经历问答 就是对自己实习事情要足够的清晰,不熟的不要写在简历上!!! 其中,有个 …...
第十四章 MySQL
一、MySQL 1.1 MySql 体系结构 MySQL 架构总共四层,在上图中以虚线作为划分。 1. 最上层的服务并不是 MySQL 独有的,大多数给予网络的客户端/服务器的工具或者服务都有类似的架构。比如:连接处理、授权认证、安全等。 2. 第二层的架构包括…...
C++项目——集群聊天服务器项目(七)Model层设计、注册业务实现
在前几节的研究中,我们已经实现网络层与业务层分离,本节实现数据层与业务层分离,降低各层之间的耦合性,同时实现用户注册业务。 网络层专注于处理网络通信与读写事件 业务层专注于处理读写事件到来时所需求的各项业务 数据层专…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
