Https与Http


HTTP: 中文叫做超文本传输协议,是专门用来传输注入HTML的超媒体文档等web内容的协议,它是基于传输层的TCP协议的应用层协议。
HTTPS:是以安全为目标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 提供安全支持。
※:安全套接字协议(Secure Sockets Layer)包括
为高层协议提供数据封装、压缩、加密等支持。
在记录协议之上,用于实际通讯之前,双方认证,协商加密算法交换密钥。


区别:
①HTTPS需要到CA申请证书,HTTP不需要。
②HTTP是明文传输,HTTPS是具有安全性的加密传输。
③连接方式不同,端口不同,HTTP:80 HTTPS:443
④HTTP连接简单,无状态。HTTPS SSL+HTTP安全。
(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)


HTTPS工作原理
①客户端向服务器发送请求,并传送客户端 SSL 协议的信息,以及其他服务器和客户端之间通讯所需要的各种信息。
②服务端向用户端传送SSL协议相关信息,并且还向客户端传送自己的证书。
③客户端利用服务端传过来的信息验证服务器合法性,如果验证未通过,通讯断开,验证通过进行下一步。
④客户端形成一个私钥,并用服务器传过来的公钥加密(非对称加密),传给服务器。
⑤服务端使用私钥将这个信息进行解密,得到客户端的私钥,然后客户端和服务端就可以通过这个私钥进行通信
⑥服务端将消息进行对称加密(简单来说就是讲消息和私钥进行混合,除非知道私钥否则服务进行解密),私钥正好只有客户端和服务端知道。服务端将进行对称加密后的消息进行传送,客户端使用私钥进行信息的解密。


一次完整的HTTP请求与响应都发生了什么?
①浏览器会查找缓存,如果有缓存的话直接显示
②查找本机host是否有对应IP,如果没有,通过DNS服务器获取IP地址
③建立tcp链接(三次握手)
④链接建立后,浏览器向服务器发送请求命令
⑤服务器应答
⑥浏览器根据数据进行展示
⑦关闭tcp链接(四次挥手)(如果keep-alive,还会继续保持连接)


TCP的三次握手
所谓三次握手,就是TCP连接的建立,必须是一方主动打开,一方被动打开。
①客户端向服务端发送tcp报文。
②服务器端接收到客户端的报文后,返回一段报文,发送给客户端,表示服务器能正常接收数据,同意创建连接。
③客户端接收到服务端返回的报文,明确了数据正常,然后向服务器端发送最后一段TCP报文,明确沟通无误,服务器端接收到这最后一段,连接建立成功。
简单理解
客户端:服务器端你在不在啊?
服务器端:我在,客户端你在不在啊?
客户端:妥了,咱俩都在,开始唠嗑吧!
至此,连接建立成功


TCP的四次挥手
所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。
①客户端想要释放连接,想服务器端发送报文
②服务器端接收到报文,确认了客户端想要释放连接,返回一段报文给客户端
③服务端报文发送后,做好了释放准备,再次向客户端发送报文
④客户端接收到服务器端做好准备的报文后,确认服务器端已经做好了释放准备,最后向服务器端发送报文,服务器端接收到报文后,断开连接。
简单理解
客户端:哎呀,聊的很久了,别聊了。
服务器端:行啊,那我准备一下,地上瓜子皮收拾一下。
服务器端:好了,收拾利索了,明儿见。
客户端:好嘞,明儿见。

你可能感兴趣的:(Https与Http)