in reply to keeping connection alive while spending time building a zip file

How about having a backend process take care of building the zip file and poll it from the web app to see how far along it is, then once it's done redirect the client to the file?

Three thousand years of beautiful tradition, from Moses to Sandy Koufax, you're god damn right I'm living in the fucking past