HTTP传输过程

news2024/11/16 7:36:23

简介


HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)

对称加密和非对称加密

对称加密

即加密的密钥和解密的密钥相同,

非对称加密

非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密

建立连接

HTTP和HTTPS都需要在建立连接的基础上来进行数据传输,是基本操作

当客户在浏览器中输入网址的并且按下回车,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip

当获取到ip后,tcp连接会进行三次握手建立连接

tcp的三次挥手和四次挥手

过程简图
在这里插入图片描述

三次挥手(建立连接)

第一次:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次:服务器收到SYN包,向客户端返回ACK(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RCVD状态;

第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据,也就是ESTABLISHED状态。

三次握手保证了不会建立无效的连接,从而浪费资源。

四次挥手(断开连接)

第一次: TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

第二次:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

第三次:服务器关闭客户端的连接,发送一个FIN给客户端。

第四次:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

HTTP请求过程

建立连接完毕以后客户端会发送响应给服务端

服务端接受请求并且做出响应发送给客户端

客户端收到响应并且解析响应响应给客户

HTTPS

在这里插入图片描述

在使用HTTPS是需要保证服务端配置正确了对应的安全证书

客户端发送请求到服务端

服务端返回公钥和证书到客户端

客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端

服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密

客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户

SSL加密建立

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

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

相关文章

1801. 积压订单中的订单总数

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 题目: 给你一个二维整数数组 orders &…

【HTMLCSS】运维、后端你该会的前端基本内容

文章目录前言一、HTML5基础1.1、前端开发的核心技术1.2、Web组成标准1.3、HTML 实例1.3.1、第一个网页1.4、 文本标签1.5、转义字符1.6、图片1.7、超链接1.8、列表1.8.1、无序列表1.8.2、有序列表1.8.3、自定义列表1.9、表格1.9.1、合并单元格1.10、表单二、CSS基础2.1、入门2.…

【论文导读】Stable Learning via Sparse Variable Independence

准备follow一下稳定学习的系列论文,从这篇开始吧。 AAAI2023上的,主要是根据前几年稳定学习组提出的SV特征分类、关注稳定的S特征的样本重加权的优化 针对问题和措施: 稳定学习算法采用的样本重加权有弊端: 1,在有限…

ESP8266 SDK开发之AiThinkerIDE_V1.5.2安装、配置以及编写一个程序

【本文发布于https://blog.csdn.net/Stack_/article/details/128509864,未经允许不得转载,转载须注明出处】 前言 乐鑫官方不搞IDE,安信可搞了IDE,但是各版本之间安装配置有差异,还没有文档说明。官方安装配置教程不完…

IEEE论文投稿流程

转载文章 这是篇节省你翻论坛、查资料的文章。 我将把每一步尽量写的清楚,能够让新手按照这篇文章进行完整的投稿。 即使你从未投过稿,完全不了解IEEE的投稿流程,希望按照这篇文章,能够帮助你流畅无误的投稿 这是针对本科生和低年…

springboot整合springcloud之nacos配置中心

整合配置中心nacos 应用场景&#xff0c;每次改配置要重新启动才能生效&#xff0c;而把配置放到nacos上&#xff0c;如有修改&#xff0c;那么发布后项目自动就生效了。 场景2&#xff1a;不同微服务单独设置一个命名空间。 一、项目操作 1.引入依赖 <!--使用spring-cloud…

JDBC---Maven之jdbc连接数据库

Maven之jdbc连接数据库 这里需提前将maven环境配置好 链接: Maven环境配置 文章目录Maven之jdbc连接数据库JDBC创建Maven工程JDBC访问数据库步骤1.Class.forName()加载驱动2.DriverManager获取Connection连接3.创建Statement执行SQL语句4.返回ResultSet查询结果()5.释放资源JD…

vsmoon靶场实战笔记

vsmoon靶场实战笔记 web打点 信息收集 nmap扫描端口 扫描结果 └─$ nmap -sV -A 192.168.1.106 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2023-01-01 12:51 CST Nmap scan report for 192.168.1.106 Host is up (0.00014s latency). Not shown: 986 closed tcp p…

YOLOv5更换骨干网络之 GhostNet

论文地址&#xff1a;https://arxiv.org/abs/1911.11907 代码地址&#xff1a;https://github.com/huawei-noah/ghostnet 由于内存和计算资源有限&#xff0c;在嵌入式设备上部署卷积神经网络&#xff08;CNN&#xff09;很困难。特征图中的冗余是那些成功的神经网络的重要特征…

年度征文 | 回顾2022,展望2023(我难忘的2022,我憧憬的2023)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…

用javascript分类刷leetcode7.双指针(图文视频讲解)

双指针 普通指针&#xff1a;两指针同一方向或不同方向对撞指针&#xff1a;两指针互相靠拢快慢指针&#xff1a;一快一慢 141. 环形链表 (easy) 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再…

LeetCode字符串经典题目(四)

1. LeetCode344. 反转字符串 2. LeetCode541. 反转字符串 II 3. LeetCode剑指 Offer 05. 替换空格 4. LeetCode151. 反转字符串中的单词 5. LeetCode剑指 Offer 58 - II. 左旋转字符串 6. LeetCode28. 找出字符串中第一个匹配项的下标​ 7. LeetCode459. 重复的子字符串​…

Mac内存空间不足如何释放储存空间?深度清理Mac磁盘空间的方法教程

今日coco玛奇朵将分享一些能够释放大量Mac内存空间的方法&#xff0c;以便大家能够优化Mac的运行速度外还能规避由于Mac空间不足而导致安装Ventura时出现的一系列问题。 大家都知道更新Macos都需要预备非常大的内存空间才能进行&#xff0c;当更新完Macos之后都会留下大量的备…

台大应用深度学习笔记

deep learning end-to-end training 1. 神经元 1.1 为什么需要bias&#xff1f; 为了给对应位置一个prior&#xff0c;给它一个初始值&#xff0c;b越大&#xff0c;σ(z)11e−z\sigma(z) \frac{1}{1e^{-z}}σ(z)1e−z1​越大&#xff0c;越趋向于1. 多层神经网络&#xff…

安装Windows和Ubuntu双系统

制作Ubuntu安装盘在Windows上查看磁盘格式 不同的磁盘格式&#xff0c;需要跟BIOS里面不同的引导模式配合来启动操作系统&#xff0c;如下图&#xff1a; 我的电脑是GPT格式&#xff1a; 准备好给Ubuntu的磁盘空间 在Windows系统中&#xff0c;在一个200G的清空数据的磁盘上…

【Flask-Web】基于layui前端模板搭建简易管理系统

1. JavaScript 1.1. 函数 var cars ["Saab", "Volvo", "BMW"]; var txt "string"; var b2new Boolean(1); var x Math.PI; // 返回PI var y Math.sqrt(16); // 返回16的平方根 var num new Number(value); try {adddlert("…

aws eks 理解和使用terrafrom创建eks集群(离线安装provider和module)

参考 使用 Terraform 在 AWS 中国区域实现自动化部署指南系列1使用 Terraform 在 AWS 中国区域实现自动化部署指南系列2https://lonegunmanb.github.io/introduction-terraform/加速 Terraform init terraform 相关概念 terraform是对标aws cloud formation的iac工具&#x…

Redis集群系列十一 —— 故障转移一

故障发现 Redis 集群内节点通过 ping/pong 消息实现节点通信&#xff0c;消息不但可以传播节点槽信息&#xff0c;还可以传播其他状态。当集群中某个节点出现问题时&#xff0c;需要识别出节点是否发生了故障&#xff0c;因此故障发现是通过Gossip 协议来广播自己的状态以及自…

日志系统:WAL和二阶段提交

1. 前言 一条更新语句在执行过程中不仅仅要操作不仅仅是通过数据库的组件(分析器、优化器、执行器、存储引擎等&#xff09;操作表数据还涉及以下内容&#xff1a; 要操作日志系统的redo log、binlog和undo log&#xff0c; 更新操作也不是实时更新到磁盘的而是通过3.Write-A…

DDR3 数据传输 (五)

目录 引言 设计说明 参数说明 设计简图 IP配置说明 写FIFO IP