先说结论,http和https最主要的差别就是http是明文传输数据,而https传输的数据经过加密。
http vs https
HTTP,英文全称 Hyper Text Transfer Protocol,中文全称“超文本传输协议”,按照OSI参考模型,它属于第七层应用层的协议。HTTP的作用是提供了一组规则和标准,用于控制如何在万维网上传输任何信息,提供了Web浏览器和服务器进行通信的标准规则。目前主要使用的是HTTP/1.0 和 HTTP/1.1 两个版本,主流使用的是 HTTP/1.1。
网络协议分层
当在浏览器输入网址按回车之后,默认自动会在网址前面加上http://。它表示浏览器与web服务器通过http协议进行连接和传输数据。当浏览器获得http响应之后,会进行渲染,变成我们可以看到的网页。
http是基于C/S结构的协议,浏览器在向服务器发送请求之前,首先需要建立TCP连接,然后才能发送HTTP请求报文,并接收HTTP响应报文。
http请求响应过程大概可以分为四步:
(1)客户端请求服务器建立连接;
(2)连接建立后,客户端向服务器发送http请求;
(3)服务器接收到http请求后,并根据请求做相应的响应;
(4)完成请求之后,客户端与服务端断开连接。
http请求响应过程
https,英文全称 Hyper Text Transfer Protocol over SecureSocket Layer,中文全称 超文本传输安全协议。是在http的基础上加上TLS/SSL协议,通过加密传输和身份验证保证传输的安全性。https最初是基于ssl,后来ssl协议升级并命名为tls协议,目前tls协议最新版本是tls1.3,主流使用的是tls1.2版本。
http能完成网站浏览服务,但是也有很明显的安全缺陷,主要是明文传输数据和缺乏信息完整性校验,通俗理解就是,双方传输的数据可以被第三方窃取,知道你传输的是什么内容,甚至还可以对数据进行修改,双方却无法察觉到。特别是在网站登录和网络支付的时候,使用http更致命。
http的风险总结为:
https就是为了解决http的风险而设计的
https工作过程
综上所述,http和https最主要的差别就是http是明文传输数据,而https传输的数据经过加密。