HTTPまとめ
目次
1.HTTPとは
2.HTTPメソッドの種類
・各メソッドの説明と、リクエストパラメータの送り方
3.サーバ側(servlet)での構え方
1.HTTPとは
ブラウザとサーバでデータをやり取りするプロトコル。OSI参照モデルにおいて
アプリケーション層に位置する。
OSI参照モデル |
---|
アプリケーション層 |
プレゼンテーション層 |
セッション層 |
トランスポート層 |
ネットワーク層 |
データリンク層 |
物理層 |
2.HTTPメソッドの種類
GET, POST, PUT, DELETなどがあります。
GET:
サーバからデータを取得するメソッド。基本的には取得要求を行う。
URLの後ろにクエリ文字を付与してデータを送ることも出来る。最大文字数は全体で2,048文字。
実装例:アンカーリンクなどで使う。
<a href="/xx/war/html/xx.html?inputText=hoge&inputText2=hoge2">
POST:
サーバにデータを送る際のメソッド。容量制限なし。
HTTPボディ部のnameとvalueでデータを送る。
実装例:
<form action="/upload" method="post"> <body> <input type="text" name="inputText" value="hoge"/> <input type="submit" value="POST送信"/> </body> </form>
PUT:
POSTと同じような感じ。ただしPUTはべき等性。
クライアント側から何回この要求を投げても更新結果は毎回同じになる場合に用いる。
実装例:
HTTPフォームではGETとPOSTの通信方式にしか対応していないので、要素"_method"に設定する。
<form method="post" action="/"> <body> <input type="text" name="inputText"> <input type="hidden" name="_method" value="PUT"> <input type="submit" value="PUT送信"> </body> </form>
DELET:
アクションパスで指定したサーバのリソースを消す的な。DELETEはべき等性。
実装例:
POST同様に要素"_method"に設定する。
<form method="post" action="/"> <body> <input type="text" name="inputText"> <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="DELETE送信"> </body> </form>
3.サーバ側(servlet)での構え方
実装例:
ざっくりこんな感じ。
public class Sample1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ // getAttributeやらgetParameterでリクエストから取得する。 request.getAttribute("inputText"); request.getParameter("inputText"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ doGet(); } }
以上。