2016-12-12 2 views
0

簡単な質問: のNode.jsを使用し、NodeJsリダイレクトと書込みヘッドとの差(303)

res.writeHead(303, { 
       "Location": "/" 
      }); 
res.end(); 

res.redirect("/"); 

を使用した場合の違いは何であるかをユーザにリダイレクトしたいことは任意であり好ましい方法は?

ありがとうございます。

+1

http://expressjs.com/en/api.html#res.redirect –

+0

ので、私はそれが 'res.redirect(303、 "/")を使用するのが最適だと思います私の目的のために? – nauti

+0

あなたの目的がリダイレクトされている場合は、おそらく。それは確かにコードの観点からきれいです。 –

答えて

0

最初の例では、303のステータスコードが強制的に入力されていますが、デフォルトのステータスコードは(res.redirect())です。

303は、HTTPサーバーへのリダイレクトには一般的に使用されません。リダイレクトの正確な意図に応じて、301/302または307/308のいずれかが必要です。詳細については、これを参照してください。

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection

+0

Thoウィキペディアでは、303を使用するとクライアントがGETリクエストを発行しなければならないと言っているので、私は303を使いたいと思っています。 HTTP/1.1を使用するときに303/307を使用すると言います(私は正しいはずですか?) – nauti

+0

@nautiもし '303'を使う必要があれば' 303'を使いますが、あなたが望むものであることを確かめてください。詳細はRFCを参照してください。 https://tools.ietf.org/html/rfc7231#section-6.4.4ここで重要な点は次のとおりです。「ロケーションヘッダーフィールドの新しいURI は、 有効なリクエストURIと同等と見なされます。 – Brad

関連する問題