http - websocket、http、spdy

标签 http websocket spdy

我对网络开发还很陌生。我读过有关 Web 数据交换的不同方法。目前我发现人们通常发明了三种网络协议(protocol):httpwebsocketspdy。现在我被困住了。如果我可以选择实现自己的应用程序 - 使用哪个协议(protocol)?据说 http 与其他相比非常古老且缓慢。另一方面,我在互联网上找不到很多使用 websocketspdy 的示例。

最佳答案

现代浏览器中的所有请求均以 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/

相关文章:

android - 在 Android 中自动处理 gzip http 响应

javascript - chrome 在 WebSocket 握手期间出现新错误

websocket - 将 WebSockets 与代理和负载平衡器一起使用有什么问题?

javascript - 多个 Websocket

Spring 集成 HTTP 到 Scatter Gather

javascript - 通过电子邮件激活用户

apache - 从安全 (https) 重定向到不安全内容 (http)

spdy - 如果服务器实现 spdy/3 而浏览器只支持 spdy/2 会发生什么?

websocket - SPDY 作为 Websockets 的替代品?

http - 有没有办法检测网站是否使用 SPDY?