一、什么是 HTTP ?
HTTP:全称是超文本传输协议,是互联网上目前应用最广泛的一种网络协议。HTTP 协议是以明文方式发送信息的,不安全,HTTP 的连接很简单,是无状态连接
HTTP 原理:
1、客户端的浏览器首先要通过网络与服务器通过 TCP 来建立连接,一般 TCP 连接的端口号是 80。建立连接后,客户端发送一个 http 请求给服务器
2、服务器收到客户端发送的 http 请求后,给予相应的响应信息
二、什么是 HTTPS ?
HTTPS:是 HTTP 的安全版,是基于 SSL协议 + HTTP协议的一种网络协议。
SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持,SSL 协议可分为两层:SSL 记录协议和 SSL 握手协议,SSL 记录协议建立在可靠的传输协议(如TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能的支持;SSL 握手协议建立在 SSL 记录协议之上,用于实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密秘钥等
三、HTTP 的优缺点
-
优点
1、灵活可扩展。主要体现在两个方面:语义上的自由和传输形式的多样
2、可靠传输。基于 TCP/IP
3、请求-应答
4、无状态。每一次 http 请求都是独立的、无关的,默认不保留状态信息,减少了网络开销 -
缺点
1、无状态连接。在长连接的场景下,需要保存大量的上下文信息,以免传输大量重复的信息,这时无状态就是一个缺点
2、明文传输,不安全。协议里的报文(主要是指头部信息)使用文本形式传输,如果黑客截取了 web 浏览器和服务器之间的传输报文,就可以直接获得其中的信息
3、队头阻塞。当 http 开启长连接时,建立一次 TCP 连接,在同一时刻只能处理一个 http 请求
四、HTTPS 的优缺点
-
优点
1、可认证用户和服务器,确保数据发送到正确的客户端和服务器上
2、由 SSL+HTTP 够贱的可进行加密传输、身份认证的网络协议,要比 HTTP 更安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性 -
缺点
1、握手阶段比较费时,会使页面的加载时间延长
2、连接缓存没有 http 高效,会增加数据开销
3、不是绝对安全的,安全范围有限,在黑客攻击、拒绝服务攻击和服务器劫持等方面受限
4、SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,资源消耗大
5、成本增加,计算机资源和服务器成本
6、加密范围有限
五、HTTP 和 HTTPS 的比较
HTTP | HTTPS | |
---|---|---|
安全性 | 明文传输,安全性差 | 加密传输,安全性较好 |
是否需要申请 | 不需要申请,免费 | 需要到 CA(数据证书认证机构)申请,需要一定费用 |
页面响应速度 | 较快 | 较慢 |
默认端口 | 80 | 443 |