The paper showed the performance of several highly optimized user-mode Web servers, comparing these servers to multiple kernel-mode Web servers while holding TCP/IP and network driver implementations fixed. The paper concludes that the best performing user-mode Web servers are at least two times slower than the faster kernel-mode server on the same hardware and unmodified operating system. The best kernel-mode results were achieved using a software interrupt approach where responses are sent on software interrupt (Linux bottom half handler or Windows 2000 deferred procedure call) rather than a separately scheduled thread. The results showed that software interrupt based kernel-mode servers perform 10% to 20% better than Overall, the best performing Web servers share three attributes. First, they use a zero copy interface between cache and network without TCP checksum computation to efficiently serve responses greater than 4 kB in size. Second, these servers use an efficient event notification mechanism to serve responses less than 4 kB in size with minimal scheduling overhead. Third, these servers minimize communication code path using new socket APIs or eliminating the socket layer altogether.