0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Java】GET(データの受け渡し)

Last updated at Posted at 2020-12-01

タイトル

「ホームページのサーバから情報を取得する HTTPメソッド」

【説明】GET / GETメソッドとは

要約すると

  • HTTPのメソッドの一つ。
  • 何か情報を検索したり取得する時に使用するメソッド
  • 指定したリソースの表現を転送するようにリクエストする メソッド
  • 値をリクエストURLの後に付け加えてサーバに送る。

つまりブラウザでURLを入力し検索するとき無意識にGETメソッドを使っています。

【メリット】

GETを使うとどのような処理をしていたとしてもクライアントには安全なAPIだと見なされます。
これは、クライアントからはサーバがどのような処理をやっているかを知ることはできないためです。

【特徴】

GET送信の方法は、パラメータが明示的というのが特徴です。
そのため「パラメータを見れば、ページの遷移や、行われている処理がわかる」というメリットの反面、「パスワードなど個人情報であっても筒抜けになる」というデメリットも生じます。

GETの場合、URL内部にパラメータが組み込まれるので、ブラウザの履歴やキャッシュが残ります。POSTは残らないので、機密性が高いと言えなくもありませんが、結局、パケットは平文で流れるので、機密性について考える場合は、どちらにしても別途、暗号化の仕組みを取り入れる必要があります。

【使用場面】

仕様で安全かつ冪等であると定義されているため、基本的に読み取り専用な機能に対して使うべきメソッドになります。

【サンプル】URLの構成とGET送信

例えば以下のような「パスワードを入力して専用ページにログイン」するための、ログイン用URLを例に構成を見ます。

https://○○○○.jp/login.php?lang=ja&args=
プロトコル://ドメイン/表示ファイル名?パラメータ=データ&パラメータ=なし

どのURLもだいたいこのような構成になっています。ログインの流れとしては

  1. パラメータにデータを入れて渡すことによって、リクエストを行います。
  2. Webサーバーは渡されたデータによって「ログインが成功か否か」といった何らかのレスポンスを行います。

GET送信 (パラメータに直接データを入力してリクエスト)

上記のコードであればログイン用URLを見ると、 パラメータ = なし となっている部分がありました。
なし の部分にデータを入れてパラメータとして渡すと、データに誤りがなければログインが成功します。
パラメータ部分に直接データを入力してリクエストする方法が GET送信 です。

https://○○○○.jp/login.php?lang=ja&args=password

パラメータはソースコード上で取り出すことができます。
HttpServletRequestインタフェースの、 requestオブジェクト を使用してパラメータを読み込みます。

getParameter() / getParameterメソッド

クライアント側のフォームから送られてきたデータ(リクエストパラメータ)は「名前」と「値」のペアで送られてきます。
リクエストパラメータを取得するには「getParameter」メソッドを使います。
リクエストパラメータの「名前」を引数に指定すると「値」を取得することが出来ます。

String value = request.getParameter("args");
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?