tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Miller" <millebi.subscripti...@gmail.com>
Subject RE: How to cancel download on the server side
Date Wed, 15 Jun 2016 14:06:16 GMT
Do you have the ability to have multiple client-server connections open? You could have a second
channel to the server that can communicate the status to the client and when/if there is a
problem indicate through that status channel that the download has been truncated. Not the
greatest idea because it will require multiple connections to the server which could overload
your server AND it may not be cluster friendly if that matters.

Bill

-----Original Message-----
From: Steffen Heil (Mailinglisten) [mailto:lists@steffen-heil.de] 
Sent: Wednesday, June 01, 2016 5:28 PM
To: Tomcat Users List
Subject: AW: How to cancel download on the server side

Hi


> I believe that, while the HTTP specification supports what you want to do, neither servers
nor clients support it. For example, you can
> use "trailers" (headers end the end of the response) to tell the client what happened,
but I suspect that no client will actually read
> them or act on them.

I did not even know such things exist.
A quick google check seems to indicate that you are right: No real client supports them in
a way usable for me.


> You can always force a disconnect by simply closing the response stream. Usually, the
client will either tell the user that the download
> failed (connection closed before response - or chunk of response - completed), more likely
just shows the user a blank page or saves
> an incomplete file.

That's another story.
I tried that. And the internet explorer as well as curl report an error, if the download stops
without the ending 0\r\n.

But I had to set "Connection: close" and "Transfer-Encoding: chunked" myself and encode the
chunk headers myself.
If I leave these two headers out, tomcat managed the transfer-encoding (as I set no Content-Length
header) which I would prefer.
However then I find no way to close the connection. If I call "close()" on the OutputStream
tomcat sends 0\r\n.
Even if I throw an exception, tomcat "correctly" closes the stream.
I did not find any way to close it without that.

Is there any way to do so?


Regards,
  Steffen



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message