我对网络开发还很陌生。我读过有关 Web 数据交换的不同方法。目前我发现人们通常发明了三种网络协议(protocol):http、websocket 和spdy。现在我被困住了。如果我可以选择实现自己的应用程序 - 使用哪个协议(protocol)?据说 http 与其他相比非常古老且缓慢。另一方面,我在互联网上找不到很多使用 websocket 或 spdy 的示例。
最佳答案
现代浏览器中的所有请求均以 HTTP/1.1 开头
HTTP/1.1 是现代网络事实上的标准。为了获得广泛的浏览器支持,您的应用程序必须支持 HTTP/1.1。
SPDY、HTTP/2 和 WebSocket 是大多数现代浏览器支持的协议(protocol)。使用这些协议(protocol)的请求以 HTTP/1.1 请求开始,如果浏览器和服务器都支持该协议(protocol),则会升级。
大多数时候,这些协议(protocol)的实际实现都是由 Web 服务器完成的,例如 Apache 或 NGINX。首先,决定您要使用什么语言来编写您的应用程序。接下来,研究如何配置您的网络服务器以使用您的语言。
HTTP/1.1、SPDY和HTTP/2用于加载资源
当您访问浏览器中的页面时,该页面是通过 HTTP 下载的。页面引用的任何脚本、样式表、图像等也通过 HTTP 加载。
如果您想受益于更快的页面加载协议(protocol),请研究如何为您的网络服务器启用 HTTP/2。 HTTP/2 基于 SPDY 并得到标准委员会的批准。它在最新版本的 Apache 和 NGINX 中受支持,但要求网站通过 SSL/TLS 提供服务。
Web 套接字由脚本启动
应用程序加载后,页面上的脚本就可以启动 Web Socket 连接。只要页面打开,此连接就会保持打开状态,以在浏览器和服务器之间执行实时通信。
您通常只会在单页应用程序 (SPA) 中使用 Web 套接字。如果您的前端使用 Javascript 框架(例如 AngularJS 或 React),请研究如何通过该框架实现 Web 套接字。您还需要在服务器上配置 Web 套接字处理程序,并且可能需要在 Web 服务器上配置 Web 套接字代理。
关于http - websocket、http、spdy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35102417/