プロトコル
Protocol
概要(サマリー)
プロトコルとは、コンピュータ同士が通信するときに使う、手順や形式の共通ルールのことである。
人間同士でも、電話なら「もしもし」から話し始めたり、郵便なら住所を書いたりする。コンピュータの通信でも同じように、「どんな形で送るか」「どの順番でやり取りするか」という約束が必要になる。その約束がプロトコルである。
Webサイトを見るときは、ブラウザとサーバーがHTTP/HTTPSというプロトコルに沿って通信している。
詳細解説
プロトコルは通信の作法である
プロトコルは、通信相手と正しく情報をやり取りするための作法である。
たとえば、ブラウザでWebページを開くときは、ブラウザがサーバーへ「このページをください」というHTTPリクエストを送る。サーバーはそのルールに沿って、HTMLや画像などを返す。
このとき、送る側と受け取る側が別々のルールで話していたら通信は成立しない。片方が日本語で話し、もう片方が英語の文法だけを期待しているような状態になる。
代表的なプロトコル
初心者がまず見かけるプロトコルには、次のようなものがある。
- HTTP/HTTPS: WebページやAPI通信で使われる
- FTP/SFTP: サーバーへファイルを転送するときに使われる
- SSH: サーバーを安全に操作するときに使われる
- DNS: ドメイン名をIPアドレスへ変換するときに使われる
たとえば「FTPでサーバーへアップロードする」「HTTPSのURLにアクセスする」という説明に出会ったら、それぞれ違う通信ルールを使っていると考えるとよい。
URLとプロトコルの関係
URLの先頭にある https:// や ftp:// は、どのプロトコルで通信するかを示している。たとえば https://example.com なら、HTTPSというルールでWebサーバーへアクセスするという意味である。
AIコーディングとプロトコルの関係
AIに「このAPIへリクエストを送るコードを書いて」と頼むと、裏側ではHTTPというプロトコルが前提になることが多い。
もしエラーが出たら、「HTTPメソッドはGETかPOSTか」「URLはHTTPSか」「サーバー側のポート番号は合っているか」といった確認が必要になる。プロトコルを知っていると、エラー文の意味をただの暗号ではなく、通信ルールの食い違いとして見られるようになる。
よくある勘違い
プロトコルはアプリ名ではない
プロトコルはアプリやサービスそのものではなく、通信のルールである。ChromeやSafariはブラウザ、HTTPは通信プロトコル、というように役割が違う。
HTTPSはHTTPとは完全に別物?
HTTPSはHTTPの通信を暗号化して安全にしたもの、と考えるとわかりやすい。WebサイトやAPIでは、基本的にHTTPSを使うのが前提である。
ポート番号とプロトコルは同じ?
同じではない。プロトコルは通信のルールであり、ポート番号はサーバー内のどの窓口へ通信を届けるかを示す番号である。たとえばHTTPは80番、HTTPSは443番がよく使われる。
より詳しくAIに聞いてみよう
- プロトコルとは何か、初心者向けに身近な例で説明してください。
- HTTP、FTP、SSH、DNSの違いを整理してください。
- Webサイトを開くときに、どんなプロトコルが関係するのか教えてください。
- URLの先頭にあるHTTPやHTTPSが何を表しているのか説明してください。
- AIにAPI通信のコードを作らせるとき、プロトコルに関して確認すべき点を教えてください。