Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 http1.0-1.1-2.0 对请求并发数和tcp连接 #3

Open
fengzhao opened this issue Nov 4, 2020 · 0 comments
Open

关于 http1.0-1.1-2.0 对请求并发数和tcp连接 #3

fengzhao opened this issue Nov 4, 2020 · 0 comments

Comments

@fengzhao
Copy link
Owner

fengzhao commented Nov 4, 2020

  • 浏览器与服务器建立一个TCP连接后,是否会在完成一个http请求后断开?什么条件下会断开?

在 HTTP/1.0 中,一个服务器在发送完一个 HTTP 响应后,会断开 TCP 连接。
但是这样每次请求都会重新建立和断开 TCP 连接,代价开销过大。所以虽然 HTTP 标准中没有设定,某些服务器对 Connection: keep-alive 的 Header 进行了支持。意思是说,完成这个 HTTP 请求之后,不要断开 HTTP 请求使用的 TCP 连接。这样的好处是连接可以被重新使用,之后发送 HTTP 请求的时候不需要重新建立 TCP 连接,以及如果维持连接,那么 SSL 的开销也可以避免。

持久连接:既然维持 TCP 连接好处这么多,HTTP/1.1 就把 Connection 头写进标准,并且默认开启持久连接,除非请求中写明 Connection: close,那么浏览器和服务器之间是会维持一段时间的 TCP 连接,不会一个请求结束就断掉。

默认情况下,新建立的 TCP 连接不会断开,只有在HTTP请求报头中主动声明 Connection: close 才会在请求完成后关闭连接。

  • 一个TCP连接可以同时发送几个HTTP请求?

在持久连接的情况下,一个tcp连接是可以发送多个HTTP请求的,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant