HTTP ステータス 204 (コンテンツなし) エラーを修正する方法?

公開: 2024-01-26

目次
HTTP 204 とはどういう意味ですか?
HTTP 204 応答コード
HTTP 204 の問題を解決するにはどうすればよいですか?
HTTP 204 コンテンツなしの SEO への影響
HTTP 204 No Content 応答コードの一部の使用シナリオ
HTTP 204 と 200 の違い
HTTP 204 と 404 の違い
結論
よくある質問

HTTP 204 とはどういう意味ですか?

HTTP 204 no content 応答コードは、サーバーがクライアントによって送信された要求を満たすことによってそのジョブを完了したが、サーバーがクライアントに送り返すコンテンツを見つけられなかったことを示します。

言い換えれば、サーバーはリクエストを完了しましたが、サーバーには送り返す情報がなく、クライアントは現在のページから離れる必要がないため、これを理解できます。

: HTTP 204 ステータス コードは、デフォルトでキャッシュ可能とみなされます。これは、プロキシ サーバーとクライアントが応答を自由にキャッシュできることを意味します。 また、この場合、サーバーには Etag ヘッダーが含まれる場合があります。

このデフォルトの動作をオーバーライドしたい場合があります。この場合、応答に追加の HTTP キャッシュ ヘッダーを含めることができます。


HTTP 204 応答コード

  • Rails HTTP ステータス シンボル :no_content
  • Rust http::StatusCode::NO_CONTENT
  • Symfony HTTP ステータス定数応答::HTTP_NO_CONTENT
  • HTTP ステータス定数 http.StatusNoContent に移動します。
  • Python3.5+ HTTP ステータス定数 http.HTTPStatus.NO_CONTENT
  • .NET HttpStatusCode.NoContent
  • Java java.net.HttpURLConnection.HTTP_NO_CONTENT
  • Apache HttpComponents コア org.apache.hc.core5.http.HttpStatus.SC_NO_CONTENT
  • Angular @angular/common/http/HttpStatusCode.NoContent

HTTP 204 の問題を解決するにはどうすればよいですか?

ただし、HTTP 204 ステータス コードはエラーではなく、サーバーがクライアントのリクエストを処理したが返すコンテンツがなかった場合に、成功したリクエストを示すために意図的に実装されました。

しかし、場合によっては、意図せずに突然トリガーされたり、適切ではない状況でそれが発生したりすることがあります。 このようなシナリオに対処するために、考慮すべき必要な方法をいくつか紹介します。

1. サーバー構成を確認する

サーバーの構成を誤ると、意図しない HTTP 204 応答が発生する可能性があります。 したがって、サーバー構成、特に HTTP 応答の処理に関連する構成がアプリケーションの要件に正しく適合していることを確認する必要があります。

また、サーバー エラー ログを確認して詳細を確認することも検討してください。

2. SEO ツールを使用する

URL が HTTP 204 応答コードを返した場合、検索エンジンはその URL をインデックスに登録しないことについてはすでに説明したため、SEMRUSH や Screamfrog などのさまざまな SEO ツールを使用して、Web サイト上の意図しない HTTP 204 応答コードを見つけて、ページは代わりに HTTP 200 を返します。

3. アプリケーション ロジックを確認する

アプリケーション ロジックが HTTP 204 の適切な使用例とより適切に連携していることを確認してください。これは、この特定のステータス コードを表示する目的に適合する必要があります。

ロジックが正しいかどうかを確認してください。 たとえば、コンテンツが予期されているにもかかわらず HTTP 204 が表示される場合は、その理由を調査してください。 また、最適なユーザー エクスペリエンスを実現するためにアプリケーションを改良し続けます。

4. ユーザーをコンテンツフルページにリダイレクトします。

コンテンツまたはアイテムの削除を検討しているときに、ユーザーに HTTP 204 応答コードが返された場合、ユーザーに悪影響を及ぼす可能性があります。 ユーザーが混乱する可能性があり、最終的には Web サイト全体のユーザー エクスペリエンスが低下します。 これはSEOの観点からすると非常に良くないことです。

ユーザーに 204 応答コードを表示するのではなく、より有用なページにリダイレクトするか、同じページで明確なメッセージを伝える方が良いでしょう。

5. API または AJAX リクエストを調査する

API または AJAX リクエストを処理している場合は、クライアントとサーバーの期待が一致していることを確認してください。

クライアントがコンテンツを期待しているにもかかわらず、代わりに HTTP 204 を受信した場合は、それが意図的に行われたものか、それとも何か問題があるのか​​を確認してください。

6. 適切なステータス コードが使用されていることを確認する

場合によっては、ある種の混乱や HTTP ステータス コードの知識不足により、シナリオごとに異なるコードを使用することがあります。 たとえば、クライアントがコンテンツを期待している場合は、204 No Content を使用するのではなく、200 OK またはその他の適切なコードにします。

