1、HTTP协议
1.1、HTTP概念
●Hyper Text Transfer Protocol (超文本传输协议)
●HTTP协议是基于TCP协议,默认是80端口。主要是用来规定客户端与服务端的数据传输格式
●HTTP是基于请求与响应模式的、无状态的、无连接的应用层协议
1.2、HTTP特点
1.简单快速:客户向服务器请求服务时,只需传送请求方法和路径 ----速度很快
2.灵活:HTTP允许传输任意类型的数据对象,用Content-Type加以标记
3.无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。----比如百度网站,该网站上面有很多的内容都需要在一个连接里面返回,如果说只是请求了一次,一个连接只处理一次请求,后续的内容(图片、文字等)的请求都需要重新发起连接,这样的话就达不到节省时间的目的。随着现在页面越来越复杂,一个界面有很多东西需要请求,现在就有了一个改善的机制,Connection:keep-alive(保持长连接),采用这种方式可以节省传输时间
4.无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作。----cookies值,session,保持之前请求的记忆,规避了重复操作
5.通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性 ----HTTP不安全
比如:客户端 ----(第三方黑客,篡改)----服务器
客户端发送请求,请求是不会对通信方进行确认的,那么如果第三方黑客将数据进行篡改之后,再发送到服务器,服务器也不知道数据被篡改了。所以HTTP不安全
2、HTTPS协议
2.1、概念
概念:HTTPS(Hypertext Transfer Protocol Secure),超文本传输安全协议,简单讲是HTTP的安全版。它加密数据并确保其机密性----密文,可保护用户在与网站交互时免于窃取个人信息和计费数据,验证数据完整性。HTTP+加密+身份认证+完整性=HTTPS
基于TCP的443端口,披着SSL协议外壳HTTP协议。
(HTTPS中加密+身份认证+完整性,都是通过SSL来实现的)
2.2、HTTPS协议-SSL握手过程
1.客户端请求建立SSL连接,并将自己支持的一套加密规则发送给服务
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等
—对钥匙:公钥–公布----加密;私钥-----私有,解密的
3.获得网站证书之后浏览器要做以下工作:
●验证证书的合法性-服务器身份,如证书受信任,浏览器会生成一串随机数密码,并用证书中提供的公钥加密。
●把密码发送给网站。
●告诉网站后续报文要加密了。握手结束。
4.网站接收浏览器发来的数据之后要做以下的操作:
●使用自己的私钥将信息解密取出密码----加密了
●告诉客户端后续报文要加密了。握手结束。
加密+身份认证+完整性=HTTPS