Can a http server detect that a client has cancelled their request?
Posted
by Nick Retallack
on Stack Overflow
See other posts from Stack Overflow
or by Nick Retallack
Published on 2010-04-16T10:11:22Z
Indexed on
2010/04/16
10:13 UTC
Read the original article
Hit count: 343
http
|request-cancelling
My web app must process and serve a lot of data to display certain pages. Sometimes, the user closes or refreshes a page while the server is still busy processing it. This means the server will continue to process data for several minutes only to send it to a client who is no longer listening.
Is it possible to detect that the connection has been broken, and react to it?
In this particular project, we're using Django and NginX, or Apache. I assumed this is possible because the Django development server appears to react to cancelled requests by printing Broken Pipe exceptions. I'd love to have it raise an exception that my application code could catch.
Alternatively, I could register an unload event handler on the page in question, have it do a synchronous XHR requesting that the previous request from this user be cancelled, and do some kind of inter-process communication to make it so. Perhaps if the slower data processing were handed to another process that I could more easily identify and kill, without killing the responding process...
© Stack Overflow or respective owner