HTTPS请求的整个过程的详细分析

HTTPS产生的原因以及交互的完整流程 一、产生的原因 HTTP是一个超文本传输的协议,它用于传输客户端与服务器端的数据,但是HTTP存在三个问题,传输过程中内容很容易被窃取;不能对传输对方的身份进行效验,会有伪装的可能;没有办法保证报文的完整性,内容和容易被篡改。所以就产生了HTTPS来解决这些问题。二、HTTPS在HTTP基础上进行的升级 对于传输过程中内容很容易被窃取的问题,HTTPS选择进行加密的方式保护数据;对于不能对传输对方的身份进行效验,会有伪装的可能的问题,HTTPS利用证书来确定对方的身份;对于没 阅读详情
AI摘要

本文详细解析了HTTPS的工作原理,包括HTTPS的基础知识、加密流程及其与HTTP的主要区别。介绍了HTTPS使用证书、对称加密和非对称加密确保数据传输安全,并对比了HTTPS与HTTP在安全性、端口及证书验证上的差异。

目录

一、基础知识

二、HTTPS进行的流程

三、HTTPS和HTTP的区别


一、基础知识

(1)HTTPS的介绍

HTTPS是一种应用层协议,本质上来说它是HTTP协议的一种变种。HTTPS比HTTP协议安全,因为HTTP是明文传输,而HTTPS是加密传输,加密过程中使用了三种加密手段,分别是证书,对称加密和非对称加密。HTTPS相比于HTTP多了一层SSL/TSL,其构造如下:

下面简单介绍下加密算法

(1)证书加密

服务器在使用证书加密之前需要去证书颁发机构申请该服务器的证书,在HTTPS的请求过程服务器端将会把本服务器的证书发送给客户端,客户端进行证书验证,以此来验证服务器的身份。

(2)对称加密

HTTPS的请求中,客户端和服务器之间的通信的数据是通过对称加密算法进行加密的。对称加密,即在加密和解密的过程使用同一个私钥进行加密以及解密,而且对称加密算法是公开的,所以该私钥是不能够泄漏的,一旦泄漏,对称加密形同虚设。

上述私钥是可能泄漏的,原因是上述私钥是需要在网络中进行传输的。流程:在A端生成私钥,传递给B端(传递过程需要是安全的),后面A端使用该私钥加密,传递数据报文到B端,B端使用接受到的私钥解密。

加密过程:加密算法+明文+私钥------》密文

解密过程:解密算法+密文+私钥------》明文

适用场景:上述过程是不复杂的,对大量数据进行加密时,对称加密是适用的,速度快

(3)非对称加密算法

HTTPS的请求中也使用了非对称加密算法。非对称加密,加密和解密过程使用不同的密钥,一个公钥,对外公开,一个私钥,仅是解密端拥有。由于公钥和私钥是分开的,非对称加密算法安全级别高,加密密文长度有限制,适用于对少量数据进行加密,速度较慢。

case1:使用公钥加密,私钥解密

加密过程:加密算法+明文+共钥------》密文

解密过程:解密算法+密文+私钥------》明文

流程:A端向B端请求,B端返回公钥给A端,然后A端使用公钥加密,传递给数据报文给B端,B端使用自己的私钥进行解密。

case2:使用私钥加密,公钥解密

加密过程:加密算法+明文+私钥------》密文

解密过程:解密算法+密文+共钥------》明文

该过程有些不明白,需要深入研究,公钥每个人都可以获取,解密过程岂不是人人都可以????

 

二、HTTPS进行的流程

HTTPS作为一种安全的应用层协议,它使用了以上三种加密手段,我们现在尝试分析其加密的思想。

首先,数据正文一般数据量较大,适用于对称加密,因为对称加密速度快,适应于大量数据加密,但是安全级别低,其中对称加密的私钥需要在网络中传输,容易被盗取;

其次,正因为非对称机密私钥易被盗取,所以我们需要对这个私钥进行加密,而且安全级别要求高,所以这个可以用非对称加密进行加密,原因是对称加密的私钥数据量小,非对称加密可以提供高安全级别和高响应速度。

最后,由于非对称加密的公钥可以在网络中传输,如何保证公钥传送到给正确的一方,这个时候使用了证书来验证。证书不是保证公钥的安全性,而是验证正确的交互方。可以使用下图进行说明:

上述过程就是两次HTTP请求,其详细过程如下:

1.客户端想服务器发起HTTPS的请求,连接到服务器的443端口;

2.服务器将非对称加密的公钥传递给客户端,以证书的形式回传到客户端

