Include ETag in HEAD requests

backport of commit 3c7310ebcb
This commit is contained in:
Tiago Relvao 2014-04-28 10:54:51 +01:00 committed by Douglas Christopher Wilson
parent d4a2843500
commit 3c0ec59432
3 changed files with 29 additions and 1 deletions

View File

@ -1,3 +1,8 @@
3.x
===
* Include ETag in HEAD requests
3.8.1 / 2014-05-27
==================

View File

@ -137,7 +137,7 @@ res.send = function(body){
// ETag support
// TODO: W/ support
if (app.settings.etag && len && 'GET' == req.method) {
if (app.settings.etag && len && ('GET' == req.method || 'HEAD' == req.method)) {
if (!this.get('ETag')) {
this.set('ETag', etag(body));
}

View File

@ -16,6 +16,29 @@ describe('HEAD', function(){
.head('/tobi')
.expect(200, done);
})
it('should output the same headers as GET requests', function(done){
var app = express();
app.get('/tobi', function(req, res){
// send() detects HEAD
res.send('tobi');
});
request(app)
.get('/tobi')
.expect(200, function(err, res){
if (err) return done(err);
var headers = res.headers;
request(app)
.get('/tobi')
.expect(200, function(err, res){
if (err) return done(err);
assert.deepEqual(res.headers, headers);
done();
});
});
})
})
describe('app.head()', function(){