7.ロギングとモニタリング

204 応答のログ記録と監視を実装してみてください。 それは、Web アプリケーションの動作に関する貴重な洞察を提供できるからです。

また、パターンを特定し、潜在的な問題を発見し、パフォーマンスとユーザー エクスペリエンスを改善するのにも役立ちます。

8.ドキュメントを参照する

また、使用するサービス、フレームワーク、またはライブラリのドキュメントを確認することもできます。 それらを注意深く見て、204 に関連するベスト プラクティスに関する特別な考慮事項が記載されているかどうかを確認してください。

適切なアクションは意図せずに実行された場合にのみ実行できること、またアプリケーションの特定のコンテキストに依存することを忘れないでください。


HTTP 204 コンテンツなしの SEO への影響

また、HTTP 204 が SEO にどのような影響を与える可能性があるかを知る必要があります。 これをチェックしてください:

1. インデックス作成の問題: Http 204 はインデックス作成用のコンテンツを提供していないためです。 URL のインデックスを作成しようとすると、問題が発生する可能性があります。

2.クロール予算の無駄: すべての検索エンジンが Web サイトごとにクロール予算を割り当てていることに驚かれるかもしれません。 検索エンジン ボットがインデックスを作成するコンテンツを繰り返し見つけられない場合、ボットに否定的なシグナルが送られ、クロール バジェットがさらに削減される可能性があります。

3.劣悪なユーザー エクスペリエンス:ユーザー エクスペリエンスも SEO の主要な要素であるため、HTTP 204 に遭遇すると悪影響を及ぼす可能性があります。 コンテンツを期待しているユーザーがサイトを離れる可能性があり、直帰率が増加し、検索エンジンに否定的な信号が送信されます。

4.不適切な構成: サーバーの構成が意図せず不適切に行われ、その結果、キー ページのインデックス付けが行われなかったり、キー ページのランク付けが行われなかったりする可能性もあります。


HTTP 204 No Content 応答コードの一部の使用シナリオ

それでは、HTTP 204 応答が意図的なものである場合、どのような使用シナリオが考えられるのか、疑問に思うかもしれません。 参考までに、以下のケースを確認してください。

1. 使用例: DELETE リクエスト

ここでよりよく理解するには、次の例を考慮する必要があります。

リクエスト

DELETE https://domain.com/user/666 HTTP/1.1
Host: domain.com
Authorization: Bearer

応答

HTTP/1.1 204 No Content
Date: Tue, 16 Jan 2024 12:00:00 GMT
Server: nginx

上記の例から、クライアントが DELETE リクエストを送信し、それが正常に処理されたことがわかります。これは、domain.com サーバー上の ID 666 のユーザー リソースが削除され、サーバーがステータス コード 204 で応答することを示しています。

2. ユースケース: POST リクエスト

リクエスト:

POST /job HTTP/1.1
Host: www.domain.re
Content-Type: application/xml
Content-Length: 60
<?xml version="1.0">
<job>
<id>125</id>
<task>G01</task>
</job>

応答:

HTTP/1.1 204 No Content

上の例では、クライアントが XML データのリクエストをサーバーにポストし、ジョブを完了する必要があることも定義していることがわかります。 それに応じて、サーバーはリクエストを承認し、ジョブを完了します。

ただし、クライアントに何も送信する必要はありません。 したがって、204 No Content ステータス コードが使用されます。

3. ユースケース: PUT リクエスト

Web サイト上の記事を更新する必要がある CMS を使用しているとします。 このためには、PUT リクエストを送信して、既存の記事の ID 123 のコンテンツを更新する必要があります。 リクエスト ペイロードには、更新されたタイトルとコンテンツが JSON 形式で含まれます。

リクエスト:

PUT /api/articles/123
Content-Type: application/json{
"title": "Updated Title",
"content": "Updated content for the article."
}

応答:

HTTP/1.1 204 No Content
Date: Sat, 01 Jan 2024 12:00:00 GMT

この点に関して、サーバーはリクエストを処理し、記事を正常に更新します。ただし、アプリケーションの設計に従って、サーバーは従来の成功メッセージで応答する代わりに、204 No Content ステータス コードで応答します。

同様に、HTTP 204 は、HTTP ヘッダー フィールドの組み込みだけでなく、キャッシュ動作の制御にも使用できます。


HTTP 204 と 200 の違い

多くの人は、HTTP 204 応答コードと HTTP 200 応答コードの間で混乱し、不適切なコードを使用してしまう可能性があります。 したがって、これに関する疑問を解消するために提供された最終的な比較表を以下に示します。

