🐦

【Web技術の基本 #3】HTTPでやりとりする仕組み

2021/06/24に公開

はじめに

【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では「コネクション」と呼ばれる通信経路を確立した上でデータのやり取りを行う。

コネクションの概要

  1. クライアントからサーバーに対して、接続を要求するための「SYNパケット」というデータを送る
  2. サーバーは「SYNパケット」を受け取ると、応答するための「ACKパケット」を送り、クライアントに接続要求する「SYNパケット」も送る
  3. クライアントがサーバーからの「SYNパケット」を受けとり、応答するための「ACKパケット」を送る

HTTPSの仕組み

HTTPSとは「HTTP over SSL/TSL」の略称。HTTP通信において暗号化形式であるSSL(Secure Sockets Layer)やTLS(Transport Layer Security)を使うことでWebサイトを安全に使うことができる。

  • 盗聴防止、改竄防止、なりすまし防止対策ができる

ステートフルとステートレス

ステートレス

状態を保持しない、HTTPはステートレス。リクエスト/レスポンスの1往復のみでやりとりが完結されるので、複数の処理を関連付けることができない

ステートフル

状態を保持できる。処理結果を次の処理内容に反映させることができる。

WebブラウザとWebサーバーの一連のやりとり(セッション)において、状態を保持し管理する仕組みのこと。Cookieの送信には、メッセージヘッダーが利用される。WebサーバーはHTTPリクエストに「Set-Cookieヘッダー」を含めることでCookieを送信でき、WebブラウザはHTTPリクエストに「Cookie」ヘッダーを含めることで送信できる。

参考書籍

イラスト図解式 この一冊で全部わかるWeb技術の基本

Discussion