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