首页 > 其他分享 >Http和Https

Http和Https

时间:2022-10-29 23:12:41浏览次数:65  
标签:加密 http Https 秘钥 传输 https Http 客户端

Http和Https

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

TCP/IP网络模型

image.png
image.png

OSI七层网络模型

image.png

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. 发送方和接收方容易被伪造

总结:

模型:

image.png

区别:

  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浏览器会显示护盾或者锁标志,点击可以看到证书相关信息。

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

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

标签:加密,http,Https,秘钥,传输,https,Http,客户端
From: https://www.cnblogs.com/aibianchengya/p/16840169.html

相关文章

  • 一个http server 的npm包 budo 实时
    ​​https://www.npmjs.com/package/budo​​使用:budo--dir./......
  • http各个版本(1/1.1/2)对比
    http各个版本(1/1.1/2)对比 目录:http1.1长连接HTTP1.1支持只发送header信息(不带任何body信息)http1.1host请求头HTTP2.0使用多路复用技术(Multiplexing)HT......
  • HTTP1、HTTP1.1、http2、http3的区别
    1.改进持久连接HTTP/1.0每进行一次HTTP通信,都需要经历建立TCP连接、传输HTTP数据和断开TCP连接三个阶段(如下图)。在当时,由于通信的文件比较小,而且每个页面的引用也不......
  • HTTP1和HTTP2的区别
    1.Http1.x缺陷:线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞。2.Http1.0(短连接)缺陷:浏览器与服务器只保持短暂的连接,浏览器的每次请求都......
  • Kubernetes--Pod存活性探测(设置HTTP探针)
    基于HTTP的探测(HTTPGetAction)向目标容器发起一个HTTP请求,根据其响应码进行结果判定,响应码形如2xx或者3xx时表示检测通过。“sepc.containers.livenessProbe.httpGet”字段......
  • JAVAWeb - HttpServletResponse
    HttpServletResponseweb服务器接收到客户端的Http请求,针对这个请求,分别创建了一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse如果要获取客户端......
  • http请求工具类 HttpClient4Util
    1、依赖<!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.3.6</version>......
  • remote: HTTP Basic: Access denied. The provided password or token is incorrect o
    具体错误:$gitpush--set-upstreamoriginquantum6remote:HTTPBasic:Accessdenied.Theprovidedpasswordortokenisincorrectoryouraccounthas2FAenabled......
  • 【Node.JS 】http的概念及作用
    什么是http模块在网络节点中,负责消费资源的电脑,叫做客户端,负责对外提供网络资源的电脑,叫做服务器。http模块是Node.js官方提供的,用来创建web服务器的模块,通过http模块提供的......
  • nginx http 通用配置
    文档说明:只记录关键地方;nginx配置文件nginx.confusernginx;worker_processesauto;worker_cpu_affinityauto;error_log/var/log/nginx/error.logwarn;pid......