19

204 HTTP ステータス コードの使用例を理解するのに苦労しています。RFC2616 は次のように述べています。

10.2.5 204 コンテンツなし

サーバーは要求を満たしましたが、エンティティ本体を返す必要はなく、更新されたメタ情報を返したい場合があります。レスポンスには
、新しいメタ情報または更新されたメタ情報がエンティティ ヘッダーの形式で含まれる場合があります。エンティティ ヘッダーが存在する場合は、 リクエストされたバリアント
に関連付ける必要があります。

クライアントがユーザー エージェントである場合、リクエストが送信された原因となったドキュメント ビューを変更すべきではありません (SHOULD NOT)。この応答は主に、ユーザー エージェントのアクティブなドキュメント ビューを変更せずにアクションの入力を許可することを目的としていますが、現在ユーザー エージェントのアクティブなビューにあるドキュメントには、新しいメタ情報または更新されたメタ情報を適用する必要があります。

204 応答にはメッセージ本文を含めてはならない (MUST NOT) ため、常にヘッダー フィールドの後の最初の空行で終了します。

「ドキュメント ビュー」は DOM を参照していますか?

たとえば、ユーザーを削除する AJAX リクエストを発行し、ページを更新してリクエストが正常に完了したらリストからユーザーを削除した場合、サーバーは応答として {} を含む 200 を返すか、{} を含まない 204 を返します。体 ?

編集:私の主な懸念は、「クライアントがユーザーエージェントである場合、リクエストが送信された原因となったドキュメントビューを変更すべきではない」に関連しています。部。私自身の言葉で再定式化するには: 204 を返す場合、DOM を更新できますか?

4

2 に答える 2

6

どちらも実際に有効です。それはすべてアプリケーションに依存します。

有効な削除では、200 または 204 の両方の応答コードが返される可能性があります。

ドキュメント ビューは DOM を参照します。はい。

この質問はそれについて話します。

于 2014-06-11T08:10:24.790 に答える
5

「ドキュメント ビュー」は DOM を参照していますか?

正確には、レンダリングされたドキュメントを意味します。DOM はレンダリングされたドキュメントの表現ではありません。ドキュメントツリーの抽象モデルです。各 UA はそれを異なる方法でレンダリングする場合があります。

ユーザーを削除する AJAX リクエストを発行し、ページを更新して、リクエストが正常に完了したら、リストからユーザーを削除します。サーバーは、レスポンスとして {} を含む 200 を返しますか、それともボディなしで 204 を返しますか?

これは、API とそれがどの程度「準拠」しているかによって異なります。そのため、「DELETE」動詞 (つまり、RESTful API) を使用して削除要求を送信した場合、応答は 200 OK になります。ただし、API が特にペダンティックな場合は、204 を送信することもできます。

「/some/view?id=1&action=delete」に GET リクエストを送信するだけの場合、200 OK が返される可能性が高くなります。

どちらの場合でも、2 番目の部分があるため、自由に DOM を変更できます (したがって、ドキュメントの再レンダリングをトリガーします)。

ただし、新しいメタ情報または更新されたメタ情報は、現在ユーザー エージェントのアクティブ ビューにあるドキュメントに適用する必要があります。

したがって、<strike>レコードが削除されたことを示すために を使用すると、この要件に準拠します。

于 2014-06-11T08:11:28.590 に答える