HTTP TCP和WEB SOCKET

如果我错了,请纠正我。 在Web应用程序中使用HTTP协议的优点之一是最大限度地减少客户端之间的服务器资源份额。 即使有数千个同时连接,由于HTTP的这种无状态特性,服务器上的负载也会大大降低。

另一方面,如果连接是有状态的(例如TCP),那么服务器将需要打开并保持数千个请求的连接处于活动状态,从而导致服务器上的巨大负载。 因此,为了让HTTP在Web应用程序中处于无状态,这是一个完美的理解。

我的疑惑是关于Web套接字,如果Web套接字使用TCP实现客户端和服务器之间的实时通信,那么对于任何基于Web的实时应用程序,如何成为一个不错的选择(考虑服务器上的负载)? Web套接字服务器处理多个连接的负载如何?


HTTP操作不一定是轻量级或短命的; 有很多Web应用程序在服务表面上无状态的请求时会占用大量资源。 Web套接字实际上可能比HTTP更高效,这取决于情况 - 新的HTTP连接和服务器端响应的孤立处理,可能比将客户端连接到服务器进程的长期套接字贵得多,而服务器进程能够在没有新连接和数据封送的开销的情况下传输数据。 它实际上取决于数据类型 - 规范的websockets示例是实时聊天,其中完整web请求的开销(或等待时间)用于查看新的聊天消息将远远大于pub-sub类型的可以复用向现有websockets的全部新消息。

WebSockets或“Restful”HTTP是更高性能还是更高效的问题在很大程度上取决于场景。


HTTP是通过TCP。

简单地保持连接的开放并不一定需要大量的资源。 但是,它通常需要不同的线程/ IO模型来处理这些连接。 例如,这为java的异步和非阻塞io驱动了很多nio更改。

链接地址: http://www.djcxy.com/p/44817.html

上一篇: HTTP TCP AND WEB SOCKET

下一篇: websockets with load balancer scalability