さらっと。基本的に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
- プロクシにトンネリングを要求するためのメソッド
だるい、もういいよね・・・