側面HTTP 204 コンテンツなしHTTP200OK
意味サーバーはリクエストを正常に処理しましたが、応答本文に送信するコンテンツがありません。 リクエストは成功し、サーバーはリクエストされたデータを返しました。
応答本文応答本文にはコンテンツが含まれません。 通常、応答にはリクエストに応じて HTML、JSON、XML などのデータが含まれます。
使用事例応答でのデータの送信を必要としない要求の成功を確認するときに使用されます。 サーバーがクライアントのリクエストを満たすためにデータを返す、成功したリクエストに使用されます。
キャッシング応答はキャッシュされることを目的としていません。 応答は、サーバーによって提供されるキャッシュ ヘッダーに基づいてキャッシュできます。
クライアントのアクションクライアントのアクションは必要ありません。クライアントを認識するためだけです。 クライアントは受信したデータを処理したり、応答に基づいてさらなるアクションを実行したりできます。
追加のデータを送信する必要がない DELETE リクエスト。
応答本文を必要としない正常な更新。
Webページが正常にロードされました。 データベースからユーザーの詳細を取得します。
共通ヘッダーContent-Type: 該当なし (コンテンツなし)。 キャッシュ制御: キャッシュなし、ストアなし (キャッシュしないことを示唆)。 Content-Type: 応答本文内のデータのメディア タイプを指定します。
キャッシュ制御: これには、キャッシュのディレクティブが含まれる場合があります。
リダイレクト通常、リダイレクトは必要ありません。 サーバーまたはリソースが移動した場合 (例: 3xx ステータス コードを使用)、リダイレクトが発生する可能性があります。
HTTP 204 と 200

同様に、HTTP 204 応答コードと HTTP 404 応答コードの間で混乱する可能性があります。 この点については、以下の比較表をご覧ください。


HTTP 204 と 404 の違い

側面HTTP 204 コンテンツなしHTTP 404 が見つかりません
意味サーバーはリクエストを正常に処理しましたが、応答本文に送信するコンテンツがありません。 要求されたリソースがサーバー上に見つかりませんでした。
応答本文応答本文にはコンテンツが含まれません。 応答本文には、要求されたリソースが存在しないことを説明するわかりやすいメッセージが含まれる場合があります。
使用事例応答でのデータの送信を必要としない要求の成功を確認するときに使用されます。 要求されたリソースが利用できないか、サーバー上に存在しないことを示すために使用されます。
クライアントのアクションクライアントにはリクエストが成功したことが通知されますが、それ以上のアクションは必要ありません。 クライアントは、ユーザーへの通知、リダイレクト、または代替リクエストの試行など、適切なアクションを実行できます。
追加のデータを送信する必要がない DELETE リクエスト。
応答本文を必要としない正常な更新。
存在しない URL にアクセスしようとしています。
削除されたリソース、または存在しなかったリソースをクエリします。
共通ヘッダーContent-Type: 該当なし (コンテンツなし)。
キャッシュ制御: キャッシュなし、ストアなし (キャッシュしないことを示唆)。
Content-Type: サーバーの構成によって異なります。
キャッシュ制御: これは、後続のリクエストでリソースが見つからない場合にキャッシュしないことを示す場合があります。
リダイレクト通常、リダイレクトは必要ありません。 サーバーまたはリソースが移動した場合 (例: 3xx ステータス コードを使用)、リダイレクトが発生する可能性があります。
HTTP 204 と 404

読む: WordPress サイトと Android の 404 Not Found エラーを修正する方法?


結論

HTTP 204 no content は、他の HTTP エラー コードとは異なり、単なる応答コードであり、サーバーが要求を正常に処理したが、応答に表示するコンテンツがないことを示します。

404 エラーが見つからないというエラーに似ているように聞こえるかもしれませんが、まったく異なり、使用シナリオも異なります。 ただし、いずれの場合でも、誤用または誤って設定されている場合は、SEO に悪影響を与える可能性があることを忘れないでください。


よくある質問

HTTP 204 とはどういう意味ですか?

HTTP 204 no content 応答コードは、サーバーがクライアントによって送信された要求を満たすことによってそのジョブを完了したが、サーバーがクライアントに送り返すコンテンツを見つけられなかったことを示します。

HTTP 304 と 204 の違いは何ですか?

一方、ステータス コード 304 と 204 は両方とも、応答本文で新しいコンテンツが送信されない状況を示します。 HTTP 304 はキャッシュと条件付きリクエストに重点を置いているのに対し、HTTP 204 は追加コンテンツなしで処理が成功したことを示す一般的な指標です。

204コード削除とは何ですか?

204 No Content DELETE ステータスは、サーバーがリソース削除要求を正常に処理したが、応答本文に送信される追加コンテンツがないことを示します。 これは削除が成功したことを示しており、応答でデータを返す必要はありません。