我正在尝试通过Spring Boot使用Keep-Alive,使用的配置来自:https://stackoverflow.com/a/31461882/5585182
# application.properties
server.connection-timeout=60000当我想要验证Apache基准测试连接是否处于活动状态时。
ab -v 2 -k -c 1 -n 10 http://localhost:8080/api/test我得到以下输出:
---
GET /api/test HTTP/1.0
Connection: Keep-Alive
Host: localhost:8080
User-Agent: ApacheBench/2.3
Accept: */*
---
LOG: header received:
HTTP/1.1 200
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Date: Wed, 27 Dec 2017 15:17:54 GMT
Connection: close正如你所看到的,它响应了Connection: close,有人知道为什么它不工作了吗?
发布于 2020-02-01 21:35:52
ab正在使用HTTP/1.0而不是HTTP/1.1。它发送了一个keep-alive报头,所以它应该仍然可以工作,因为Tomcat使用HTTP/1.0支持keep-alive:
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#HTTP/1.1_and_HTTP/1.0_Support
但我也在这里测试过了。ab没有keep-alive,但当使用telnet测试时,它可以与SpringBoot/tomcat一起工作:
$ telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1
Escape character is '^]'.
GET / HTTP/1.1
Host: www.myhost.de
HTTP/1.1 200
Cache-Control: no
...
Connection still openhttps://stackoverflow.com/questions/47994670
复制相似问题