Google chrome 带有大json响应的HTTPS请求无法下载[Tomcat]

Google chrome 带有大json响应的HTTPS请求无法下载[Tomcat],google-chrome,https,tomcat7,Google Chrome,Https,Tomcat7,我在Tomcat 7.0.75上部署了一个spring boot web应用程序,我们最近使用https对其进行了保护,它具有以下server.xml: <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="50" server="web" allowTrace="false" keystoreFile="/app/certs/keystore.jks" keystore

我在Tomcat 7.0.75上部署了一个spring boot web应用程序,我们最近使用https对其进行了保护,它具有以下server.xml:

<Connector port="8443"
  protocol="HTTP/1.1"
  SSLEnabled="true"
  maxThreads="50"
  server="web"
  allowTrace="false"
  keystoreFile="/app/certs/keystore.jks"
  keystorePass="wouldntYouLikeToKnow"
  scheme="https"
  secure="true"
  clientAuth="false"
  sslProtocol="TLS"
  sslEnabledProtocols="TLSv1.1,TLSv1.2"
  ciphers="TLS_...SHA"
  maxSwallowSize="-1"
  connectionTimeout="20000"
  maxKeepAliveRequests="100"
  socket.soKeepAlive="true"/>`

您可以增加tomcat的默认超时时间。如果您可以使用像ngnix这样的负载平衡器,您可以面对这个问题,因为它的默认超时时间间隔为1分钟。

您是否在前面使用负载平衡器?您是否使用本机连接器?如果使用curl会发生什么?响应中是否有内容长度标题?是否有gzip/放气压缩?如果您检查响应,它是否完全发送,但最后阻塞?是的,我们使用负载平衡器。我们只使用Tomcat的可配置http连接器,如配置中所示。如果我使用curl,它会在响应中显示一堆json,然后在json中的特定点停止。curl命令永远不会终止。不幸的是,我无法在Chrome中看到响应。这只是一张空白的账单。IE显示了一大块,但不是所有预期的响应。响应上没有内容长度标头。我尝试过使用/不使用gzip,但没有任何区别。响应只是部分JSON,它终止于JSON条目的中间。用CURL可以检查内容大小标头吗?并检查真正发送的内容(是否停止在确切的内容大小?)。是否有可能您有一个内容大小标题,但模式似乎是分块的?前面的负载平衡器是什么?它是否像浏览器->https->负载平衡器(在https模式下)->https->tomcat(连接器https)[在这种模式下,负载平衡器侦听https,转换它,然后在tomcat上调用新的ssl连接]?是否可以直接对tomcat进行curl查询,并与curl对负载平衡器进行比较?@wargre我在最近的编辑中包括了对lb服务器的curl命令。响应上没有内容大小标题。我的JSON响应中没有一个在http或https中包含内容大小头。JSON响应下载似乎每次都停在完全相同的位置。我相信您已经准确地描述了https流。实际上,我不能直接卷曲到Tomcat,但只能通过lb服务器,所以这是一个笨拙的响应。内容长度不存在,因此2模式之间不兼容。很久以前,由于我的负载平衡器,我遇到了一个类似于分块流的问题。检查那里是否没有bug。您还可以尝试在http中使用https->LB->tomcat,而在https中使用oposite:http->LB->tomcat可能会有一个问题。
curl -X GET   https://host.com/context   -H 'accept: application/json, 
text/plain, */*'   -H 'cache-control: no-cache'   -H 'token: 12acdee7-ef76-
4147-98d2-d90e4414d4e6'   -H 'user-name: vn62253'   -H 'user-security-id: 1' 
-k -I

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, PUT, GET, HEAD, OPTIONS, DELETE
Access-Control-Expose-Headers: Content-disposition, Content-Type
Access-Control-Allow-Headers: Origin, Accept, X-Requested-With, Content-
Type, Access-Control-Request-Method, Access-Control-Request-Headers, User-
Security-Id, Token, User-Name, Client-TZ-Offset
X-Application-Context: Compliance_WS:8765
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Vary: Accept-Encoding
Date: Tue, 29 Aug 2017 14:33:47 GMT
Server: web