カテゴリ: Spring 更新日: 2025/10/05

Spring Bootのリクエスト/レスポンス入門:HTTPメソッド・ヘッダー・ステータスをやさしく解説

Spring Bootのリクエスト/レスポンス入門:HTTPメソッド・ヘッダー・ステータス
Spring Bootのリクエスト/レスポンス入門:HTTPメソッド・ヘッダー・ステータス

先生と生徒の会話形式で理解しよう

生徒

「Spring Bootでリクエストやレスポンスを扱うとき、どんな仕組みになってるんですか?」

先生

「Spring Bootでは、HTTPメソッドやリクエストヘッダー、レスポンスステータスコードなどをコントローラーで簡単に扱えるようになっていますよ。」

生徒

「例えばGETとかPOSTの違いとかもあるんですよね?」

先生

「そうですね。それでは、HTTPメソッドの使い分けやヘッダー、ステータスコードの基本から順番に見ていきましょう!」

1. Spring BootとHTTPメソッドの関係

1. Spring BootとHTTPメソッドの関係
1. Spring BootとHTTPメソッドの関係

Spring Bootでは、@GetMapping@PostMappingといったアノテーションを使って、HTTPリクエストを処理することができます。HTTPメソッドは、Webアプリケーションにおいてクライアントがサーバーに対してどのような操作をしたいのかを示す手段です。

例えば以下のようなHTTPメソッドがあります:

  • GET: データの取得に使う
  • POST: 新しいデータの作成や送信
  • PUT: データの更新
  • DELETE: データの削除

Spring Bootでは、それぞれに対応したアノテーションでリクエストを受け取れます。


@RestController
public class UserController {

    @GetMapping("/user")
    public String getUser() {
        return "ユーザー情報を取得しました";
    }

    @PostMapping("/user")
    public String createUser() {
        return "ユーザーを作成しました";
    }
}

2. リクエストヘッダーとレスポンスヘッダーとは?

2. リクエストヘッダーとレスポンスヘッダーとは?
2. リクエストヘッダーとレスポンスヘッダーとは?

HTTPリクエストやレスポンスには、ヘッダーという情報が含まれます。リクエストヘッダーは、ブラウザやアプリケーションがサーバーに送る追加情報です。レスポンスヘッダーは、サーバーがクライアントに返す追加情報です。

例えば、User-Agent(どんなブラウザか)、Content-Type(データ形式)、Accept(受け取り可能なデータ形式)などがよく使われます。

Spring Bootでは、リクエストヘッダーを@RequestHeaderで取得できます。


@GetMapping("/header-test")
public String headerTest(@RequestHeader("User-Agent") String userAgent) {
    return "あなたのブラウザは:" + userAgent;
}

3. レスポンスのステータスコードの設定

3. レスポンスのステータスコードの設定
3. レスポンスのステータスコードの設定

レスポンスにはHTTPステータスコードを設定することで、クライアントに処理結果を伝えることができます。たとえば、200 OK404 Not Found500 Internal Server Errorなどが代表的です。

Spring BootではResponseEntityを使うことで、ステータスコードも細かく制御できます。


@GetMapping("/status")
public ResponseEntity<String> getStatus() {
    return new ResponseEntity<>("正常に処理されました", HttpStatus.OK);
}

もしエラーやデータが見つからない場合は以下のように記述できます。


@GetMapping("/status404")
public ResponseEntity<String> getNotFound() {
    return new ResponseEntity<>("データが見つかりません", HttpStatus.NOT_FOUND);
}

4. HTTPメソッドの使い分け例

4. HTTPメソッドの使い分け例
4. HTTPメソッドの使い分け例

リクエストの種類に応じて、HTTPメソッドを使い分けることで、Webサービスの設計が明確になります。例えばユーザー情報を操作するAPIでは以下のように設計するのが一般的です:

  • GET /users:ユーザー一覧の取得
  • GET /users/{id}:特定ユーザーの取得
  • POST /users:新規ユーザー作成
  • PUT /users/{id}:ユーザー情報の更新
  • DELETE /users/{id}:ユーザーの削除

このような設計は「REST API設計」と呼ばれ、Spring Bootでも非常によく使われる設計スタイルです。

5. JSON形式のリクエストとレスポンス

5. JSON形式のリクエストとレスポンス
5. JSON形式のリクエストとレスポンス

Spring Bootでは、JSON形式のリクエストやレスポンスを簡単に扱うことができます。クライアントからJSONデータを受け取り、Javaオブジェクトに変換するには、@RequestBodyを使います。


@PostMapping("/json")
public ResponseEntity<String> receiveJson(@RequestBody User user) {
    return new ResponseEntity<>("名前:" + user.getName(), HttpStatus.OK);
}

このように書くだけで、Spring Bootが自動的にJSONをJavaオブジェクトに変換してくれます。逆にJavaオブジェクトをJSONにして返すことも自動で行われます。

6. 実行結果の例

6. 実行結果の例
6. 実行結果の例

上記の/header-testを実行すると、以下のようなレスポンスが返ってくる場合があります。


あなたのブラウザは:Mozilla/5.0 (Windows NT 10.0; Win64; x64)

7. Web開発で必須!HTTPの基礎知識を理解しよう

7. Web開発で必須!HTTPの基礎知識を理解しよう
7. Web開発で必須!HTTPの基礎知識を理解しよう

Spring BootでWebアプリケーションを作るうえで、HTTPのリクエスト・レスポンス・ヘッダー・ステータスコードの理解は欠かせません。これらをしっかり把握しておくことで、実践的なAPI開発がスムーズに進みます。特にRESTfulな設計やエラーハンドリングを行う際には、HTTPの基本をおさえることが重要です。

カテゴリの一覧へ
新着記事
Javaのラムダ式で戻り値とvoidの使い方を解説!returnの書き方も完全理解
Javaのメソッド参照とコンストラクタ参照の使い方を完全ガイド!初心者向けに::とClass::newを解説
Javaのラムダ式の書き方を徹底解説!アロー演算子->の基本と使い方
Thymeleafのth:eachの使い方!ループ回数やindexなどの繰り返し処理を学ぼう
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring Boot JPA入門:エンティティ/リポジトリの基本と作り方
No.3
Java&Spring記事人気No3
Javaの@Validアノテーションを徹底解説!初心者でもわかる入力値検証の基本
No.4
Java&Spring記事人気No4
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス