HTTP 和HTTPS 连接过程详解(SSL TLS)
简介
HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)
对称加密和非对称加密
对称加密
- 即加密的密钥和解密的密钥相同,
非对称加密
- 非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密
建立连接
HTTP和HTTPS都需要在建立连接的基础上来进行数据传输,是基本操作
当客户在浏览器中输入网址的并且按下回车,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip
当获取到ip后,tcp连接会进行三次握手建立连接
tcp的三次挥手和四次挥手
过程简图
三次挥手(建立连接)
第一次:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次:服务器收到SYN包,向客户端返回ACK(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RCVD状态;
第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据,也就是ESTABLISHED状态。
三次握手保证了不会建立无效的连接,从而浪费资源。
四次挥手(断开连接)
第一次: TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
第二次:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
第三次:服务器关闭客户端的连接,发送一个FIN给客户端。
第四次:客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
HTTP请求过程
建立连接完毕以后客户端会发送响应给服务端
服务端接受请求并且做出响应发送给客户端
客户端收到响应并且解析响应响应给客户
HTTPS
在使用HTTPS是需要保证服务端配置正确了对应的安全证书
客户端发送请求到服务端
服务端返回公钥和证书到客户端
客户端接收后会验证证书的安全性,如果通过则会随机生成一个随机数,用公钥对其加密,发送到服务端
服务端接受到这个加密后的随机数后会用私钥对其解密得到真正的随机数,随后用这个随机数当做私钥对需要发送的数据进行对称加密
客户端在接收到加密后的数据使用私钥(即生成的随机值)对数据进行解密并且解析数据呈现结果给客户
SSL加密建立
HTTP 和HTTPS 连接过程详解(SSL TLS)相关推荐
- HTTPS加密过程详解
HTTPS加密过程详解 一.前言 二.HTTPS的混合加密 1.摘要算法 2.混合加密和数字证书 三.补充 四.参考资料 一.前言 http是为了解决http存在的问题而在http基础上加入了SSL/ ...
- HTTPS 加密过程详解
HTTPS 加密过程详解 HTTPS 中的概念 对比 HTTP 与 HTTPS 网络分层结构 对称加密 非对称加密 HTTPS 中的概念 明文:可以直接看到原始数据的文本: 密文:看不见原始数据的文本 ...
- rabbitmq 连接过程详解
连接过程详解 转载于:https://www.cnblogs.com/mrxiaohe/p/6605068.html
- HTTPS详解SSL/TLS
2019独角兽企业重金招聘Python工程师标准>>> 什么是HTTPS 百科定义: HTTPS(全称:Hyper Text Transfer Protocol over Secur ...
- 一、HTTPS详解SSL TLS
一.什么是HTTPS HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安 ...
- SSL 连接过程详解
1.SSL 简介 SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的 ...
- TCP协议连接过程详解
http://kendy.blog.51cto.com/147692/34057 1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2 ...
- python字符串连接操作-Python连接字符串过程详解
这篇文章主要介绍了python连接字符串过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在python中,如果有多个字符串,想要连接在一起, ...
- 手机连接投影机的步骤_投影机安装过程详解
投影机安装过程详解 一 投影机的安装方式 1.桌面摆放 桌面投影虽然看起来不是很美观,但可以省去那些繁琐的步骤,只需要准备一张桌子,还可以购买一些专门用来摆放投影机的可移动小车架,把投影机往上一放,连 ...
最新文章
- [转载]Linux 线程实现机制分析
- 白话经典算法系列之七 堆与堆排序
- OPPO和微软合作,开放“召唤小冰”
- git---gui使用
- Adapter pattern
- 排序算法之low B三人组
- 数据类型之字符串练习
- leetcode704二分法:(左闭右闭+左闭右开)
- 看后端程序员调试CORS的姿势
- linux下C调用lua的第一个程序
- WCF系列_分布式事务(下)
- Android中关于Volley的使用(一)加载图片
- vmware centos6.4挂载ntfs移动硬盘
- 计算机发展史与程序员思维
- fix协议封装挑战-数据有效性校验
- python query函数的用法_python help函数实例用法
- java.lang.IllegalStateException: Shutdown in progress
- 嵌入式开发之 STM32自行车码表(图文)
- DOORS入门教程系列:基本概念介绍(一)
- 支付平台--网联详解