Http和Https

Http和Https

首先我们介绍一下http和https,http是超文本传输协议,无状态并且是明文传输。https是在http协议的基础上增加了SSL/TLS协议,设备之间的通信是加密的,比Http协议安全。我们先了解一下TCP/IP网络模型和OSI七层网络模型,先知道HTTP协议主要工作在哪一层。

TCP/IP网络模型

Http和Https
Http和Https

OSI七层网络模型

Http和Https

HTTP

组成:

超文本(Hypertext)、传输(Transfer)、协议(Protocol),默认是工作在80端口,以明文方式传输内容,不提供任何方式的数据加密,所以如果被截取到,即可知道里面的内容。

HTTPS HTTP + TLS/SSL

介绍:

Hypertext Transfer Protocol Secure, 超文本传输安全协议,默认是工作在443端口,采用SSL/TLS协议来加密数据包,提高了数据的安全性。

通讯过程:

  1. 首先客户端和服务端需要进行TCP三次握手,建立连接,并且客户端发送https请求。
  2. 服务端收到请求,将ssl证书发送给客户端,证书其实就是公钥,里面还包含其他的信息,例如域名、申请的公司、过期时间等等
  3. 客户端解析并验证证书,如果证书没问题,客户端会生成一个秘钥,之后会使用证书中的公钥对该秘钥进行非对称加密
  4. 客户端将加密后的秘钥发送给服务端。
  5. 服务端解析秘钥,这里使用服务器的私钥进行解密,得到客户端刚刚生成的秘钥。
  6. 服务端将需要传输的数据使用刚刚解密出来的秘钥进行对称加密,传输给客户端。
  7. 客户端使用生成的秘钥对接收到的数据进行解密,获取真实的数据。

包含的算法:

  1. 秘钥交换算法
  2. 签名算法
  3. 对称加密算法
  4. 摘要算法

解决的相关问题:

  1. 传输过程容易被攻击者监听
  2. 传输的数据容易被攻击者窃取
  3. 发送方和接收方容易被伪造

总结:

模型:

Http和Https

区别:

  1. HTTP 的默认端口是 80,而 HTTPS 的默认端口是443
  2. http是明文传输,https是加密传输,https相对而言更安全。
  3. http连接简单,并且是无状态的。https连接需要使用秘钥进行加密解密,连接比http复杂。
  4. http相应快,只需要进行TCP三次握手,https相比较,相应速度慢,除了TCP三次握手,还需要进行SSL握手。
  5. http不需要申请证书,https需要购买ssl证书。
  6. 浏览器显示不同,http浏览器会显示不安全,https浏览器会显示护盾或者锁标志,点击可以看到证书相关信息。

关注微信公众号「平哥技术站」, 每日更新,在手机上阅读所有教程,随时随地都能学习。

觉得写的还不错的小伙伴,请作者喝杯咖啡☕ ,支持一下。😊

如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。

原文链接:https://monkey.blog.xpyvip.top/archives/http-https

Original: https://www.cnblogs.com/aibianchengya/p/16840169.html
Author: 程序猿的代码
Title: Http和Https

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/642974/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 简单明了的设计模式-立意篇

    1.岁月的沉淀 我们为什么要学设计模式? 如果是在我刚成为程序员的时候,我大概会这么回答: 因为设计模式是前人经验的总结,可以用来解决特定环境下,重复出现的特定问题。 同时也是程序…

    技术杂谈 2023年7月11日
    070
  • 每天一个 HTTP 状态码 205

    205 Reset Content 表示服务器成功地处理了客户端的请求,要求客户端… 205 Reset Content 205 Reset Content 表示服务器…

    技术杂谈 2023年7月11日
    069
  • GUI 快捷键的实现思路

    代码改变世界 Cnblogs Dashboard Login 2013-11-29 13:50 Clingingboy 阅读(736 ) 评论() 编辑 思路: 前提快捷键操作不可…

    技术杂谈 2023年5月31日
    097
  • 基于cefsharp的用户浏览器

    一、前言 使用cefSharp制作浏览器主要是一些页面无法通过自己的接口去控制,又不可能通过第三方去解决的时候,只能通过自己做的浏览器去分析界面,然后给出响应. 例如: xx的网页…

    技术杂谈 2023年5月31日
    091
  • 重新学习数据库(2)

    单元概述 通过本章的学习能够了解MySQL数据库中多表查询的含义,掌握多表查询的基本写法,掌握特殊的多表查询的写法,掌握内连接和外连接的区别 测试数据脚本 drop TABLE e…

    技术杂谈 2023年6月22日
    089
  • @ControllerAdvice注解

    @ControllerAdvice注解的三种应用场景 步骤一: @ModelAttribute里的value-“info”:指的是返回数据的 key ; 方…

    技术杂谈 2023年6月1日
    084
  • 一篇文章带你全面读懂Android Backup

    前言 手机等智能设备是现代生活中的重要角色,我们会在这些智能设备上做登录账户,设置偏好,拍摄照片,保存联系人等日常操作。这些数据耗费了我们很多时间和精力,对我们而言极为重要。 如果…

    技术杂谈 2023年7月11日
    082
  • 电商WMS介绍

    其他竞品 今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章: 如有想了解更多软…

    技术杂谈 2023年6月1日
    097
  • xampp配置局域网访问

    打开 httpd-xampp.conf(/xampp/apache/conf/extra/httpd-xampp.conf)搜索关键字: Order deny,allow 然后在O…

    技术杂谈 2023年5月31日
    094
  • 【并发】10、当有多个线程设置对应的值的时候,读取的值是否是那个线程设置的值?

    当有多个线程设置对应的值的时候,读取的值是否是那个线程设置的值???如果我们单独对这个值上锁的话,情况会怎么样呢? volatile Integer a = 0; /** * 当有…

    技术杂谈 2023年7月24日
    062
  • NAS私人云盘

    https://cloudreve.org/ Cloudreve 可助你即刻构建出兼备自用或公用的网盘服务,通过多种存储策略的支持、虚拟文件系统等特性实现灵活的文件管理体验。 部署…

    技术杂谈 2023年5月31日
    0101
  • 什么是GUI?

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 图形用户界面是一种人与计算机通信的界面显…

    技术杂谈 2023年5月31日
    088
  • GLSL

    类型说明 空类型,即不返回任何值 布尔类型 true,false 带符号的整数 signed integer 带符号的浮点数 floating scalar n维浮点数向量 n-c…

    技术杂谈 2023年6月1日
    092
  • Error: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions

    Error: [WinError 10013] An attempt was made to access a socket in a way forbidden by its a…

    技术杂谈 2023年5月30日
    080
  • linux多进程-使用mmap映射实现文件拷贝

    一、mmap共享映射区 1、创建映射区函数mmap void mmap(void addr,size_t length,int prot,int flags,int fd,off_…

    技术杂谈 2023年7月11日
    059
  • 物联网?快来看 Arduino 上云啦

    作者:HelloGitHub- Anthony 这里是 HelloGitHub 推出的讲解开源硬件开发平台 Arduino 的系列教程。 第一篇:Arduino 介绍和开发环境搭建…

    技术杂谈 2023年6月1日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球