部活の一年生向けにつくった資料です
HTTPとは?
Hypertext Transfer Protocol
の略
ブラウザとWebサーバ間でデータを通信するためのプロトコル
特徴
- サーバ・クライアントによるリクエスト・レスポンス通信
- ステートレス(クライアントの状態を保持しない)
リクエスト・レスポンス
HTTPリクエスト
クライアントからサーバへの要求メッセージのこと
HTTPレスポンス
HTTPリクエストを受けたサーバがクライアントに返す応答メッセージのこと
ステートレス
サーバがクライアントの状態(State)を管理しない(Less)
メリット
- サーバを複数台にしたとき、どのサーバにリクエストを送っても同じレスポンスを返すことができるので増設しやすくなる(スケーラビリティがよくなる)
- 処理がクライアントの状態に依らないのでシンプルになる
デメリット
- 同じクライアントが同じサーバと通信するときは同じようなデータを毎回リクエストとして送信するので通信のムダが多くなる
- 状態を保持していないのでエラーが起きたときの対応が複雑になりがち
メソッド
そのリクエストが何を意味するかを表す GET, POST(, PUT, DELETE)くらい覚えておけば大丈夫
GET
指定されたURIのリソースを取り出す HTTPの最も基本的動作
Webページを開くときなど、サーバ上のリソース(ここではWebページ)を要求するときはこれ
POST
GETとは反対にクライアントがサーバにデータを送信する
Twitterに文字を打ち込んで送信するときとかはこれ
PUT
指定したURIにリソースを保存する リソースが存在しない場合はサーバがそのURIにリソースを作成する
画像をアップロードするときとかはこれ
DELETE
指定したURIのリソースを削除する
OPTIONS
サーバを調査する サーバがサポートしているHTTPバージョンなどを知ることができる
HEAD
サーバはHTTPヘッダのみを返す クライアントはWebページ全体を取得せずともそのページが存在するかどうかわかる
TRACE
サーバまでのネットワーク経路をチェックする
CONNECT
TCPトンネルを接続する