<div dir="ltr">Hi all,<br><br>Elliot[1] and I have been digging into the HTTP(S) server implementation provided by the jdk.httpserver module.<br><br>It hasn't taken long to notice that the provided implementation is...lacking. Both in performance, as it places extremely low and errors out on benchmarks [2][3], and in polish, as doing relatively simple tasks like printing out the result of HttpExchange#getRequestHeaders() does not actually include the headers in the output.<br><br>But, the actual API isn't wretched. The overall design (with a Filter chain and a mutable "out" object for responses) is reminiscent of Servlets and there is an SPI hook to provide custom server implementations. And unlike the jwebserver tool, which is built on this, there isn't a "for education purposes only" sign anywhere and it is part of an exported and supposedly supported module.<br><br>All that is to ask - does anyone on this mailing list have any historical context on this? Why was it added to the JDK, what were the goals of its implementation, are there any records of the decision process behind its design?<br><br>Separately is there any appetite for improving the performance of the built-in server implementation?<br><br><br>[1]: <a href="https://github.com/ebarlas/microhttp" target="_blank">https://github.com/ebarlas/microhttp</a><br>[2]: <a href="https://www.techempower.com/benchmarks/#hw=ph&test=plaintext&section=data-r22" target="_blank">https://www.techempower.com/benchmarks/#hw=ph&test=plaintext&section=data-r22</a><br>[3]: <a href="https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Java/httpserver" target="_blank">https://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/Java/httpserver</a><br></div>