JAVA:IT TRICK

HTTPレスポンスの概要

サーブレット開発時に知っておく必要があるHTTPレスポンスの構成やレスポンスコードについて詳しく説明します。
  • このエントリーをはてなブックマークに追加
  • Clip to Evernote
  • IT TRICK RSS

サーブレット開発時に知っておく必要があるHTTPレスポンスの構成やレスポンスコードについて詳しく説明します。まずは実際のレスポンスを見てみましょう。

HTTPレスポンスは「レスポンスコード」、「レスポンスヘッダ」、「レスポンスボディ」の3部分に分かれます。レスポンスボディはHTMLなど、ユーザに返すコンテンツの内容が入っています。ここでは残りの「レスポンスコード」と「レスポンスヘッダ」について説明していきます。

レスポンスコード

レスポンスコードはユーザからのリクエストの結果の状態を示す定数です。範囲ごとに以下のような意味に分かれます。

コード範囲 説明
100 ~ 199 お知らせなど
200 ~ 299 リクエストが正しく処理できた場合
300 ~ 399 ファイルやコンテンツが移動になった場合
400 ~ 499 クライアントのリクエストが正しくない場合
500 ~ 599 サーバ側の問題でリクエストを正しく処理できなかった場合

通常、リクエストが正しく処理できた場合にはコード200を返します。コンテンツの場所(URL)が変わった場合には、ブラウザにリダイレクトを指示するために301もしくは302を返します。リクエストが正しくない場合は、404ページが見つかりませんなどのコードを返します。サーバ側でエラーが発生した場合は500などのコードを返します。

また、サーブレットではこれらのコードはHttpServletResponseクラスの「SC_」から始まる定数として定義されています。

レスポンスヘッダ

以下は主なレスポンスヘッダです。
コード範囲 説明
Content-Language ドキュメントが記述されている言語
Content-Length ドキュメントを含むレスポンスの長さ
Content-Type ドキュメントのMIMEタイプ
Last-Modified ドキュメントの最終更新日
Refresh ドキュメントを更新する秒数。Locationヘッダと併用する他に現在のページの自動リロードなどに利用できる
Location ドキュメントのアドレス。300番台のステータスコードにはこのヘッダを付属することでリダイレクト処理を行う
Expires コンテンツの有効期間

レスポンスヘッダはHttpServletResponseクラスのsetHeader()メソッドでセットできます。