Sending a SIGKILL is an unfriendly way to end a process -- it causes the kernel to immediately terminate the process, without giving the process any chance to clean up. SIGKILL is thus not one of the signals handled specially by Apache HTTP Server. For a list of the signals that are handled specially, see http://httpd.apache.org/docs/2.2/stopping.htmlif a server is killed (SIGKILL) during a "large" static file transfer, then the client is not notified by his browser that file has not been completely downloaded. On Win it just says it is not a valid Win32 application or corrupted or sth.
Now I know this is not a general problem and a graceful restart is the way to go around this, but if I do an upgrade then proper restart is required, or at least I think I remember I had problems with graceful restart in such situations.
If you'd like to completely stop Apache HTTP Server so you can manually restart it later, then sending SIGWINCH will cause httpd to exit gracefully after completing any current requests or after GracefulShutdownTimeout is reached, whichever comes first. Alternatively, you can cause httpd to exit more quickly, interrupting any current requests, by sending it a SIGTERM. I don't know for sure if either of these will cause a TCP RST to be sent to the client, but I think the odds are better than if you used a SIGKILL.