HTTPプロトコル仕様9.4 HEAD
に係るヘッド方法は、サーバが応答して メッセージボディを返してはならないことを除いて を取得することと同一です。 HEAD要求に応答してHTTP ヘッダーに含まれる メタ情報 は、GET要求に応答して送信された情報 と同一である必要があります(SHOULD)。 エンティティボディに関するメタ情報の取得には、 を含めることができます。 エンティティボディ自体を転送せずに要求によって暗示されます。 このメソッドは、 ハイパーテキストリンクの有効性、 アクセシビリティ、最近の の変更をテストするためによく使用されます。
HEAD要求に対する応答は、応答 に含まれる情報は、そのリソースから先に キャッシュ済みエンティティを更新するために使用され得るという意味で キャッシュ可能であるかもしれ。 場合は、新たなフィールド値は、キャッシュ が扱わなければならない(コンテンツ長、コンテンツ-MD5、 のETagまたはLast-Modifiedの中 変化によって示されることになるよう) キャッシュされたエンティティが現在の エンティティとは異なることを示していますキャッシュエントリは無効です。
サーバーがこれに正しく応答しない場合は、運が悪いと思われますか? 次は単純にgoogle.request('HEAD'
代わり
いくつかのコードgoogle.request('GET'
の私は下に次の試験を使用します。 fake.jsはexpressを使ってテストする偽のサーバです。
fake.js:
var HOST = 'localhost';
var PORT = 3000;
var connections = 0;
var express = require('express');
var app = module.exports = express.createServer();
if (process.argv[2] && process.argv[3]) {
HOST = process.argv[2];
PORT = process.argv[3];
}
app.use(express.staticProvider(__dirname + '/public'));
// to reconnect.
app.get('/small', function(req, res) {
console.log(req.method);
if (req.method == 'HEAD') {
console.log('here');
res.send('');
} else {
connections++;
res.send('small');
}
});
app.get('/count', function(req, res) {
res.send('' + connections);
});
app.get('/reset', function(req, res) {
connections = 0;
res.send('reset');
});
if (!module.parent) {
app.listen(PORT, HOST);
console.log("Express server listening on port %d", app.address().port)
}
test.jsのhttp-クライアントから頭をテストすることです。 試験。JS:
var http = require('http');
var google = http.createClient(3000, 'localhost');
var request = google.request('HEAD', '/small',
{'host': 'localhost'});
request.end();
request.on('response', function (response) {
console.log('STATUS: ' + response.statusCode);
console.log('HEADERS: ' + JSON.stringify(response.headers));
response.setEncoding('utf8');
});
[email protected]:~/node/stackoverflow/4832362$ curl http://localhost:3000/count
0
[email protected]:~/node/stackoverflow/4832362$ node test.js
STATUS: 200
HEADERS: {"content-type":"text/html; charset=utf-8","content-length":"0","connection":"close"}
[email protected]:~/node/stackoverflow/4832362$ curl http://localhost:3000/count
0
あなたはまだ0
ファンタスティックを見ることができるように!ありがとう。 – Carlosedp
あなたの歓迎:P – Alfred