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();
  }
}


以上。