DX Column

2021年10月21日

#プロトコル – 知ったかテックワード!君もIT博士

カテゴリー:

タグ:

プロトコル(Protocol)」とは、コンピュータや電子機器が互いに通信しあうための手順・規約のこと。「通信プロトコル」の略称だよ。

通信する相手は、お互いに同じプロトコルを採用している必要がある。ウサギとカエルが連絡を取る場合、一方が日本語で他方が英語だったら話が通じないよね。一方が朝8時に連絡したけど、他方がその時間に寝ていた場合もうまくいかない。だから「朝8時に電話する。言語は日本語。手段は電話」といった感じで決めたルールがプロトコルなんだ。

実際の通信プロトコルは、機能や役割によっていくつもの種類がある。インターネットでは、次のようなプロトコルが使われているよ。

  • HTTP:HyperText Transfer Protocol、Webサイトのアクセスで用いられる
  • SMTP:Simple Mail Transfer Protocol、シンプルな電子メール転送用プロトコル
  • IP:Internet Protocol、インターネットで通信相手を特定するためのプロトコル

HTTPの動作

ここで例として、HTTPの動作を見ていこう。

HTTPは、主にWebブラウザがWebサーバーからWebページを取得するために使われる。本当はネットワークの仕組みや、複数のサーバーを識別する方法なども重要なんだが、Webシステムによる情報の提供と閲覧に対象をしぼると、ざっくりWebブラウザとWebサーバーに分割できる。

Webブラウザでホームページ上のリンクをクリックすると、対象となるWebサーバーにリクエストが送信される。Webサーバーは、自分へのリクエストを受け取ると、該当するWebページのあらかじめ用意しておいたHTMLファイルや画像ファイルなどをレスポンスとして送り返すr。Webブラウザは、返ってきたレスポンスをもとにして、Webページを再構成して表示する。

この手順を整理すると、こんなふうになる。

  1. リクエスト:Webブラウザから、閲覧したいページを要求する
  2. レスポンス:Webサーバーから、HTMLファイルや画像ファイルを返す
  3. 返ってきたレスポンスから、Webページを再構成する

リクエストでは、次のような内容(メッセージ)を送信する。通常は、リクエストヘッダまでを送信する。Webフォームを入力したり、ファイルをアップロードする場合には、その内容をリクエストボディとして送信する。

  • メソッド:リクエストでおこなう操作の種類
  • リクエストURI:取得するWebページのアドレス
  • プロトコルバージョン:HTTP/1.1
  • リクエストヘッダ:リクエストについての追加情報
  • リクエストボディ:Webフォームの内容や添付ファイル

このような仕組みを基本にして、現在は様々な便利な機能を実現しているんだ。たとえば、HTTPS (Hyper Text Transfer Protocol Secure)は、HTTPと比較してよりセキュリティに強い通信が可能だ。

おまけのコント

ウサギ:プロトコルって、お菓子の名前っぽくない?

カエル:プロ・ト・コールなら、たしかにそんな感じかも。で、どんなお菓子なんだろ。

ウサギ:甘くって、クルクルっとして、プロテインが入っている。

カエル:なんか、身体に良さそう。

ウサギ:あーあ、プロトコール食べてみたいなぁ。

カエル:どうやったら食べられるの?

ウサギ:専門店があるんだよ。ただし、プロトコールを買うには複雑な手順がある。

カエル:なにそれ。ちょっとミステリアス。

ウサギ:雨の日に行って、店の前を3回行ったり来たりしたあとお店に入るんだ。

カエル:ふむふむ。

ウサギ:すると店員さんが「今日はいい天気ですね」と声をかけてくる。そしたら「本当に気持ちがいいですね」と答えてからカッコよく握手!

カエル:ややこし過ぎるよ。