我试图了解什么是HTTP流水线和HTTP保持活动连接,并尝试在这两个主题和Server Sent事件技术之间建立连接.
据我所知,当建立的一次TCP连接用于逐个发送多个HTTP请求时, HTTP保持连接是HTTP 1.1使用TCP的默认方式. HTTP流水线操作是客户端向服务器发送请求的功能,而使用相同的TCP连接尚未收到对先前请求的响应,通常不会在浏览器中用作默认方式.
我的问题:
1)如果可以使用一个TCP连接一个接一个地向服务器发送多个请求 - 客户端如何区分响应?我猜客户端正在使用FIFO顺序发送服务器的响应?
2)为什么非幂等请求(如POST请求)不应该被流水线化(根据维基百科)?
3)Web服务器的局限性是什么:可能的开放TCP连接数量是多少?如果是,那么如果某些客户端持有保持活动连接,则其他客户端无法建立连接,这可能会导致问题,对吧?
4)Server Sent Events正在使用keep-alive连接,但据我所知,SSE没有使用流水线技术.相反,他们设法处理对一个请求的多个响应,或者他们只是在下一个事件响应到达时发送另一个请求.哪种猜测是正确的?
5)一个TCP连接意味着一个插座?一个套接字意味着一个TCP连接?关闭/打开套接字意味着关闭/打开TCP连接?