how does a etag work in expressjs

前端 未结 1 1548
醉酒成梦
醉酒成梦 2020-12-14 06:05

Expressjs automatically send etags. I would like to know how the etag is generated..is it based on the content that is generated dynamically by the get routine. or is there

相关标签:
1条回答
  • 2020-12-14 06:45

    At the time of writing (8th July 2014), weak ETags are generated using CRC32 (source) and strong ETags are generated using MD5 (source).

    Based on what one of the contributors to Express says, you can specify whether to use the strong or weak ETags by:

    app.enable('etag') // use strong etags
    app.set('etag', 'strong') // same
    app.set('etag', 'weak') // weak etags
    

    It looks like you can also specify your own custom function to do the ETags like so:

    app.set('etag', function(body, encoding){ /* return valid etag */ });
    

    The NPM package fresh is also worth looking at, as it's used in Express for freshness checking (source1, source2).

    As for your application, remember that you can override any response headers e.g. res.set('etag', 'my-awesome-etag-value') before invoking res.send() (or similar function). Further discussion (including advantages and disadvantages) can be found here: https://github.com/visionmedia/express/issues/2129#issue-34053148

    0 讨论(0)
提交回复
热议问题