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: 313

Filed under:
|

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

Related posts about http

Related posts about request-cancelling