3.服务器接受到该公钥进行验证,就是验证2中证书,如果有问题,则HTTPS请求无法继续;如果没有问题,则上述公钥是合格的。(第一次HTTP请求)客户端这个时候随机生成一个私钥,成为client key,客户端私钥,用于对称加密数据的。使用前面的公钥对client key进行非对称加密;

4.进行二次HTTP请求,将加密之后的client key传递给服务器;

5.服务器使用私钥进行解密,得到client key,使用client key对数据进行对称加密

6.将对称加密的数据传递给客户端,客户端使用非对称解密,得到服务器发送的数据,完成第二次HTTP请求。

 

三、HTTPS和HTTP的区别

通过上线详细对HTTPS的分析,我们可得:

(1)HTTPS是密文传输,HTTP是明文传输;

(2)默认连接的端口号是不同的,HTTPS是443端口,而HTTP是80端口;

(3)HTTPS请求的过程需要CA证书要验证身份以保证客户端请求到服务器端之后,传回的响应是来自于服务器端,而HTTP则不需要CA证书;

(4)HTTPS=HTTP+加密+认证+完整性保护。

参考文章:

【1】https://limboy.me/tech/2011/02/19/https-workflow.html

【2】http://www.cnblogs.com/jfzhu/p/4020928.html

【3】https://www.jianshu.com/p/14cd2c9d2cd2

