websocket vs http vs spdy [关闭]
Posted
技术标签:
【中文标题】websocket vs http vs spdy [关闭]【英文标题】:websocket vs http vs spdy [closed] 【发布时间】:2016-05-08 05:52:15 【问题描述】:我对 Web 开发很陌生。我已经阅读了有关 Web 数据交换的不同方法。现在我发现人们通常发明了三种网络协议:http、websocket和spdy。现在我被困住了。如果我可以选择实现自己的应用程序 - 使用哪个协议?据说 http 与其他的相比非常古老且缓慢。另一方面,我在互联网上找不到很多 websocket 或 spdy 的例子。
【问题讨论】:
不同的协议有不同的优势。因此,使用什么的答案实际上取决于您要做什么。在您描述您实际尝试使用“网络数据交换”做什么之前,我认为我们无法真正帮助您。这是从浏览器到服务器,从服务器到浏览器,从应用程序到服务器,从服务器到服务器吗?而且,数据多久发送一次?数据有多大?您是否需要将数据从一端“推送”到另一端,或者一侧需要新数据时只需请求数据? 我要开始项目了。我想要创建的 - 现代最新技术网站。我希望它很快。预计没有大数据。我不希望客户需要来自网站的最新统计数据。 【参考方案1】:现代浏览器中的所有请求都以 HTTP/1.1 开头
HTTP/1.1 是现代网络的事实标准。为了获得广泛的浏览器支持,您的应用程序必须支持 HTTP/1.1。
SPDY、HTTP/2 和 WebSockets 是大多数现代浏览器支持的协议。使用这些协议的请求以 HTTP/1.1 请求开始,如果浏览器和服务器都支持该协议,则会升级。
大多数时候,这些协议的实际实现留给 Web 服务器,例如 Apache 或 nginx。首先,决定你想用什么语言来写你的应用程序。接下来,研究如何配置您的网络服务器以使用您的语言。
HTTP/1.1、SPDY 和 HTTP/2 用于加载资源
当您在浏览器中访问页面时,会通过 HTTP 下载该页面。页面引用的任何脚本、样式表、图像等也通过 HTTP 加载。
如果您想从更快的页面加载协议中受益,请研究如何为您的网络服务器启用 HTTP/2。 HTTP/2 基于 SPDY 并得到了标准委员会的批准。它在最新版本的 Apache 和 NGINX 中受支持,但要求网站通过 SSL/TLS 提供服务。
Web Sockets 由脚本启动
一旦您的应用程序加载完毕,页面上的脚本就可以启动 Web Socket 连接。只要页面打开,此连接就会保持打开状态,以便在浏览器和服务器之间执行实时通信。
您通常只会在单页应用程序 (SPA) 中使用 Web 套接字。如果您在前端使用 javascript 框架,例如 AngularJS 或 React,请研究如何通过该框架实现 Web Sockets。您还需要在您的服务器上配置一个 Web 套接字处理程序,并且可能需要在您的 Web 服务器上配置一个 Web 套接字代理。
【讨论】:
以上是关于websocket vs http vs spdy [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何理解 TCP/IP,SPDY,WebSocket 三者之间的关系