簡単な質問: のNode.jsを使用し、NodeJsリダイレクトと書込みヘッドとの差(303)
res.writeHead(303, {
"Location": "/"
});
res.end();
と
res.redirect("/");
を使用した場合の違いは何であるかをユーザにリダイレクトしたいことは任意であり好ましい方法は?
ありがとうございます。
簡単な質問: のNode.jsを使用し、NodeJsリダイレクトと書込みヘッドとの差(303)
res.writeHead(303, {
"Location": "/"
});
res.end();
と
res.redirect("/");
を使用した場合の違いは何であるかをユーザにリダイレクトしたいことは任意であり好ましい方法は?
ありがとうございます。
最初の例では、303
のステータスコードが強制的に入力されていますが、デフォルトのステータスコードは(res.redirect()
)です。
303
は、HTTPサーバーへのリダイレクトには一般的に使用されません。リダイレクトの正確な意図に応じて、301
/302
または307
/308
のいずれかが必要です。詳細については、これを参照してください。
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
Thoウィキペディアでは、303を使用するとクライアントがGETリクエストを発行しなければならないと言っているので、私は303を使いたいと思っています。 HTTP/1.1を使用するときに303/307を使用すると言います(私は正しいはずですか?) – nauti
@nautiもし '303'を使う必要があれば' 303'を使いますが、あなたが望むものであることを確かめてください。詳細はRFCを参照してください。 https://tools.ietf.org/html/rfc7231#section-6.4.4ここで重要な点は次のとおりです。「ロケーションヘッダーフィールドの新しいURI は、 有効なリクエストURIと同等と見なされます。 – Brad
http://expressjs.com/en/api.html#res.redirect –
ので、私はそれが 'res.redirect(303、 "/")を使用するのが最適だと思います私の目的のために? – nauti
あなたの目的がリダイレクトされている場合は、おそらく。それは確かにコードの観点からきれいです。 –