httpd icon indicating copy to clipboard operation
httpd copied to clipboard

precompressed static files

Open anatoli26 opened this issue 6 years ago • 4 comments

I know the answer about dynamic compression (#21). What about serving precompressed static files like the nginx 's gzip_static module (https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html)?

Basically, if the client asks for /styles.css while indicating in Accept-Encoding that it's willing to accept gzip and there's /styles.css.gz file on disk, the server takes this .gz file and serves it to the client with a corresponding Content-Encoding header.

anatoli26 avatar Jul 24 '19 07:07 anatoli26

Perhaps this could be done in an encoding-agnostic way?

I'd think of it something like encoding "gzip" suffix ".gz" would do so with gzip, although you could also do encoding "compress" suffix ".lzma" for example.

clarfonthey avatar Dec 08 '19 02:12 clarfonthey

Perhaps this could be done in an encoding-agnostic way?

Good idea. There could be multiple directives for this functionality, like gzip_static on, lzma_static on, etc.

anatoli26 avatar Dec 09 '19 03:12 anatoli26

And too, about precompressed static files with brotli.

hucste avatar May 08 '20 12:05 hucste

There could be multiple directives

IMHO any directives aren't needed and it's better to have a file names convention to keep httpd plain. When GET /some_file.txt can just check if there is a /some_file.txt.gz or /some_file.txt.br and return it's content. Other compression algorithms (LZ4, deflate) doesn't make any sense for pre-compresses files. Only Opera browser supports LZMA and maybe in future zstd will be supported by browsers.

Even if user do want to get the /some_file.txt.gz archive itself it still can get it because there is no /some_file.txt.gz.gz in the same folder.

Such approach is used in BusyBox htttpd.

stokito avatar Sep 06 '21 09:09 stokito