400番台のHTTPステータスコードに422 unprocessable entityがあります。Webサイトなどの開発中に目にする事が多い422 unprocessable entityの意味と、表示される原因について解説していきます。
Webページ作成時、確認をしているときに422 unprocessable entityのエラーが出ることがあります。このエラーがどんな意味を持つものか、その原因とは何かということの説明をしていきます。
まずは422 unprocessable entityのエラーの意味とはどういうものなのか、という説明からしていきます。
422 unprocessable entityとはHTTPレスポンスステータスコードの1つになります。Webサイトの状態を示すサーバーからのレスポンスを意味するもので、大きく分けて5つ種類があります。詳細については次の表にまとめています。
番号 | 内容 |
---|---|
100番台 | 情報を示すもの。リクエストに対し、処理が継続されていることを示す。 |
200番台 | 成功を示すもの。リクエストを正しく受理したことを示す。 |
300番台 | リダイレクションを示すもの。リクエストを達成するため追加の処理が必要であることを返信していることを示す。 |
400番台 | クライアントエラーを示すもの。リクエストが正しく処理できていないことを示す。 |
500番台 | サーバーエラーを示すもの。文字通りサーバーに問題が生じていてエラーが起きていることを示す。 |
なお、422 unprocessable entityの「unprocessable entity」は「処理できないエンティティ」を意味するものです。entity/エンティティとは、参照・関連付けを受ける意味やデータのまとまりを示す、独立した一意の対象物のことです。
422 unprocessable entityはサーバーが受けた要求を理解して、構文も正しいもののその中の指示を処理できなかった場合に表示されます。オブジェクトなどの変更処理がうまくできない場合に表示されるエラーともいえます。
RESTにおいては、入力した検証の失敗を示すバリデーションチェックエラーを伝える目的で422 unprocessable entityを返すように使う場合もあります。
HTTPレスポンスステータスコードである422 unprocessable entityが何故表示されるのか、その原因についての説明に移ります。
422 unprocessable entityが表示される原因としては、認証トークンやXSSが間違っていることが考えられます。
CSRF保護がオフになっている場合だとトークンの検証時に同一のものでないと判断されて422 unprocessable entityのエラーが表示されることがあります。
また、レコードが不正であったり、うまく保存できていない場合にも422 unprocessable entityのエラーが表示されることがあるようです。
非同期通信時のリクエストがサーバー側でうまく処理できていないというようなこともあるため、422 unprocessable entityが表示された場合は内容をよく確認してみてエラーの原因を探ってみる必要があります。
HTTPステータスコードの1つである422 unprocessable entityはサーバー関係のエラーとして表示されるものです。構文はあっているけれど内容が違っている、というような内容のエラーですので、コードなどを確認してみて原因を探し、修正するなどしてみてください。