Added early check for null host when creating requests in HttpClient.
Added test for incorrect IDN redirect.
Signed-off-by: Konstantin Gribov <grossws@gmail.com>
Reviewed-by: Simone Bordet <simone.bordet@gmail.com>
Improved to the toString and dump output of connections, endpoints and channel to assist with debugging
made the SSL callbacks and runnables Invocable to avoid thread starvation.
Reduce the transformations needed on header fields, so they can be more often
set directly and no need to split and recombine.
The Content-Length field is added IF it is needed for framing or if it was explicitly set
The Transfer-Encoding: chunk field is used only as a hint that there is content.
Connection fields are used as is, but are checked for close and keep-alive
* Issue #382 Request compression
Added identity HttpInput.Interceptor
Moved GZIPContentDecoder to jetty-http
Reworking interceptor and GZIPContentDecoder to avoid data copies
Completed and tested GZIPContentDecoder
Implemented GzipHttpInputInterceptor
updated GzipHandler.java
updated gzip module
use common GZIP decoder
Gzip Bomb
handle read() after empty interception
Introduced overridable ContinueProtocolHandler.onContinue(), and
making sure that proxy servlets use a ContinueProtocolHandler
subclass to intercept 100 Continue responses from the server, so that
they can relay it properly to the client.
Make HttpClient#copyRequest to copy custom headers with the same values.
When original request contains some custom header, say `X-Custom`, than
HttpHeader object within a HttpField will be `null`. In such case
`newRequest.getHeaders().contains(field.getName(), value)` check returns
true when there are 2 and more custom headers with the same value. As a result
not all the custom headers are being copied to the new request.
Signed-off-by: Andriy Rosa <andriyrosa@gmail.com>