400エラー(Bad Request)とは?意味をわかりやすく簡単に解説
公開:
400エラー(Bad Request)とは
400エラーはHTTPステータスコードの一つであり、クライアントから送信されたリクエストに構文上の誤りや不正な形式が含まれている場合にサーバーが返すエラーレスポンスです。このエラーはリクエストの内容をサーバーが理解できないか、または処理を拒否したことを示しています。
英名ではBad Requestと呼ばれており、HTTPプロトコルにおける4xx系エラーの代表的なステータスコードとして、広く認識されています。クライアント側に問題があることを明確に示すため、開発者はリクエストの内容を見直して適切な形式に修正する必要があります。
400エラーが発生する主な原因
リクエストURLに不正な文字列や予期しないパラメータが含まれている場合、サーバーはリクエストを正しく解釈できず400エラーを返します。例えば、URLエンコードが適切に行われていない日本語文字列、許可されていない特殊文字が含まれているケースが該当するでしょう。
| 原因 | 具体例 |
|---|---|
| 不正なURL構文 | エンコードされていない日本語 |
| リクエストヘッダーの誤り | Content-Typeの指定ミス |
| JSONフォーマット不正 | 閉じ括弧の欠落 |
| 必須パラメータの欠如 | APIキーの未指定 |
| データサイズ超過 | 許容サイズを超えるファイル |
リクエストボディのデータ形式が仕様と一致していない場合も400エラーの原因となり、特にJSON形式でデータを送信する際のカンマやコロンの位置ミスが頻繁に発生します。サーバー側が期待するデータ構造と異なる形式でリクエストが送信されると、パースエラーが発生してエラーレスポンスが返されるのです。
HTMLフォームにおける400エラーの対処方法
HTMLフォームから送信されるデータが適切にエンコードされていることを確認するため、フォームタグのenctype属性を正しく設定する必要があります。テキストデータのみを送信する場合はapplication/x-www-form-urlencodedを、ファイルアップロードを含む場合はmultipart/form-dataを指定してください。
JavaScriptを使用してフォームデータを送信する際は、Fetch APIやXMLHttpRequestでContent-Typeヘッダーを明示的に設定することが重要です。特にJSONデータを送信する場合、ヘッダーにapplication/jsonを指定し、データをJSON.stringify()メソッドで文字列化してから送信しなければなりません。
<form action="/submit" method="POST" enctype="multipart/form-data">
<input type="text" name="username" required>
<input type="file" name="document">
<button type="submit">送信</button>
</form>
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
左へフリックで次のページ、右へフリックで前のページに戻れます左右の矢印ボタン、左右のスワイプで移動できます





