fengzhao / fengzhao/fengzhao-notes

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

Aberta
#3 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Shell
Estrelas
16
Forks
1
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

- **浏览器与服务器建立一个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请求的,

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.