at_yasu's blog

ロード的なことを

HTTP メソッド一覧メモ

さらっと。基本的にHTTP/1.0と、1.1。

  • 安全{safe}
    • POST/PUTのような、リロース扱う物はセキュアにするように。
    • GET/HEADのような、問い合わせだけのは上に比べて安全だよね。
  • 冪等{idempotent}
    • つまり、同じ操作をしたら同じ回答がくるよね?という事かしら。
    • GET->GET->GET とリクエストしたら、それぞれ回答は同じなはずだよね。
    • だけど、GET->POST->GETとした場合、始めと最後では回答が違うから、冪等ではないしよくある事。
    • ただまぁ、場合場合に寄ってころころかわるので、あくまで性質と言う事で。
  • GET
    • 基本中の基本、これを実装していないHTTPServerはHTTPServerとは言えねぇ
    • Request-URI で識別される (エンティティ形式の) 情報ならなんでも回収
    • If-Modified-Sinceで条件付きGETとなる
  • HEAD
    • 基本中の基本、これを実装していないHTTPServerは(ry
    • サーバがレスポンスにおいてメッセージボディを返してはならない事を除けば GET と同一
  • POST
    • リソース転送に使用。
      • フォームの変数名と変数値を "=" にて結び、それらを "&" や ";" にて連結した application/x-www-form-urlencoded
      • ファイルのアップロードにマルチパート を利用する multipart/form-data
    • 場合に寄っては、コンテンツを返さない場合がある。この場合は、ステータスコード204を返すべき。
    • 新しくリソースを作成した場合、ステータスコード201を返して、Locationヘッダで新しいリソースへの参照を返すべき(らしい)
  • PUT
    • リソース作成のメソッド
    • POSTとの違い
      • POST: Request-URI はリクエストを処理する所
      • PUT: リソースが生成される所
    • 最近は、RESTが広がってるから、PUTが使える所が多いかも
  • DELETE
    • PUTの反対。状況は、PUTと同じ。
  • OPTIONS
    • Request-URI のリソースがどんなメソッドをサポートしているかを調べるために使われます
  • TRACE
    • 特定のサーバに接続し、そこからループバックを起こすために使うメソッド
    • TRACE メソッドの一番の目的は、オリジンサーバが受け取るリクエストを見る事です。 特にプロクシの動作を確認する事は重要
  • CONNECT
    • プロクシにトンネリングを要求するためのメソッド

だるい、もういいよね・・・