一文就让你搞懂http和https的通信过程及区别

一文就让你搞懂http和https的通信过程及区别

大家好,又见面了,我是全栈君。

一、 HTTP与HTTPS的区别

1、端口:http端口号是 80;https端口号是 443

2、传输协议:http是超文本传输协议,属于明文传输;https是安全的超文本传输协议,是经过SSL加密后的传输协议

3、安全性:https使用了TLS/SSL加密,比http更加的安全

4、证书:https需要申请ca证书

二、HTTP的通信过程

作为标准的C/S模型,http协议总是由客户端发起,服务器进行响应。

1、DNS解析,域名系统DNS将域名解析成IP地址

2、建立TCP连接,进行TCP的三次握手

3、浏览器发送请求

4、服务器响应浏览器,向浏览器发送数据

5、通信完成,TCP连接关闭

三、HTTPS的通信过程

https通信是建立在ssl连接层之上的请求和响应,客户端将加密组件发送到服务端,服务端进行匹配后将数字证书等信息发送到客户端,客户端进行证书验证,验证通过后使用非对称加密对数据的密钥进行协商,协商后得到对称的加密密钥,然后使用对称算法进行TCP链接,然后与客户端进行三次握手后,进行数据传输,传输完成后,四次挥手,断开链接,通信结束。

通信过程如下 :

1、客户端和服务器端通过TCP建立连接,并发送https请求。

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

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

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

5、客户端会再次发起请求,将加密之后的客户端密钥发送给服务器。

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

7、客户端收到密文,并使用客户端秘钥进行解密,获取数据。

一文就让你搞懂http和https的通信过程及区别

一文就让你搞懂http和https的通信过程及区别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111526.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GPU服务器的用处是什么?跟普通服务器有什么区别?

    GPU服务器的用处是什么?跟普通服务器有什么区别?

    2022年2月19日
    59
  • 轻松搞懂【TF-IDF、word2vec、svm、cnn、textcnn、bilstm、cnn+bilstm、bilstm+attention实现】英文长文本分类[通俗易懂]

    轻松搞懂【TF-IDF、word2vec、svm、cnn、textcnn、bilstm、cnn+bilstm、bilstm+attention实现】英文长文本分类[通俗易懂]项目来源:https://www.kaggle.com/c/word2vec-nlp-tutorial/之前我写过几篇博客:就这?word2vec+BiLSTM、TextCNN、CNN+BiLSTM、BiLSTM+Attention实现中英文情感分类代码详解就这?word2vec+SVM(支持向量机)实现中英文情感分类代码详解这两篇博客主要是基于中文进行情感分类的,那么本篇博客,我会以这个kaggle项目来介绍如何实现英文长文本情感分类。1实验数据本次数据集来源于kaggle项目“Bago

    2022年6月28日
    30
  • list的五种去重方法

    list的五种去重方法面试中经常被问到的list如何去重,一般是口述,不需要代码体现,这个时候,思维一定要清晰,可以罗列出集中去重的方法,以展现你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固下面,我就将五种方法逐一展现新建一个list数组:Listlist=newArrayList();list.add(26);list.add(39);list.add(5)…

    2022年5月9日
    55
  • 基于python的安全帽识别安全帽检测可以检测图片,视频流,有界面[通俗易懂]

    基于python的安全帽识别安全帽检测可以检测图片,视频流,有界面[通俗易懂]安全帽识别,安全帽检测yolo可以检测图片,视频流,有界面python识别率99%效果图:效果视频:项目代码下载:链接:https://pan.baidu.com/s/1CpcDb1LHpF84svV66blJSw提取码:86sq复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V1的分享…

    2022年5月12日
    54
  • 使用pycharm创建Django项目[通俗易懂]

    使用pycharm创建Django项目[通俗易懂]创建项目1.使用命令行创建项目如果这是你第一次使用Django的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个Djangoproject——即一个Django项目实例需要的设置项集合,包括数据库配置、Django配置和应用程序配置。打开命令行,cd到一个你想放置你代码的目录,然后运行以下命令:django-adminstartprojectmysite#mysite是项目名这行代码将会在当前目录下创建一个mysite目录。如果命令失

    2022年8月25日
    7
  • 浪潮服务器 安装系统_浪潮服务器安装centos7

    浪潮服务器 安装系统_浪潮服务器安装centos7《浪潮服务器系统安装操作》由会员分享,可在线阅读,更多相关《浪潮服务器系统安装操作(3页珍藏版)》请在人人文库网上搜索。1、浪潮服务器系统安装总结一、首先创建虚拟磁盘:1、开机引导项Ctrl+h,在AdapterSelection屏幕中单击Start。2、此时,将打开MegaRaidBIOSConfigUtilityVirtualConfiguration屏幕…

    2022年10月5日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号