X-Git-Url: https://git.m6w6.name/?p=mdref%2Fmdref-http;a=blobdiff_plain;f=http.md;h=7502c0f79809fb2560efec8ff43d2d9f7c52ace6;hp=e78795a39cdd97260beabcfee361844bd6903755;hb=HEAD;hpb=961f8a1687d70d07e07979cdd0c725f62ac4121f diff --git a/http.md b/http.md index e78795a..7502c0f 100644 --- a/http.md +++ b/http.md @@ -1,8 +1,8 @@ -# pecl/http v2 +# pecl/http ## About: -Extended HTTP support. Again. +Extended HTTP support. Again. * Introduces the http namespace. * PHP stream based message bodies. @@ -23,8 +23,9 @@ pecl/http depends on a number of system libraries and PHP extensions for special The following system libraries are required to build this extension: -=zlib= - Provides gzip/zlib/deflate encoding. +zlib +: Provides gzip/zlib/deflate encoding. + Configure: `--with-http-zlib-dir` Minimum version: 1.2.0.4 Install on Debian: `apt-get install zlib1g-dev` @@ -33,28 +34,68 @@ The following system libraries are required to build this extension: The following system libraries are optional and provide additional features: -=libidn= - Provides IDNA support in URLs. - Minimum version: none - Install on Debian: `apt-get install libidn11-dev` - -=libcurl= - Provides HTTP request functionality. +libcurl +: Provides HTTP request functionality. + Configure: `--with-http-libcurl-dir` Minimum version: 7.18.2 Install on Debian: `apt-get install libcurl4-openssl-dev` - Note: There are usually different styles of SSL support for libcurl available, so you can replace 'openssl' in the above command f.e. with 'nss' or 'gnutls'. -=libevent= - Eventloop support for the HTTP client. +libbrotli +: Provides brotli encoding. + Configure: `--with-http-libbrotli-dir` + Minimum version: 1.0 + Install on Debian: `apt-get install libbrotli-dev` + +libevent +: Internal event loop support for the HTTP client. + Configure: `--with-http-libevent-dir` Minimum version: none Install on Debian: `apt-get install libevent-dev` +libicu +: Provides IDNA2003 and/or IDNA2008 support in URLs. + Configure: `--with-http-libicu-dir` + Minimum version: none + Install on Debian: `apt-get install libicu-dev` + +libidn +: Provides IDNA2003 support in URLs. + Configure: `--with-http-libidn-dir` + Minimum version: none + Install on Debian: `apt-get install libidn11-dev` + +libidn2 +: Provides IDNA2008 support in URLs. + Configure: `--with-http-libidn2-dir` + Minimum version: none + Install on Debian: `apt-get install libidn2-0-dev` + +libidnkit +: Provides IDNA2003 support in URLs. Conflicts with libidnkit2. + Configure: `--with-http-libidnkit-dir` + Minimum version: none + Install on Debian: N/A + +libidnkit2 +: Provides IDNA2008 support in URLs. Conflicts with libidnkit. + Configure: `--with-http-libidnkit2-dir` + Minimum version: none + Install on Debian: N/A + +##### A note on IDNA libraries: + +If configured with multiple IDNA libraries' support, there's a run-time precedence of ICU over GNU libidn, which in turn has precendence over idnkit. If neither IDNA2008, nor IDNA2003 is explicitly requested, IDNA2008 has precendence. + +##### A note on the CURL library: + +There are usually different styles of SSL support for libcurl available, so you can choose between 'openssl' and f.e. 'nss' or 'gnutls' when installing libcurl. + ### PHP extensions: This extension unconditionally depends on the pre-loaded presence of the following PHP extensions: * raphf -* propro +* propro (only until < 4.0.0, resp. PHP 8) * spl @@ -62,28 +103,22 @@ If configured ```--with-http-shared-deps``` (default) it depends on the pre-load * hash * iconv -* json +* json (only until < 2.4.0) Please ensure that all extension on which pecl/http depends, are loaded before it, e.g in your `php.ini`: ; obligatory deps extension = raphf.so - extension = propro.so - + extension = propro.so (PHP < 8.0, ext-http < 3.0 only) + ; if shared deps were enabled extension = hash.so extension = iconv.so extension = json.so - + ; finally load pecl/http extension = http.so -## Conflicts: - -pecl/http-v2 conflicts with the following extensions: - -* http-v1 -* event (only until <= 2.0.3) ## INI Directives: @@ -105,6 +140,16 @@ The http extension registers the ```http.*``` namespace for its stream filters. ## Changelog: -Version | Change ---------|------- -2.0.4 | Dropped the pecl/event conflict. +0. v2.0.4 + * Dropped the pecl/event conflict. +0. v2.4.0 + * Dropped the ext/json dependency. +0. v2.4.2 + * Added libidn2 and libicu as fallback for IDNA support. +0. v2.6.0, v3.1.0 + * Added idnkit-1 IDNA2003 support. + * Added idnkit-2 IDNA2008 support. + * Added ICU IDNA2008 support. + * Added explicit configuration options for each IDNA library. +0. v3.2.0 + * Added brotli encoding support.