HTTP 、HTTPS、SFTP、WebSocket都是在网络上传输数据的协议,他们的区别主要区别在于以下几个方面。
用途不同
SFTP:
●主要用于文件传输,通常用于在安全的网络环境中上传、下载、管理远程服务器上的文件。
●它是一个基于 SSH协议的文件传输协议,确保数据在传输过程中是加密的。
HTTP/HTTPS:
●主要用于 Web 浏览器和服务器之间的通信,传输网页内容、图片、视频等文件。
●HTTP 是无加密的协议,而 HTTPS 是通过 SSL/TLS 加密的安全版本的 HTTP,确保数据传输的安全性 。
●HTTP/HTTPS 是 Web 应用和网站的基础协议,广泛用于网站访问、API 调用等。
WebSocket:
●主要是用于全双工通信,可以持久化连接,常用于实时聊天,实时推送通知等
安全性差异
SFTP的数据在传输过程中都被加密,HTTP的数据在传输过程中是明文传输,数据不会被加密。HTTPS在传输过程中数据通过SSL/TLS进行加密。
SFTP是基于SSH协议的传输层协议,端口号为22
HTTP/HTTPS是基于TCP/IP的应用层协议,端口号为80 (HTTP)/ 443(HTTPS)
WebSocket协议是基于TCP的协议,有wss:// 协议, 类似于 HTTPS,使用 SSL/TLS 加密,确保数据传输的安全性。
连接模式
SFTP基于客户端和服务器之间的 持久连接,用户必须先登录 SSH 服务器,才能进行文件传输。
HTTP/HTTPS 基于请求-响应模型[三次握手建立连接,四次挥手断开连接],每次客户端发出 HTTP 请求时,服务器进行响应。HTTP 连接通常是短暂的,每个请求都会建立一次新的连接,响应后连接就会关闭。如果HTTP想要实现持久化连接,可以通过升级为WebSocket协议实现。
WebSocket 支持 全双工通信,持久化连接,意味着客户端和服务器可以同时发送和接收数据
认证方式
SFTP使用SSH 密钥、密码或其他身份验证方式进行用户认证
HTTP/HTTPS 支持多种认证方式,如基本认证、OAuth、API 密钥