Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/igrigorik/webp-detect

WebP with Accept negotiation
https://github.com/igrigorik/webp-detect

Last synced: 15 days ago
JSON representation

WebP with Accept negotiation

Awesome Lists containing this project

README

        

# WebP with Accept negotiation

A collection of configuration scripts for serving WebP assets:

- Check if the client advertises "image/webp" in Accept header
- If WebP is supported, check if the local WebP file is on disk, and serve it
- If server is configured as proxy, append a "WebP: true" header and forward to backend
- Append "Vary: Accept" to the client response

Above sequence of steps allows [transparent Accept negotiation of WebP assets](http://www.igvita.com/2013/05/01/deploying-webp-via-accept-content-negotiation/) - no need to modify your existing applications. Either pregenerate the WebP files, or serve WebP files dynamically to approriate clients.

## Getting started

Download or copy the configuration file and run your server. For example:

```
$> nginx -c /path-to/webp-detect/nginx.conf
$> varnishd -a :8081 -T localhost:6082 -F -f varnish.vcl
```

With the above in place, access the page and look at the request header appended by the server - you will see a new `WebP` header sent to your application server if the browser supports WebP.

### What about server X?

* See list of included server configurations above.
* Connect middleware (node.js): https://github.com/msemenistyi/connect-image-optimus
* ... please send a pull request!