HTTPS具体流程 【前两天被同学问到了这个问题,结果自己答成了三握...炒鸡尴尬,所以特此学习记录一下】 三次握手是建立TCP可靠通信的~ HTTPS通信流程环节 HTTPS通信主要包括几个节点,发起请求、验证身份、协商秘钥、加密会话,具体流程如下(此例子只有客户端对服务端的单向验证):   1、客户端向服务端发起建立HTTPS请求。   2、服务器向客户端发送数字证书。   3、客户端验证数字证书,证书验证通过后客户端生成会话密钥(双向验证则此处客户端也会向服务器发送证书)。   4、服务器生成会话密钥( 阅读详情

相关推荐

HTTP与HTTPS请求过程

HTTP与HTTPS请求过程 1、HTTP请求过程 HTTP协议处于网络协议的应用层,底层通过TCP/IP协议支持。HTTP请求基本过程为: 1.域名解析 2.三次握手创建TCP连接 3.服务器响应传输数据 4.四次挥手断开连接 TCP三次握手过程如下 第一次握手:客户端发送SYN报文和客户端初始序列号X,等待服务器确认。 第二次握手:服务器收到报文返回SYN+Ack报文和初始序列号Y 第三次握...

github_40198042的博客 6653

HTTPS详解

每篇文章都希望你能收获到东西,这篇将带你深入 HTTPS 加解密原理,希望看完能够有这些收获: 明白 HTTPS 到底解决了什么问题 理解对称加密与非对称加密的原理和使用场景 明白 CA 机构和根证书到底起了什么作用 Why HTTPS 近几年来,各大公司都在大力推进 HTTPS 的建设。Google Chrome将非 HTTPS 的网站标注为「不安全」,苹果要求 APP 中需要使用HTTPS进行通信,微信小程序也要求使用HTTPS协议。那么,我们为什么非要做这么一件事呢? 我们先来看看H

qq_38644495的博客 1935

如何用jmeter请求https接口全过程

首先这个问题我是通过jmeter控制台的报错信息,一步一步完善脚本,特此记录下来,给有需要的朋友借鉴;如有不足之处或者更简洁的方法,欢迎提出。 一、根据接口文档,1.新建线程组 二、新建https请求,要注意,是https协议、443端口; 三、接着,把本案例需要用到的元件添加进来,如HTTP信息头管理器、CSV 数据文件设置、查看结果树、用表格察看结果,元件名称我自己做了相应修改,你们不需要用到的元件不用添加,如CSV 数据文件设置; 值得注意的是,因为我是以json格式提交的参数,所..

zkc18907733243的博客 1万+

java https请求,https请求如何调用

https请求如何在代码中调用

IT_51888_liang的博客 1万+

http与https详解

http与https详解

dvlinker的技术专栏 2万+

【生物识别模组介绍】静脉识别模组

静脉识别技术是依据流动的静脉血液中的血红蛋白对近红外光有所吸收,通过近红外光照射手指、手掌、面部、腕部呈现的分布图像,再使用特定的算法对图像进行特征提取、分析比对,从而进行身份认证识别。静脉结构相同几率为34亿分之一,每个人的静脉结构具有独特性,而且静脉特征图像自成年后终身不变,不受外部环境、疾病等影响,是人体最稳定的生物特征之一。商务合作联系:newmagicmission@gmail.com图1.0。

upupDay's blog 900

HTTP和HTTPS请求的整个过程详解

HTTP和HTTPS请求的整个过程详解 小橙子小橘子的日记4月17日 HTTP和HTTPS的请求流程也是面试的时候一大考点,如果不掌握的话,容易丢失印象分。这两种请求都是基于TCP/IP,不明白的请看上一篇文章。这里总结HTTP/HTTPS请求的整个过程,以备不时之需。 一、HTTP请求的过程 1.浏览器根据域名解析IP地址 浏览器根据访问的域名找到其IP地址。DNS查找过程如下: 浏览器缓存:首先搜索浏览器自身的DNS缓存(缓存的时间比较短,大概只有1分钟,且只能容纳1000条缓..

GavinBC的博客 7596

树莓派c语言串口通讯程序

在网上搜了很多关于树莓派串口通讯的例子,但是都是用python写的,虽然python很有名,而且最近也在学习这门语言, 但是还是想用c语言实现一下,因为需要用到整套系统里,其他内容都是用c语言写的。但是网上没有找打现成的。 还好,之前做过天嵌2440开发板的串口程序(参照天嵌工程师提供的代码),发现串口程序其实是通用的, 驱动层屏蔽了硬件细节,个人猜测,几乎所有移植好的系统的串口,都可以用一

realank的专栏 1万+

一次网络请求的整个链路过程分析

作用 :提供访问入口,解耦IP变动。关联性 :域名解析指向网关或负载均衡IP,触发后续路由。

учёба 9410

Bochs源码分析 - 4: 使用ida来调试bochs

前言 bochs内部提供了一个调试器,但是这个命令行调试器相当难用,想找一个gui的debugger。第一次是在百度百科的bochs词条中介绍的peter-bochs-debugger调试器(java编写),但是后来发现ida也有一个bochs调试器,因为对ida比较熟悉,就选用此作为bochs调试器。 在配置过程中参考博客 https://blog.youkuaiyun.com/cssxn/article/details/90738498 中的配置,但是这是直接发布版本,拿源码编译...

WriteAnything_的博客 2755

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。

m0_74808907的博客 3147

一次HTTPS请求的过程

一次HTTPS请求的过程DNS、TCP、SSL、HTTP

读书 好学 求知 1752

Cibersort免疫浸润 --- 详细教程

免疫浸润是指免疫细胞如淋巴细胞、浆细胞、巨噬细胞等进入到组织或器官中,并在这些组织或器官中发挥免疫功能的过程。免疫细胞的浸润可以是炎症反应的一部分,也可以是针对感染、肿瘤或其他疾病的免疫应答的一部分。免疫浸润通过调节免疫反应和炎症反应的程度和类型,起到维护机体免疫平衡和清除异常细胞或病原体的作用。在某些情况下,免疫浸润可能导致炎症反应过度,引起组织损伤,例如自身免疫性疾病。因此,免疫浸润在许多疾病的诊断和治疗中都具有重要的意义。免疫浸润可以通过组织切片染色和免疫组织化学等方法观察和分析。

ZxVSaccount的博客 9107

HTTPS 请求过程

一、HTTPS 加密过程 概念 HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与 Web 服务器之间的应用层通信协议 。 HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为 HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。 CA(Cer

软件测试前沿技术分享 5905

22、计算智能在自闭症检测与管理中的应用

本文探讨了计算智能在自闭症谱系障碍(ASD)检测与管理中的应用。在检测方面,结合可穿戴设备、传感技术与多模态数据(如眼动追踪、问卷、神经成像等),利用机器学习和深度学习算法提升诊断准确性,并介绍了多种公开数据集及研究方法。在管理方面,通过生理指标(HRV、GSR、呼吸频率)监测情绪状态,结合智能可穿戴设备与支持性应用平台(如LetMeTalk、MITA、Rethink Ed等),实现对ASD患者的实时干预与个性化支持。文章还展示了多模态筛查与管理流程的系统架构,强调未来技术整合与个性化服务的发展方向。

star的博客 91

6、直流微电网中恒功率负载(CPL)的稳定性分析与控制策略

本文探讨了直流微电网中恒功率负载(CPL)带来的稳定性问题,并深入分析了其影响机制及相应的缓解策略。文章首先通过小信号模型和非线性分析揭示了CPL对系统稳定性的影响,接着讨论了被动稳定方法的优缺点,最后重点介绍了基于时间的方法和几何控制器等控制策略。这些方法各有优劣,在实际应用中需结合具体需求选择合适方案,以实现直流微电网的稳定运行。

star的博客 227

【计算机知识】一个Https请求的过程详细解读

HTTPS请求过程详解:从DNS解析到加密通信 HTTPS请求的核心流程包括5个阶段:1)DNS解析域名为IP;2)TCP三次握手建立连接;3)TLS四次握手(关键安全环节),包含证书验证、密钥交换等步骤;4)建立加密通道后传输HTTP数据;5)可选关闭连接。TLS 1.3优化为1-RTT握手,提升效率。整个过程通过加密技术解决了HTTP的三大安全隐患:窃听、篡改和身份伪装。时序图清晰展示了各环节的交互顺序,突出了TLS握手在建立安全通信中的核心作用。

