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ページを再構成して表示する。
この手順を整理すると、こんなふうになる。
- リクエスト:Webブラウザから、閲覧したいページを要求する
- レスポンス:Webサーバーから、HTMLファイルや画像ファイルを返す
- 返ってきたレスポンスから、Webページを再構成する
リクエストでは、次のような内容(メッセージ)を送信する。通常は、リクエストヘッダまでを送信する。Webフォームを入力したり、ファイルをアップロードする場合には、その内容をリクエストボディとして送信する。
- メソッド:リクエストでおこなう操作の種類
- リクエストURI:取得するWebページのアドレス
- プロトコルバージョン:HTTP/1.1
- リクエストヘッダ:リクエストについての追加情報
- リクエストボディ:Webフォームの内容や添付ファイル
このような仕組みを基本にして、現在は様々な便利な機能を実現しているんだ。たとえば、HTTPS (Hyper Text Transfer Protocol Secure)は、HTTPと比較してよりセキュリティに強い通信が可能だ。
おまけのコント
ウサギ:プロトコルって、お菓子の名前っぽくない?
カエル:プロ・ト・コールなら、たしかにそんな感じかも。で、どんなお菓子なんだろ。
ウサギ:甘くって、クルクルっとして、プロテインが入っている。
カエル:なんか、身体に良さそう。
ウサギ:あーあ、プロトコール食べてみたいなぁ。
カエル:どうやったら食べられるの?
ウサギ:専門店があるんだよ。ただし、プロトコールを買うには複雑な手順がある。
カエル:なにそれ。ちょっとミステリアス。
ウサギ:雨の日に行って、店の前を3回行ったり来たりしたあとお店に入るんだ。
カエル:ふむふむ。
ウサギ:すると店員さんが「今日はいい天気ですね」と声をかけてくる。そしたら「本当に気持ちがいいですね」と答えてからカッコよく握手!
カエル:ややこし過ぎるよ。