[解決済み] HTTP Get with 204 No Content: それは正常ですか?
質問
は普通に発生するのでしょうか?
HTTP GET リクエスト
で応答し、ステータスコード
204 - No Content
? 例えば、HTTP GETが何を達成することになっているのかに関して、これは意味的に正しいのでしょうか?私が知っているのは
204 - No Content
は
オーケー
に対して
HTTP POST-Request(リクエスト
. GETリクエストの場合、データを送り返さないのであれば、ステータスコードは204が適切でしょうか?404を使うべきでしょうか、それとも成功のために200にこだわるべきでしょうか、しかし空のレスポンスがあるのでしょうか?
その ユースケース この質問のために、私はGoogle App Engine用に書いているJavaアプリケーションです。私はサーブレットにリクエストを送信していますが、クライアントに戻って送信されるデータは、HTTPレスポンスの代わりにチャネルAPIソケットを介して送信されます。現在、私のクライアントは、リクエストボディにコンテンツを持たないPOSTを送信し、サーブレットから戻ってくる204応答を待ってからChannel APIソケットをポーリングしています。リクエストのボディでデータが送信されないので、私はPOSTの代わりにGETを送信することがより理にかなっているかどうか議論しています。
解決方法は?
<ブロッククオート204 コンテンツがない
サーバーはリクエストを処理しましたが entity-body を返し、更新されたメタ情報を返すことを望むかもしれません。その の形で新規または更新されたメタ情報を含んでもよい(MAY)。 エンティティヘッダがある場合は、それに関連付けるべきです。 リクエストされたバリアント
によると ステータスコード204のRFC部分 GETリクエストのための有効な選択肢のように思えます。
A
404 Not Found
,
200 OK
というように、本文が空で
204 No Content
は全く異なる意味を持つので、適切なステータスコードを使用できないこともありますが
ルールを曲げれば、いつかは自分に跳ね返ってくる。
. だから、適切なステータスコードを使用できる場合は、それを使用してください。
GETとPOSTの選択は、どちらも仕事をするので非常に個人的なものだと思いますが、私は2つの理由から、GETではなくPOSTにしておくことをお勧めします。
- 他の部分(私の理解が正しければサーブレット)は、そこからいくつかのデータを取得するのではなく、アクションを実行することを望んでいます。
- デフォルトでは、GETリクエストはURLにパラメータが存在しない場合、キャッシュ可能ですが、POSTはそうではありません。
関連
-
[解決済み] HTTP Get with 204 No Content: それは正常ですか?
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] URLクエリパラメータを含むHTTP POST -- 良いアイデアかどうか?
-
[解決済み] Google App EngineとGoogle Compute Engineの違いは何ですか?
-
[解決済み】有効なリクエストでありながら、データが空の場合の適切なRESTレスポンスコードは何ですか?
-
[解決済み】JAX-RS - JSONとHTTPステータスコードを一緒に返すには?
-
[解決済み】flaskでhttpヘッダーを取得する方法は?
-
[解決済み] HTTP GETリクエストにcontent-typeヘッダーは必要ですか?
-
[解決済み] Google Cloud BigtableとGoogle Cloud Datastoreの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン