kjdev / php-ext-brotli

Brotli Extension for PHP
MIT License
168 stars 29 forks source link

Do we have automatic header detection? #52

Open dinamic opened 6 days ago

dinamic commented 6 days ago

I'm working on a custom http client that'd support gzip as well as brotli. I'm parsing the http request headers and upon processing the headers I'm trying to apply a stream filter depending on the Content-Encoding header the server sent.

I noticed we've got automatic header detection with zlib.

See https://www.zlib.net/manual.html#Advanced definition of inflateInit2.

Add 32 to windowBits to enable zlib and gzip decoding with automatic header detection

In this PHP this can be used as:

stream_filter_append($stream, 'zlib.inflate', STREAM_FILTER_READ, ['window' => 15 + 32]);

Do we have means to do automatic header detection with Brotli? What a suggested approach would look like?

Thanks 🙏

kjdev commented 5 days ago

Unfortunately it doesn't seem to support detection of compressed files.

https://github.com/google/brotli/issues/867

dinamic commented 5 days ago

@kjdev https://github.com/google/brotli/issues/867 says that the comment option was added. Doesn't this mean the magic bytes were added and could be used to detect compressed files?

Turns out I wouldn't need the functionality, but it could be a nice feature to have.