两者的区别

  • 端口: http 端口号是80,https 端口号是443
  • 传输协议: http 是超文本传输协议,属于明文传输;https 是安全的超文本传输协议,是经过 SSL 加密后的传输协议
  • 安全性: https 使用了 TLS/SSL 加密,比 http 更加的安全
  • 证书: https 需要申请 ca 证书

HTTP的通信过程

  • 理解: 作为标准的 C/S 模型,http 协议总是由客户端发起,服务端进行响应。
  • DNS 解析,域名系统 DNS 将域名解析成IP地址
  • 建立 TCP 连接,进行 TCP 的三次握手
  • 客户端发送请求
  • 服务端响应客户端,向客户端发送数据
  • 通信完成,TCP 连接关闭

HTTPS的通信过程

  • 理解: https 通信是建立在 ssl 连接层之上的请求和响应,客户端将加密组件发送到服务端,服务端进行匹配后将数字证书等信息发送到客户端,客户端进行证书验证,验证通过后使用非对称加密对数据的密钥进行协商,协商后得到对称的加密密钥,然后使用对称算法进行 TCP 链接,然后与客户端进行三次握手后,进行数据传输,传输完成后,四次挥手,断开链接,通信结束。
  • 客户端和服务端通过 TCP 建立连接,并发送 https 请求。
  • 服务端响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司
  • 客户端收到服务端的数字证书之后,会验证数字证书的合法性。
  • 如果公钥合格,那么客户端会生成 client key,一个用于进行对称加密的密钥,并用服务端的公钥对客户端密钥进行非对称加密。
  • 客户端会再次发起请求,将加密之后的客户端密钥发送给服务端。
  • 服务端接收密文后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
  • 客户端收到密文,并使用客户端秘钥进行解密,获取数据。

最新文章

  1. IT菜鸟的第2天(输入输出,数据类型,运算符的使用)
  2. 声明式事务-整合Spring、Hibernate
  3. Eclipse 最全快捷键
  4. IIS 之 托管管道模式
  5. Java、JSP获得当前日期的年、月、日
  6. range([start], stop[, step]):产生一个序列,默认从0开始
  7. FROM CSDN TO CNBLOGS
  8. HDU 4344 随机法判素数(费马小定理
  9. mapreduce on yarn简单内存分配解释
  10. 当谈到 GitLab CI 的时候,我们该聊些什么(上篇)
  11. Python 函数返回值
  12. js工具方法
  13. Slow ReadProcessor&Error Slow BlockReceiver错误日志分析(转)
  14. 运维yum语法
  15. docker存储与网络
  16. (七)dubbo服务集群实现负载均衡
  17. hive 动态分区实现 (hive-1.1.0)
  18. SpringBoot阿里巴巴Fastjson的一些常用配置
  19. uri.js的用法事例
  20. SpringMVC 使用 RESTful 架构实现 CRUD 操作

热门文章

  1. JavaScript入门⑥-WEB浏览器API
  2. [奶奶看了都会]ChatGPT保姆级注册教程
  3. Jmeter 之 If 逻辑控制器
  4. LFU 的设计与实现
  5. 【转载】ADOX.Catalog中文帮助详细说明chm文档
  6. NET-SynchronizationContext
  7. Spring MVC复习 —— 搭建Spring MVC项目
  8. 【力扣】nSum问题模板
  9. 【学习笔记】开源库之 - sigslot (在解决浅拷贝问题的基础上增加信号拦截功能)
  10. MySQL 如何实现数据更新