一文就让你搞懂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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 常量池和运行时常量池_常量池在jvm的哪个部分

    java 常量池和运行时常量池_常量池在jvm的哪个部分前言一直在《深入理解JVM》对常量池只有一个浅薄的了解,之前也遇到过这种题目,今天还是要挑出来进行一次全方位的了解。常量池分类常量池大体可以分为:静态常量池,运行时常量池。静态常量池存在于class文件中,比如经常使用的javap-verbose中,常量池总是在最前面把?运行时常量池呢,就是在class文件被加载进了内存之后,常量池保存在了方法区中,通常说的常量池值的…

    2025年10月17日
    5
  • 置顶

    置顶

    2021年8月23日
    59
  • Model–view–viewmodel(wiki翻译)[通俗易懂]

    Model–view–viewmodel(wiki翻译)

    2022年4月3日
    58
  • 非阻塞connect,错误码:EINPROGRESS

    http://blog.csdn.net/benbendy1984/article/details/5773137当我们以非阻塞的方式来进行连接的时候,返回的结果如果是-1,这并不代表这次连接发生了错误,如果它的返回结果是EINPROGRESS,那么就代表连接还在进行中。

    2022年4月10日
    65
  • Java面试之字符串常量池「建议收藏」

    Java面试之字符串常量池「建议收藏」来源:https://segmentfault.com/a/1190000009888357作为最基础的引用数据类型,Java设计者为String提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么,我们带着以下三个问题,去理解字符串常量池:字符串常量池的设计意图是什么?字符串常量池在哪里?如何操作字符串常量池?字符串常量池的设计思想a.字符串的分…

    2022年7月28日
    12
  • 【愚公系列】2022年02月 Django商城项目 34-订单支付功能实现(支付宝)[通俗易懂]

    【愚公系列】2022年02月 Django商城项目 34-订单支付功能实现(支付宝)[通俗易懂]文章目录前言一、回调逻辑处理1.安装SDK2.生成私钥公钥3.setting中支付宝配置信息4.生成支付URL5.接收支付成功信息前言具体支付宝支付流程可参考这篇文章:https://www.cnblogs.com/xiaolu915/p/10528155.html一、回调逻辑处理1.安装SDKpipinstallpython-alipay-sdk–upgrade2.生成私钥公钥opensslOpenSSL>genrsa-outapp_private_key.pem

    2022年6月1日
    36

发表回复

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

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