HTTP与HTTPS是干嘛的?
首先,HTTP 是一个网络协议,是专门用来帮你传输 Web 内容的。关于这个协议,就算你不了解,至少也听说过吧?比如你访问某个博客的主页,浏览器地址栏会出现如下的网址:
http ://XXXXXX.com/
加了粗体的部分就是指 HTTP 协议。大部分网站都是通过 HTTP 协议来传输 Web 页面、以及 Web 页面上包含的各种东东(图片、CSS 样式、JS 脚本)
HTTP请求与HTTPS的区别
HTTP和HTTPS是两种不同的协议,它们在数据传输的安全性和加密上有所不同。咱们通常所说的 HTTPS 协议,说白了就是“HTTP 协议”和“SSL/TLS 协议”的组合
HTTP
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,它是Web服务器和Web客户端之间的通信协议。
HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。
HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
HTTPS
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是基于HTTP协议的安全协议,它使用SSL/TLS协议进行加密,保证数据传输的安全性。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
HTTPS协议通过数字证书来验证服务器的身份,并对数据进行加密,保证数据传输的安全性。因此,即使黑客在传输过程中截取了数据,也无法解密数据的内容
HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:
- 1、TCP 三次同步握手
- 2、客户端验证服务器数字证书
- 3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
- 4、SSL 安全加密隧道协商完成
- 5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
区别
HTTP和HTTPS之间最大的区别在于数据传输的安全性。HTTPS协议使用SSL/TLS协议进行加密,可以保证数据传输的安全性,而HTTP协议则没有这一保障。
此外,HTTPS协议需要服务器证书的支持,而HTTP协议不需要。HTTPS的加密和解密过程需要消耗更多的CPU和内存资源,因此相较于HTTP,HTTPS的传输速度会慢一些。
结论
- HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
- 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
- HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
- http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
- HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
相关文章:
简单易懂的加密原理介绍(有关SSL/TLS协议)
参考文章:
https://www.runoob.com/w3cnote/http-vs-https.html
https://program-think.blogspot.com/2014/11/https-ssl-tls-1.html