* Fixed bug 69076 (http\Url throws Exception on empty querystring) (p at wspnr dot com)
* Fixed bug 69313 (http\Client doesn't send GET body)
+ Added libidn2 and UIDNA as fallbacks for IDN support
- Deferred warnings/exceptions of the client, so callbacks for the currently failing requests will still be called

Extended HTTP support. Again. Keep in mind that it's got the major version 2, because it's incompatible with pecl_http v1.

* Introduces the http namespace.
* Message bodies have been remodeled to use PHP temporary streams instead of in-memory buffers.
* The utterly misunderstood HttpResponse class has been reimplemented as http\Env\Response inheriting http\Message.
* Currently, there's only one Exception class left, http\Exception.
* Errors triggered by the extension can be configured statically by http\Object::$defaultErrorHandling or inherited http\Object->errorHandling.
* The request ecosystem has been modularized to support different libraries, though for the moment only libcurl is supported.

+ Added population of $_POST and $_FILES for non-POST requests
- Renamed http\Env\Request::getPost() to ::getForm()
- Changed http\Env\Response::setContentDisposition() to take an http\Params like array as argument
- Removed http\Env\Response::CONTENT_DISPOSOTION_* constants
- Removed http\Request\Method class; request methods are now used as simple strings

This is to become v2 of the known pecl_http extension.
It is completely incompatible to previous version.
Try it, or let it be. If you are not sure, let it be. Really.

List of changes (TBD):
* Everything lives below the http namespace
* The message body is implemented as a temp stream instead of a chunk of memory
* The utterly misunderstood HttpResponse class has been reimplemented in the http\env namespace
* There's only http\Exception
* Every instance follows http\Object::$defaultErrorHandling or inherited http\Object->errorHandling, but only for errors generated by the extension itself
* You have to use the http\Request\Factory to create your requests/pools/datashares

This is to become v2 of the known pecl_http extension.
It is completely incompatible to previous version.
Try it, or let it be. If you are not sure, let it be. Really.

List of changes (TBD):
* Everything lives below the http namespace
* The message body is implemented as a temp stream instead of a chunk of memory
* The utterly misunderstood HttpResponse class has been reimplemented in the http\env namespace
* There's only http\Exception
* Every instance follows http\Object::$defaultErrorHandling or inherited http\Object->errorHandling, but only for errors generated by the extension itself
* You have to use the http\Request\Factory to create your requests/pools/datashares

This is to become v2 of the known pecl_http extension.
It is completely incompatible to previous version.
Try it, or let it be. If you are not sure, let it be. Really.

List of changes (TBD):
* Everything lives below the http namespace
* Supported request libraries: curl, neon
* The message body is implemented as a temp stream instead of a chunk of memory
* The utterly misunderstood HttpResponse class has been reimplemented in the http\env namespace
* There's only http\Exception
* Every instance follows http\Object::$defaultErrorHandling or inherited http\Object->errorHandling, but only for errors generated by the extension itself

This is to become v2 of the known pecl_http extension.
It is completely incompatible to previous version.
Try it, or let it be. If you are not sure, let it be. Really.

List of changes (TBD):
* Everything lives below the http namespace
* Supported request libraries: curl, neon
* The message body is implemented as a temp stream instead of a chunk of memory
* The utterly misunderstood HttpResponse class has been reimplemented in the http\env namespace
* There's only http\Exception
* Every instance follows http\Object::$defaultErrorHandling or inherited http\Object->errorHandling, but only for errors generated by the extension itself

- Don't pretend anylonger to understand 'compress' Content-Encoding
- Sending an User-Agent can now be prevented by setting 'useragent' to NULL or empty string. (Ilia)
- Changed http_redirect() to PHPs behaviour by default
- Changed configure to enable curl and zlib functionality by default
- Changed http_build_url() to accept a flag that defines what parts and how they are replaced/merged

- Removed support for etag hashing through libmhash
- Removed HTTP_ETAG_* and HttpResponse::ETAG_* constants
- Changed http.etag_mode INI setting to acccept a string specifying the
hash algorithm to use for generating etags.
CRC32, MD5 and SHA1 are available out of the box with MD5 being the default.
If pecl/hash is available, any algorithm this extension provides can be used.

- License changed from PHP license to revised BSD license!
- HttpMessage properties are not accessible by reference or array index/key!
- HttpRequest history logging is disabled by default!
- HttpRequestPool is not clonable!

* Fixed a bug where HttpRequest warnings were hidden within the HttpRequestPool
* Fixed shared build within the PHP source tree
* Fixed parallel build with ext/zlib on Win32
* Fixed object deallocation
* Fixed http_support() pretending no support for SSL in non-threadsafe builds
* Fixed the message parser to not choke on headers containing HTTP/1.x
* Fixed access to protected HttpMessage properties in extending classes
* Fixed lots of tests for the changed HTTP header order in PHP-5.1

* Improved the build system
* Imrpoved logging format
* Implemented SSL crypto locks for thread safe builds
* Fixed ridiculous low default transfer timeout of 3 seconds (set to 0 now)
* Fixed a bug where plain instead of more specific HttpExceptions were thrown
* Fixed a bug where entities that where not marked for being cached were
actually cached if an apropriate ETag or Last-Modified header was seen

* ctype is now mandatory
* implemented additional third/fourth informational parameter to http_(get|head|post*)
which will be filled with an associative array containing request/response information
* removed http_accept_ranges()
* output "Redirecting to URI." in http_redirect() for full RFC compliance
* fixed http_cache_last_modified(): if parameter was omitted, would have always sent 304 Not Modified
* added http_parse_headers()