HTTP与HTTPS的区别-程序员宅基地

技术标签: java  网络  http  面试指南  https  ssl  

HTTP与HTTPS的区别

安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议

申请证书上,HTTPS需要使用ca申请证书

传输协议上, HTTP是超文本传输协议,明文传输;HTTPS是具有安全性的 SSL 加密传输协议

连接方式与端口上,http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ssl协议进行加密传输,端口是 443

HTTP的工作过程

HTTP由请求和响应构成,是一个标准的客户端服务器模型(C/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。

  1. 地址解析。域名系统DNS解析域名得到主机的IP地址

  2. 封装HTTP请求数据包。封装的内容有以上部分结合本机自己的信息。

  3. 封装成TCP包,建立TCP连接(TCP的三次握手)

  4. 客户机发送请求命令。 建立连接后,客户机向服务器发送一个请求

  5. 服务器响应。服务器接到请求后,给予相应的响应信息

  6. 服务器关闭TCP连接。一般Web服务器向浏览器发送了请求数据,它要关闭TCP连接

  7. 客户端解析报文,解析HTML代码,并渲染

HTTPS的实现原理

HTTP以明文方式传输信息,不能保障数据传输的安全。

HTTPS在HTTP的基础上加入了SSL协议。

HTTPS使用SSL协议和TLS协议

SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS的通信过程

https通信时,首先建立ssl层的连接,客户端将ssl版本号和加密组件发到服务器端,服务器端收到后对ssl版本号和加密组件进行匹配,同时将CA证书及密钥发送到客户端。客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的密钥进行协商。协商后得到一致的获得一致的对称加密密钥。然后使用对称加密算法进行TCP连接,后续的过程跟http的过程一致。三次握手,数据交换,四次挥手,通信结束。

过程如下 :

  1. 客户端和服务器端通过TCP建立连接。

  2. 客户端向服务器发送HTTPS请求。

  3. 服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。

  4. 客户端收到服务器端的数字证书之后,会验证数字证书的合法性。

  5. 如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。

  6. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

  7. 服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。

  8. 客户端收到密文,并使用客户端秘钥进行解密,渲染网页。

在这里插入图片描述

参考链接:

https://www.jianshu.com/p/14cd2c9d2cd2

文章持续更新,可以微信搜索「 云璈公子 」阅读,回复【资料】【面试】【简历】有我准备的一线大厂面试资料和简历模板,同时我的GitHub https://github.com/1170300826/JavaInterview 有互联网一线大厂面试指南。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/JAck_chen0309/article/details/105020259

智能推荐

Java核心技术卷一 -第五章:装箱和拆箱_自动装箱和自动拆箱在java第几章-程序员宅基地

文章浏览阅读340次。系列文章目录Java核心技术卷一 -第一章:java“白皮书”的关键术语Java核心技术卷一 -第三章:数据类型Java核心技术卷一 -第三章:变量与常量Java核心技术卷一 -第三章:运算符Java核心技术卷一 -第三章:字符串Java核心技术卷一 -第三章:输入与输出Java核心技术卷一 -第三章:数组Java核心技术卷一 -第四章:类之间的关系-依赖Java核心技术卷一 -第四章:预定义类-LocalDate类小应用Java核心技术卷一 -第四章:构造器Java核心技术卷一 -第_自动装箱和自动拆箱在java第几章

hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比-程序员宅基地

文章浏览阅读489次。问题导读:1.DataNode的http服务的端口、ipc服务的端口分别是哪个?2.NameNode的http服务的端口、ipc服务的端口分别是哪个?3.journalnode的http服务的端口、ipc服务的端口分别是哪个?4.ResourceManager的http服务端口是哪个?5.NodeManager的http服务端口是哪个?6.Master的http服务的端口、

Matlab在概率统计中的应用问题及解决方案集锦_matlab数学建模 概率题-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏9次。Matlab在概率统计中的应用(0001)问题:假设已知 Rayleigh 分布的概率密度函数为试用解析推导的方法求出该分布的分布函数、均值、方差、中心矩和原点矩。生成一组满足 Rayleigh 分布的伪随机数,用数值方法检验得出的解析结果是否正确。解:工具相应的数学定义的公式,所需的分布函数、均值、方差、中心矩和原点矩等可 以由下面的语句推导出来。>> syms x;syms b positivep=x*exp(-x^2/2/b^2)/b^..._matlab数学建模 概率题

关于一些不同寻常的tabBar的使用_手机app的tabbar能不能占比区域不同-程序员宅基地

文章浏览阅读509次。在实际开发中,系统的原生控件并不能满足我们的需求,这个时候就需要自己去自定义这个控件,自定义控件需要自己对原生控件结构非常了解。今天,这里来讲一下不同寻常的tabBar。原则:尽量利用系统自带的TabBar.只改需要改的地方不同寻常的tabBar 类型一:这种基本上是重写了整个tabbar,然后根据自己的需求来定义view的风格 步骤: 1.把自带的TaBBar条给隐藏掉,添加自己的view l_手机app的tabbar能不能占比区域不同

随便推点

MySQL的on duplicate key update 的使用_mysql on duplicate key update-程序员宅基地

文章浏览阅读1.5w次,点赞2次,收藏31次。mysql的存在就更新不存在就插入实现先建数据库表,重点要添加主键索引(id列,没有测试)和唯一索引(branch_no列)sqlINSERT INTO t_bank_organ_copy1 ( organ_no, branch_no, branch_name, created_by )VALUES ( 1255, '13', '深圳分行', '小王' ) ON DUPLICATE KEY UPDATE branch_name = '中国银行'测试:1、organ_no, ._mysql on duplicate key update

【JqGrid】JqGrid日期格式化处理-程序员宅基地

文章浏览阅读6.2k次。使用JqGrid显示日期是转换后的结果,即显示的毫秒数。需要自己进行手工处理,处理后的代码如下:{label:'日期',name: 'departure_date',index: 'departure_date',align: "center",formatter:function(cellValue,options,rowObject){ return (moment(rowOb_jqgrid日期格式化

Convert.ToInt32()与Int.Parse()的区别_convert.toint32和int.parse的区别-程序员宅基地

文章浏览阅读619次。1、int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型);2、int.Parse(string sParameter)是个构造函数,参数类型只支持string类型;3、Convert.ToInt32()适合将Object类型转换为int型;4、Convert.ToInt32()和int.Parse()的细微差别:对于空值(null)的处理_convert.toint32和int.parse的区别

mysql 常用命令-菜鸟级_mysql数据库命令大全菜鸟-程序员宅基地

文章浏览阅读207次。一、连接MySQL  格式: mysql -h 主机地址 -u 用户名 -p 用户密码  1、例1:连接到本机上的MYSQL。  首先在打开DOS窗口,然后进入目录 mysql bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。 ..._mysql数据库命令大全菜鸟

Python大数据分析与应用—2020年中国高校毕业生薪酬指数排名_基于pandas的中国大学生毕业去向影响因素分析-程序员宅基地

文章浏览阅读2.4k次。一.数据来源数据说明:数据来源于薪酬网,网址为https://www.xinchou.com/ChineseCollege/Indexes(注:薪酬指数:在做薪酬之前要做岗位评估,一般从10个维度去衡量岗位综合分数,一般以一千分为基准。毕业生薪酬指数既反映了毕业生成长发展状况,也反映了高校毕业生就业状况、收入变化,对客观分析高校毕业生就业趋势、企业人力资源配置状况具有重要的参考意义)2020年中国高校毕业生薪酬指数排名(前100)。数据存入csv文件中,每行数据为高校,行末为换行符作为结束;行内_基于pandas的中国大学生毕业去向影响因素分析

R和Rstudio中包的安装、加载和查看等操作_rstudio安装包-程序员宅基地

文章浏览阅读6.5k次,点赞4次,收藏25次。前言R语言中,R包的安装和加载等操作是使用R包进行数据分析和绘图的基础,尤其是对于R语言初学者具有重要的意义。下面主要介绍一些R包的常用操作命令。_rstudio安装包

推荐文章

热门文章

相关标签