JavaのGETとPOSTの違いとは?HTMLフォームのmethodを初学者向けに整理する

本記事は、Schooの「Java入門 中級【2026年版】」第4回「Webアプリケーションの動作原理と画面連携」を学ぶ前後に、HTMLフォームの method 属性で指定するGETとPOSTの違いを整理したい方向けの記事です。
フォーム送信では、入力した値をサーバーへ送ります。このとき、method="get" と method="post" のどちらを指定するかで、値の送り方と向いている用途が変わります。
Schoo コースページ:Java入門 中級【2026年版】
GETとPOSTはフォームの送信方法
HTMLフォームでは、form タグの method 属性で送信方法を指定します。
<form action="search.jsp" method="get">
<input type="text" name="keyword">
<button type="submit">Search</button>
</form>
method="get" と書くとGET送信、method="post" と書くとPOST送信になります。どちらもサーバーへ値を送るための方法ですが、送られ方が違います。
GETはURLに条件を付けて送る
GETでは、入力された値がURLの後ろに付いて送信されます。検索や一覧の絞り込みのように、「この条件で結果を見たい」という場面でよく使われます。
<form action="search.jsp" method="get">
<input type="text" name="keyword">
<button type="submit">Search</button>
</form>
たとえば keyword に java と入力して送信すると、URLは次のような形になります。
search.jsp?keyword=java
URLに条件が残るため、同じ検索結果をもう一度開いたり、URLを共有したりしやすいのがGETの特徴です。
POSTはリクエストの本文に入れて送る
POSTでは、入力された値はURLの後ろではなく、リクエストの本文側に入って送信されます。会員登録、問い合わせ、コメント投稿のように、入力内容をサーバー側で登録・更新する場面でよく使われます。
<form action="entry.jsp" method="post">
<input type="text" name="userName">
<input type="email" name="email">
<button type="submit">Register</button>
</form>
POSTにしても、値を受け取る側の考え方は大きく変わりません。フォームの name 属性に付けた名前を使って、サーバー側で値を取り出します。
使い分けは「結果を見る」か「内容を送る」かで考える
初学者のうちは、次のように考えると整理しやすいです。
- 検索条件や絞り込み条件を送るならGET
- 登録、更新、問い合わせ、コメント投稿ならPOST
- URLに入力内容が見えてよいものはGETを検討する
- 入力内容を処理として送るものはPOSTを検討する
GETは「条件をURLに付けて結果を見る」、POSTは「入力内容をリクエスト本文として送る」と押さえると、フォームの読み方が分かりやすくなります。
POSTなら安全という意味ではない
POSTはURLに値が表示されにくい送信方法ですが、それだけで安全になるわけではありません。通信内容を守るにはHTTPSが必要ですし、サーバー側では入力チェックも必要です。
そのため、GETとPOSTは「安全かどうか」だけで選ぶものではありません。送信内容の性質と、画面の目的に合わせて使い分けます。
確認問題
次の3つの画面では、GETとPOSTのどちらを使うと自然か考えてください。
- 商品名を入力して、商品一覧を検索する画面
- 名前とメールアドレスを入力して、問い合わせを送信する画面
- カテゴリを選んで、記事一覧を絞り込む画面
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
まとめ
- GETとPOSTはフォームの送信方法
- GETは送信内容がURLの後ろに付く
- POSTは送信内容がリクエスト本文側に入る
- 検索や絞り込みはGET、登録や送信はPOSTで考えると整理しやすい