wendao76的专栏 1510

ESP32 VSCode开发环境配置

ESP32 VSCode开发环境配置

qq_53529450的博客 507

2024年最全HTTP和HTTPS请求的整个过程详解,2024年最新大厂offer手到擒来

一个HTTP请求报文由请求行请求头部(headers)、空行(blank line)和请求数据(request body)4个部分组成。请求行和协议版本,它们之间用空格分割。例如,GET /index.html HTTP/1.1;HTTP/1.1 定义的请求方法有8种:GET(完整请求一个资源)、POST(提交表单)、PUT(上传文件)、DELETE(删除)、PATCH、HEAD(仅请求响应首部)、OPTIONS(返回请求的资源所支持的方法)、TRACE(追求一个资源请求中间所经过的代理)。

2401_84976219的博客 1643

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

一次完整的https请求过程

协商加密方式,建立安全通道(仅 HTTPS 需要)。这样,一次完整的 HTTP(S) 请求就完成了!:释放 TCP 连接(HTTP/1.1 默认。的封装与解析,并最终返回响应。(HTTPS 默认端口)建立可靠连接。:客户端向服务器发送请求(如。:服务器接收请求并返回响应。解析为 IP 地址(如。

zjkyeah的博客 1423

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

基于 HarmonyOS 的 HTTPS 请求过程开发示例(ArkTS)

介绍 本篇 Codelab 基于网络模块以及 Webview 实现一次 HTTPS 请求,并对其过程进行抓包分析。效果如图所示: 相关概念 ●Webview:提供 Web 控制能力,Web 组件提供网页显示能力。 ●HTTP数据请求:网络管理模块,提供 HTTP 数据请求能力,支持 GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT 请求方法。 ●HTTPS:应用层协议,支持加密传输以及身份认证,保证数据的安全传输。 ●SSL:SSL(Secur

HarmonyOSDev的博客 2458

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

中工开发者 基于 ArkTS 的 HTTPS 请求过程解析

基于 ArkTS 的 HTTPS 请求过程涉及多个关键概念和技术,通过合理使用@ohos.net.http 进行请求,并遵循相关的约束与限制,开发者能够构建安全可靠的数据传输应用。深入理解这些内容对于在 HarmonyOS 平台上开发高质量、安全的应用程序具有重要意义,有助于保障用户数据的安全和应用的稳定运行。在实际开发中,开发者还应不断探索和优化 HTTPS 请求的使用,以适应不同的业务需求和安全要求。

2201_75862465的博客 1184

一图说明HTTPS请求过程

HTTPS请求流程: ① 客户端发起https请求,请求包含客户端支持的SSL版本、加密算法等信息,访问默认的443端口进行证书获取 ② 服务端存放了公钥证书和私钥证书,返回公钥证书、服务端自己支持的SSL版本、加密算法等信息给客户端 ③ 客户端验证收到的公钥证书是否有效,如果无效,会显示警告信息 ④ 客户端验证公钥证书有效后,会根据公钥证书生成一个随机值key,用来以后跟服务端加密通讯的密钥 ⑤ 客户端用公钥加密随机值key并发送给服务端 ⑥ 服务端收到加密的key后,用私钥证书解密 ⑦ 服务端得到解..

u013998466的博客 1422

HTTP结构、版本、请求方法、HTTPS加密过程面试必备

HTTP 是无状态的应用层协议,用于在 Web 上传输数据,如 HTML 文件、图片等。

weixin_63625059的博客 1706

输入‘域名’在浏览器的完整过程,HTTP和HTTPS请求

面试高频问题之浏览器搜索域名经历的过程 输入www.baidu.com在浏览器的完整过程,越详细越好HTTP请求: 浏览器获取输入的域名www.baidu.com 浏览器向域名系统DNS请求解析www.baidu.com的IP地址 DNS解析出百度服务器的IP地址 浏览器与服务器建立TCP链接(默认端口80、 TCP三次握手) 浏览器发出HTTP请求,请求百度首页(请求方式有:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH) 服务器通过HTTP请

qq_38291480的博客 3338
上一篇: ArrayList为什么会出现并发问题以及相应的解决办法
下一篇: JVM关于OOM异常的调优
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值