【Web技術の基本 #3】HTTPでやりとりする仕組み
はじめに
【Web技術の基本 #1】 Webとは
【Web技術の基本 #2 】ネットワーク技術について
の続きです。
HTTPでやりとりする仕組み
HTTPとは
HTTP(Hyper Text Transfer Protocol)は「Hyper Text」、つまりHTMLなどのテキストファイルや画像などのコンテンツをWebブラウザとWebサーバー がやりとりするときに使われるプロトコルのこと。そのHTTPで使われているのが、HTTPメッセージと呼ばれるデータ。HTTPメッセージには2種類あり、Webブラウザから要求するHTTPリクエストと、Webサーバーが応答するHTTPレスポンスの2種類がある。
HTTPリクエスト
HTTPリクエストは、「リクエスト行」「メッセージヘッダー」「メッセージボディ」の3つに分けることができる。
HTTPレスポンス
HTTPレスポンスは、「レスポンス行」「メッセージヘッダー」「メッセージボディ」の3つに分けることができる。
HTTPメソッド
HTTPリクエストを使って、Webサーバーに具体的な要求内容を伝えているのが、HTTPリクエスト内に含まれるHTTPメソッド。代表的なものは以下の通り。
HTTPメソッド名 | 説明 |
---|---|
GET | HTMLファイルや画像といったデータを取得するときに使われる |
POST | フォームに入力した内容をデータとして送信するときに使われる。 |
PUT | ファイルなどのデータをアップロードするときに使われる |
DELETE | 指定したデータを削除するときに使われる |
ステータスコード
HTTPリクエストに対するWebサーバー内での処理結果が書かれたものがステータスコード。HTTPレスポンス内に含まれている。
- 100番台:HTTPリクエストが処理中であることを通知している
- 200番台:HTTPリクエストが正常に処理されたことを通知している
- 300番台:HTTPリクエストに対して、Webブラウザ側で追加の処理が必要なことを通知している
- 400番台:クライアントのエラーであることを通知している
- 500番台:Webサーバー側のエラーであることを通知している
TCPによるデータ通信
HTTPのデータを実際に転送しているのがTCP(Transmission Control Protocol)。
TCPでは「コネクション」と呼ばれる通信経路を確立した上でデータのやり取りを行う。
コネクションの概要
- クライアントからサーバーに対して、接続を要求するための「SYNパケット」というデータを送る
- サーバーは「SYNパケット」を受け取ると、応答するための「ACKパケット」を送り、クライアントに接続要求する「SYNパケット」も送る
- クライアントがサーバーからの「SYNパケット」を受けとり、応答するための「ACKパケット」を送る
HTTPSの仕組み
HTTPSとは「HTTP over SSL/TSL」の略称。HTTP通信において暗号化形式であるSSL(Secure Sockets Layer)やTLS(Transport Layer Security)を使うことでWebサイトを安全に使うことができる。
- 盗聴防止、改竄防止、なりすまし防止対策ができる
ステートフルとステートレス
ステートレス
状態を保持しない、HTTPはステートレス。リクエスト/レスポンスの1往復のみでやりとりが完結されるので、複数の処理を関連付けることができない
ステートフル
状態を保持できる。処理結果を次の処理内容に反映させることができる。
Cookie
WebブラウザとWebサーバーの一連のやりとり(セッション)において、状態を保持し管理する仕組みのこと。Cookieの送信には、メッセージヘッダーが利用される。WebサーバーはHTTPリクエストに「Set-Cookieヘッダー」を含めることでCookieを送信でき、WebブラウザはHTTPリクエストに「Cookie」ヘッダーを含めることで送信できる。
Discussion