Heroku 路由器关闭持续 http/1.1 连接请求?
Heroku router closing persistent http/1.1 connection requests?
我有一个托管在 Heroku 上的应用程序,它似乎正在向 HTTP/1.1 连接请求的响应 header 添加一个 Connection:close,并且不允许我们re-use 持久 HTTP/1.1 连接。这适用于我在 Heroku 上拥有的其他应用程序,但我不明白为什么它会为此应用程序执行此操作。有什么线索吗?
因此,如果我尝试使用 curl 进行测试,
curl -v "http://myapp.herokuapp.com/api/posts/trending" "http://myapp.com/api/posts/trending"
* Connected to myapp.herokuapp.com () port 80 (#0)
> GET /api/posts/trending HTTP/1.1
> User-Agent: curl/7.37.1
> Host: myapp.herokuapp.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: close
< Date: Mon, 09 Mar 2015 20:54:15 GMT
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Expires: 0
< Content-Type: application/json;charset=UTF-8
* Server Jetty(9.2.7.v20150116) is not blacklisted
< Server: Jetty(9.2.7.v20150116)
< Via: 1.1 vegur
...response...
* Closing connection 0
在这里回答我自己的问题,根据 Heroku 支持,这是 Heroku 路由器的已知限制,因为 Jetty 不会在 HTTP/1.1 请求的响应中发送 Connection: keep-alive 设计.目前没有建议的解决方法。
我有一个托管在 Heroku 上的应用程序,它似乎正在向 HTTP/1.1 连接请求的响应 header 添加一个 Connection:close,并且不允许我们re-use 持久 HTTP/1.1 连接。这适用于我在 Heroku 上拥有的其他应用程序,但我不明白为什么它会为此应用程序执行此操作。有什么线索吗?
因此,如果我尝试使用 curl 进行测试,
curl -v "http://myapp.herokuapp.com/api/posts/trending" "http://myapp.com/api/posts/trending"
* Connected to myapp.herokuapp.com () port 80 (#0)
> GET /api/posts/trending HTTP/1.1
> User-Agent: curl/7.37.1
> Host: myapp.herokuapp.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: close
< Date: Mon, 09 Mar 2015 20:54:15 GMT
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Expires: 0
< Content-Type: application/json;charset=UTF-8
* Server Jetty(9.2.7.v20150116) is not blacklisted
< Server: Jetty(9.2.7.v20150116)
< Via: 1.1 vegur
...response...
* Closing connection 0
在这里回答我自己的问题,根据 Heroku 支持,这是 Heroku 路由器的已知限制,因为 Jetty 不会在 HTTP/1.1 请求的响应中发送 Connection: keep-alive 设计.目前没有建议的解决方法。