基本概念
HTTP :
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议。
基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。
设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
HTTPS :
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。
HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
TLS是传输层加密协议,前身是SSL协议。(HTTPS是身披SSL外壳的HTTP)
发展历史
HTTP/1.0 : 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令
HTTP/1.1 : 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码
HTTP/2 : 多路复用、服务器推送、头信息压缩、二进制协议等
HTTP特点
无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力。
无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。
基于请求和响应:基本的特性,由客户端发起请求,服务端响应。
通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性。
HTTPS特点
基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。
内容加密:采用混合加密技术,中间者无法直接查看明文内容。
验证身份:通过证书认证客户端访问的是自己的服务器。
保护数据完整性:防止传输的内容被中间人冒充或者篡改。
三次握手:建立连接
客户端发送SYN报文,并发送序号为X。
服务端接收报文,发送SYN+ACK报文;设置发送序号为Y,确认序号为X+1。
客户端接收报文,发送ACK报文;设置发送序号为Z,确认序号为Y+1。
四次挥手:释放连接
主动方发送FIN+ACK报文,设置发送序号为X。
被动方接收报文,发送ACK报文;设置发送序号为Z,确认序号为X+1。
被动方发送FIN+ACK报文,设置发送序号为Y,确认序号为X。
主动方接收报文,发送ACK报文;设置发送信号为X,确认序号为Y。