インターネットで調べ物をするとき、スマホで友達とメッセージのやりとりをするとき、実は目に見えない「ルール」が働いているって知ってますか?それが「プロトコル」です。難しい言葉に聞こえるかもしれませんが、要するに「コンピューター同士が仲よくやりとりするための約束ごと」なんです。野球をするとき試合の進め方が決まってるように、インターネットでも「こうやって喋ろうぜ」という決まりがあるんです。この記事を読めば、プロトコルが何なのか、どうして必要なのか、そしてあなたが毎日使ってるサービスにどう関わってるのかがわかっちゃいますよ。
- プロトコルは、つまり コンピューター同士が会話するときのルール で、みんなが同じやり方で通信するための約束事だよ。
- 身近なものだと HTTP や HTTPS がいっぱいあって、やることによって使うプロトコルが違うんだ。
- ルールがあるから 世界中のコンピューターが繋がっているんだ。もしプロトコルがなかったら大混乱だよ。
もうちょっと詳しく
プロトコルってのは、コンピューターの世界における「共通言語」だと思ってください。人間でいえば、日本語で喋ってる人と英語で喋ってる人が会話しようとしたら翻訳が必要ですよね。コンピューター同士も同じで、異なるメーカーのコンピューターや、遠く離れたコンピューター同士がやりとりするには、共通の「言い方」が必要なんです。プロトコルがその役割を果たしてるんです。また、プロトコルにはいろいろな種類があって、どんな目的で通信するかによって使い分けてます。これがあるから、私たちは意識することなく、毎日スムーズにインターネットを使えてるわけです。
プロトコル=「みんなが守る通信ルール」。これがないとインターネットは成立しません。
⚠️ よくある勘違い
→ 実はあなたが毎日使ってるサービス全部がプロトコルで動いてます。知らないうちに使ってますよ。
→ これが正解。複雑に聞こえますが、実は日常のあらゆる場面で活躍してるんです。
[toc]
プロトコルってぶっちゃけ何なのか
プロトコルという言葉は、とにかく難しく聞こえます。でも実は単純な考え方なんです。プロトコルは、つまり「コンピューター同士が話し合うための約束ごと」なんだと思ってください。
想像してみてください。あなたが外国に行ったとしましょう。周りの人たちは全員違う言葉を話しています。でもどうやってコミュニケーションを取ればいいのか、みんなで「英語で話そうか」と決めたわけです。そうすることで、言葉が違う人たちでも会話ができるようになります。
コンピューター同士もこれと同じです。異なるメーカーのパソコンや、遠く離れたサーバーとあなたのスマホが「何かやりとりしたいな」と思ったとき、「どうやって話し合おう?」ってなりますよね。そこで「こういうやり方で情報を送ろう、こういう形で受け取ろう」というルールが必要になります。それがプロトコルなんです。
もう一つ例えを出すなら、プロトコルは交通ルールみたいなものです。信号の色が赤だったら止まるとか、黄色になったら気をつけるとか、みんなが守るべきルールがありますよね。それがあるから車も人も安全に動けるし、交差点で事故が起きにくくなります。プロトコルも同じで、みんなが同じルールに従うことで、インターネットがスムーズに動作するわけなんです。
じゃあ具体的に、どんなプロトコルがあるのでしょうか。一番有名なのがHTTP(エイチティーティーピー)です。これはWebサイトを見るときに使うやつです。あなたがスマホでSNSを見てるとき、実はこのHTTPが働いてるんです。ブラウザであるサイトにアクセスするとき、コンピューターは「このデータをちょーだい」とサーバーに言います。そのやりとりがHTTPというルールに従ってるわけです。
また、HTTPS(エイチティーティーピーエス)というのもあります。これは「セキュアなHTTP」という意味で、つまり「情報が暗号化されたHTTP」です。銀行のサイトとかオンラインショップでお金に関する情報をやりとりするときは、絶対にHTTPSを使います。HTTPだと情報が丸見えになっちゃうんで、危険だからです。
プロトコルは「約束」だから大事
ここまで読むと、「別にそんなルールなくてもいいんじゃ?」と思うかもしれません。コンピューター同士が話し合えればいいんでしょ?って。でも実は、そうじゃないんです。プロトコルがないと、インターネットは成立しません。
なぜかというと、インターネットには、世界中のありとあらゆるコンピューターが繋がってるからです。アメリカのサーバーと日本のスマホ、中国のパソコンとヨーロッパのサーバー。言ってみれば、国籍も文化も言葉も違う「誰とでも繋がる」ってことなんです。そんなバラバラな環境で、各企業が「うちはこのやり方で通信するぜ」って好き勝手なことをしてたらどうなると思いますか?大混乱です。
Aという企業のコンピューターは「データはこんな形で送るぜ」とやる。Bという企業のコンピューターは「あ?何言ってんだ、わからんわ」となる。そんなことになってたら、インターネットなんて使い物になりません。だから世界中で同じプロトコルを使おうって決めたわけです。これのおかげで、どんなメーカーのコンピューターでも、どこの国のサーバーでも、みんなが同じ言葉で話し合えるようになるんです。
身近なプロトコルの種類
さっき「HTTP」と「HTTPS」の話をしましたが、実は世界中にはもっともっといっぱいのプロトコルがあります。何をするかによって、使うプロトコルが違ってくるんです。
Webサイトを見るときのHTTP・HTTPS
まずはHTTPです。これはWeb上で情報をやりとりするときに使います。あなたがGoogleで検索するとき、YouTubeで動画を見るとき、この HTTP が働いてます。具体的には、あなたのブラウザがサーバーに「このページのデータちょーだい」とお願いして、サーバーが「はい、どうぞ」とデータを送ってくるというやりとりです。
そしてHTTPSは、HTTPの「より安全なバージョン」です。つまり、データが暗号化されてるんです。暗号化っていうのは、つまり「誰にも読めないようにコードで隠してる」ということです。銀行のサイトで口座番号を入れるとき、クレジットカードの番号を入れるとき、個人情報を扱うときはみんなHTTPSを使ってます。そうしないと、犯人に情報を盗まれちゃいますからね。
メールを送るときのSMTP・POP3・IMAP
メールを送るときは、また違うプロトコルが使われます。SMTP(エスエムティーピー)は、つまり「メールを送信するときのルール」です。あなたがメールアプリで「送信」ボタンを押すと、SMTPというプロトコルに従ってサーバーにデータが送られます。
一方、メールを受け取るときはPOP3(ポップスリー)やIMAP(アイマップ)というプロトコルが使われます。これらは、つまり「サーバーからメールを取得するときのルール」です。POP3 は受け取ったメールをあなたのスマホに保存するやり方で、IMAP はサーバーに保存したまま見るやり方です。だからもしスマホを新しくしても、IMAP なら前のメールが見れちゃうわけです。
ファイルをやりとりするときのFTP
FTP(エフティーピー)は、つまり「ファイルを送ったり受け取ったりするときのルール」です。WebサイトをインターネットにアップロードするときとかFTPを使います。例えば、デザイナーさんが作ったWebサイトのファイルをサーバーに送るとき、「FTPでこっちのファイルをサーバーにぽんっと送ってくれ」みたいにやるわけです。
ゲームやビデオ通話のUDP
ちょっと話が複雑になりますが、UDP(ユーディーピー)という別のプロトコルもあります。これは速さを重視するときに使うんです。例えば、オンラインゲームをしてるとき、ビデオ通話をしてるとき、むちゃくちゃ高速に情報をやりとりする必要がありますよね。そういうときはUDPを使うんです。ただし、UDP は「ちょっと情報が欠けちゃう可能性もあるけど、とにかく速い」というやり方なんです。
一方、メールとかWebサイトのデータは、絶対に欠けちゃダメですよね。一文字でも間違ってたら危ないですから。そういうときはTCP(ティーシーピー)という別のプロトコルを使うんです。つまり「確実だけど、ちょっと遅い」というやり方ですね。
プロトコルはなぜ「約束」が必要なのか
ここまでで「いろいろなプロトコルがあるんだな」ってわかったと思います。でも、なぜそこまで細かく「約束」を決める必要があるんでしょうか。ぶっちゃけ、「とにかく情報が送受信できればいいじゃん」って思いませんか?
「決まり」がないと混乱する
想像してみてください。あなたが友達に「明日の約束は?」ってメッセージを送ったとします。でも友達には「時間は?」「場所は?」ってやり取りがたくさん必要ですよね。だから皆さんは、メッセージの形式を決めてるんです。「日付、時間、場所」という順番で話すとか、「何を持ってくるか」「誰が行くのか」とか。
コンピューター同士もこれと同じです。プロトコルがないと、「あ、データが来たけど、これどうやって読むんだっけ?」ってなっちゃいます。例えば、Aさんのコンピューターが「日本語で送るぜ」と思ってデータを送ったのに、Bさんのコンピューターが「あ?何言ってるのかわかんない、英語で頼むわ」と思ってたら会話が成立しませんよね。
世界中で同じ「言葉」を使うこと
インターネットの大事なところは、世界中が繋がってるってことです。日本のスマホからアメリカのサーバーにアクセスできるし、イギリスのコンピューターから中国のデータベースに繋がったりもします。そんな状況で、各メーカーが好き勝手に「うちはこのやり方でやるぜ」って決めてたら大変ですよ。
だから国際機関とか企業の有志たちが集まって、「こういうふうに通信しようぜ」って決めたわけです。HTTP だったら「リクエストはこんな形」「レスポンスはこんな形」って細かく決めてます。そうすることで、全く異なるコンピューターやサーバーでも、同じ「言葉」で話し合えるわけなんです。
野球だって、ルールがあるから成立するじゃないですか。「ボールは投げるぜ。バッターは棒で打つぜ。走り方は一塁、二塁、三塁、本塁」みたいに決まってるから、日本のチームがアメリカのチームと試合できるんです。プロトコルも同じで、世界中の「試合」(通信)を成立させるための約束ごとなんです。
セキュリティと信頼性
プロトコルには、もう一つ大事な役割があります。それはセキュリティ(安全性)と信頼性です。つまり「ちゃんと安全に、正しく情報が届くよ」という保証をしてくれるんです。
例えば、HTTPS は単に「データを暗号化する」というだけじゃなく、「このサイトは本当に本物ですよ」っていう証明もしてくれます。もし HTTPS じゃないサイトだったら、詐欺サイトかもしれません。だから、お金や個人情報を扱うときは絶対に HTTPS になってるサイトを使わなきゃダメってわけです。
また、TCP というプロトコルは「データが全部正しく届いたかどうか、確認しながら送る」というやり方です。もし途中でデータが破損したら「あ、ダメだった。もう一回送ってくれ」って言うわけです。だからメールとか大事なファイルは、確実に正しく送受信されるんです。
プロトコルを知ると、インターネットがわかる
プロトコルについて理解すると、インターネットの全体像が見えてくるんです。今まで「なんで銀行のサイトは HTTPS なの?」「メールはなんで送信と受信で別の方法なの?」みたいな疑問が、全部スッキリ解けちゃいます。
なぜWebサイトが見られるのか
あなたがGoogle Chrome とか Safari で「yahoo.co.jp」と打ち込むと、Webサイトが見えますよね。でも実は、目に見えないところでめっちゃ複雑なやりとりが起きてるんです。
まず、あなたのブラウザが「yahoo.co.jp のサーバーさん、データちょーだい」とお願いします。これは HTTP(または HTTPS)というプロトコルに従ってます。そのお願いが、インターネットを通じてヤフーのサーバーに届きます。サーバーは「あ、データを求めてるんだな」と理解して、Webサイトのデータを送り返します。あなたのブラウザがそれを受け取って、画面に表示するわけです。
この全部のやりとりがプロトコルというルールに従ってるから、スムーズに動作するんです。もしプロトコルがなかったら、「あ、データが来たけど、これどういう形なの?」ってなっちゃって、Webサイトなんて表示されません。
なぜメールが届くのか
メールを送ったとき、相手がちゃんと受け取れるのも、プロトコルのおかげです。
あなたがメールアプリで「送信」ボタンを押すと、SMTP というプロトコルに従ってメールサーバーに送られます。サーバーは「あ、メールだ」と理解して、受信人のメールサーバーに「このメール届けてくれ」と頼みます。受信人のサーバーは、そのメールを保管しておきます。相手が「メールをチェック」ってやると、POP3 か IMAP というプロトコルに従って、そのメールが相手のスマホに表示されるわけです。
この全部のやりとりがプロトコルで決まってるから、相手が何度も確認しなくても「あ、届いてるな」ってわかるし、メールが消えたりしないんです。
なぜセキュリティが大事なのか
銀行のサイトや Amazon のサイトで、HTTPS を使ってるのは「セキュリティのため」ですよね。これはプロトコルの大事な役割の一つです。
もし HTTPS じゃなくて、普通の HTTP を使ってたらどうなると思いますか?クレジットカード番号を入れたら、その情報が丸見えになっちゃいます。犯人に盗まれて、あなたのお金が盗まれちゃうかもしれません。だから HTTPS という「暗号化されたプロトコル」が必要なわけです。
プロトコルに「暗号化」という機能をつけることで、情報をやりとりするときに「秘密裡に」できるわけなんです。これはインターネットにおけるパスポートみたいなもんです。「この人は本当に本人ですよ」「このサイトは本物ですよ」って証明してくれるんです。
プロトコルは常に進化してる
最後に知ってほしいのは、プロトコルは固定されたものじゃなくて、常に進化してるってことです。
HTTP から HTTPS へ
昔は、ほとんどのサイトが HTTP を使ってました。別に暗号化する必要ないと思われてたんです。でも、インターネットを使う人が増えて、犯罪も増えて、「やばい、セキュリティが必要だ」ってなりました。だから HTTPS が登場したわけです。
今は、Google とか大手の企業は「HTTPS じゃないサイトは信用ならんぜ」って言ってるくらいです。だから、新しいサイトを作ろうとしてる人は、絶対に HTTPS で作ります。
HTTP/2 や HTTP/3 の登場
さらに最近は HTTP/2 とか HTTP/3 という新しいバージョンが出てきました。これらはより高速に、より効率的に通信するためのバージョンです。インターネットの速度が求められるようになったから、プロトコルもそれに対応する必要があったわけです。
実は、あなたが今見てるこのサイトも、HTTP/2 とか HTTP/3 を使ってる可能性があります。知らないうちに、新しいプロトコルの恩恵を受けてるわけですね。
なぜプロトコルは進化するのか
プロトコルが進化する理由は、シンプルです。世界の変化に対応するためです。
昔は、インターネットはパソコンだけのものでした。でも今は、スマホ、タブレット、スマートウォッチ、いろいろなデバイスが繋がってます。動画も見るし、ゲームもするし、リアルタイム通信もします。そんな変化に対応するためには、プロトコルも進化しなきゃダメなわけです。
また、セキュリティの脅威も増えてます。新しい攻撃方法が出てきたら、それに対応する新しいプロトコルが必要になります。だから、エンジニアたちは常に「どうやってより安全に、より高速に通信できるか」を考えてるわけなんです。
プロトタイプって何?わかりやすく解説
