面试题答案
一键面试优化思路
- 启用HTTP/1.1的持久连接:HTTP/1.1默认开启持久连接,使得TCP连接在多个请求 - 响应周期内保持打开状态,避免了每次请求都建立新的TCP连接的开销。
- 使用HTTP/2:HTTP/2 进一步优化了连接复用,采用多路复用技术,在单个TCP连接上可以同时发送多个请求和接收多个响应,避免了队头阻塞问题。
涉及的HTTP头部字段及其作用
-
Connection:
- 在HTTP/1.1中,若设置为“keep - alive”,表示客户端或服务器希望维持持久连接,以便后续请求复用该TCP连接。
- 在HTTP/2中,该字段不再用于控制连接的持久化,而是用于传递与连接管理相关的其他指令,如“upgrade”等。
-
Keep - Alive:
- 用于HTTP/1.1持久连接中,可设置一些参数,如“Keep - Alive: timeout = 5, max = 100”,其中“timeout”指定连接在空闲状态下保持打开的时间(单位为秒),“max”指定该连接可处理的最大请求数。
-
Pragma:在HTTP/1.1早期,“Pragma: no - cache”可用于阻止中间缓存,同时也可能对连接复用有一定影响,确保请求直接发送到服务器,有利于在某些场景下复用连接。