Yu-Jack
12/11/2017 - 3:40 PM

send-final.js

SendStream.prototype.setHeader = function setHeader(path, stat) {
    var res = this.res

    this.emit('headers', res, path, stat)

    if (this._acceptRanges && !res.getHeader('Accept-Ranges')) {
        debug('accept ranges')
        res.setHeader('Accept-Ranges', 'bytes')
    }

    if (this._cacheControl && !res.getHeader('Cache-Control')) {
        var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000)

        if (this._immutable) {
            cacheControl += ', immutable'
        }

        debug('cache-control %s', cacheControl)
        res.setHeader('Cache-Control', cacheControl)
    }

    if (this._lastModified && !res.getHeader('Last-Modified')) {
        var modified = stat.mtime.toUTCString()
        debug('modified %s', modified)
        res.setHeader('Last-Modified', modified)
    }

    if (this._etag && !res.getHeader('ETag')) {
        var val = etag(stat)
        debug('etag %s', val)
        res.setHeader('ETag', val)
    }
}