All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.9.12 - 2021-07-01
- Fix a JSON detection issue in
HTTP.sniff
for negative numeric values (#730).
0.9.11 - 2021-06-30
- "Connection closed by peer" errors are now emitted as
Debug
-level messages (instead ofError
-level) (#727).
- Fix websocket disconnection errors (#723).
- Reduced allocations for some internals functions used for e.g. header comparison (#725).
0.9.10 - 2021-05-30
- Fix access logging to also log internal server errors (#717).
- Fix a possible crash in access logging of remote IP when the connection have been closed (#718).
0.9.9 - 2021-05-23
- Access logging functionality to
HTTP.listen
andHTTP.serve
(#713).
- Include
Host
header forCONNECT
proxy requests (#714).
0.9.8 - 2021-05-02
- URLs are now checked for missing protocol and hostname when making requests (#703).
- Fix an issue where relative HTTP 3xx redirects would not resolve the new URL correctly by upgrading the URIs dependency (#707).
- Fix automatic detection of filename in
HTTP.download
to (i) not include any query parameters and (ii) use the original request URL instead of any redirect URLs (#706).
- Improvements to internal allocation of buffers to decrease package load time (#704).
0.9.7 - 2021-04-28
- Implement
Sockets.getpeername(::HTTP.Stream)
for getting the client IP address and port from aHTTP.Stream
(#702).
0.9.6 - 2021-04-27
- New function
HTTP.statustext
for getting the string representation of a HTTP status code (#688). - New exception
ReadTimeoutError
which is thrown for request that time out (#693).
- Un-deprecate
HTTP.status
,HTTP.headers
,HTTP.body
,HTTP.method
, andHTTP.uri
(#682).
- Fixes and improvements to rate limiting in
HTTP.listen
andHTTP.serve
(#701).
0.9.5 - 2021-02-23
- Fix implicitly added
Host
header forHTTP.request
(and friends) to include the port for non-standard ports (#680).
0.9.4 - 2021-02-23
- NetworkOptions.jl's
verify_host
is now used for the default value for host verification (#678).
- Ignore
HTTP_PROXY
andHTTPS_PROXY
environment variables if they are set to the empty string (#674). - When trying to establish a connection, try all IP addresses found for the host instead of just the first one (#675).
0.9.3 - 2021-02-10
- New keyword
max_connections::Int
toHTTP.listen
for specifying maximum value of concurrent active connections (#647).
- The header
Accept: */*
is now added by default forHTTP.request
and friends (this mirrors the behavior of e.g.curl
and Python'srequest
) (#666).
0.9.2 - 2020-12-22
- If a proxy specification includes userinfo it is now added as the
Proxy-Authorization: Basic XXX
header (#640).
- Proxy specifications using the environment variables
HTTP_PROXY
/HTTPS_PROXY
are now checked, previously only the lowercase versionshttp_proxy
/https_proxy
where checked (#648).
0.9.1 - 2020-12-04
- TCP connections are now flushed on
closewrite
which can improve latency in some cases (#635). - Callbacks to
HTTP.listen
that never callsstartwrite
now throw and return500 Internal Server Error
to the client (#636). closebody
does not error if closing bytes could not be written (#546).
0.9.0 - 2020-11-12
- New keyword argument
on_shutdown::Union{Function,Vector{Function}}
toHTTP.listen
/HTTP.serve
for registering callback function to be run at server shutdown (#599). - New functions
insert_default!
andremove_default!
for inserting/removing layers in the default stack (#608). - New keyword argument
boundary
toHTTP.Form
for specifying the boundary for multipart requests (#613, #615).
- The internal
HTTP.URIs
module have been factored out to an independent package whichHTTP.jl
now depends on (#616).
- Fix a formatting bug in progress reporting in
HTTP.download
(#601). - Fix a case where bad HTTPS requests to would cause the HTTP.jl server to throw (#602).
- The correct host/port is now logged even if the server is provided with the
server
keyword argument toHTTP.listen
/HTTP.serve
(#611). - Fix some outdated internal calls that would throw when passing a
connect_timeout
toHTTP.request
and friends (#619).