はじめに
本記事は、エンジニア初学者の方やこれからwebのお仕事に携わる方や
ITパスポートや基本情報技術者の勉強をされている方向けに作成いたしました。
なんとなく目にしたことはあるけどどういう意味なんだろう?とか
これ勉強で出てきたけどなんだっけな?など拝見された方の学習や再復習の手助けになれば幸いです。
初学者向けの学習本はたくさんありますが
今回は「プロになるためのWeb技術入門」から重要な用語をピックアップして解説していきます。
たくさんのエンジニアの方が初学者向けにオススメしている本で
文章だけではなく図も記載されているので読みやすい良本です。
それでは、用語の解説をしていきます。
リクエスト・レスポンス・HTTPプロトコル
簡易的に表すとこうなります。
クライアント(自分のPCやスマホなど)←HTTP通信→Webサーバ
クライアント側(自分のパソコンやスマホ)からサーバ側へ「〇〇の画面表示したい!」とリクエストを送ります。
サーバ側は、リクエストに応じて「はい!これ依頼されてた〇〇の画面の表示のやつね!」とレスポンスを返します。
クライアントとWebサーバの間にある、HTTP通信は通信プロトコルのことを指します。
正式名称はHyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)
通信をする時には、足並みを揃えてからお互いにやりとりしましょうねと約束事を決めています。
現実世界で例えるならば、片方は日本語、もう片方は英語を喋ってやりとりしてしまうとコミュニケーションが成立しませんよね?通信の世界でも同じです。
なので「○○通信をするときは××なお約束事に従ってやり取りしようね」と事前に決まっています。
クッキー(Cookie)
ネットを閲覧したときに一度は見たことがあるであろう、Cookieを有効化しますか?と出てくるあのCookieです。あのCookieとても大事な役割を果たしています。
Cookieとは、WebサーバからWebブラウザへHTTPレスポンスのヘッダを利用して送る小さなデータのことです。
WebサーバからCookieを受け取ったWebブラウザは、次回と同じWebサーバにアクセスするときに、リクエストと共にCookieを一緒に送信します。
Webアプリケーション側は、リクエストと共に送られてきたCookieを調べることでアクセスしてきた相手が誰なのかが分かるようになっています。
また、意図しない情報が他のWebサーバに送られない仕組みとして、Cookieを受け取ったサーバとは異なるWebサーバに対してはCookieは送りません。
IPアドレスとポート番号
IPアドレスとは、コンピュータに割り当てられる住所のことです。
ポート番号とは、ネットワークとパソコンの間にあるポート(データの通り道)に割り振られている識別用の番号です。
インターネットで情報をやりとりする場合は
現実世界の手紙と同様に送信先(宛先)を指定しなければ正しく届きません。
IPアドレスを指定して送信先を特定することは出来るのですが
どのプロトコルを使うかまでは特定できません。
そこで、ポート番号で指定することで、どのプロトコルを指定するのかを特定しています。
例を挙げるなら、80番ポートはHTTP(Webブラウジング)ですよといった具合です。
代表的なプロトコルにはあらかじめポート番号が振られています。
これを**ウェルノウンポート(well-known ports)**といいます。
代表的なウェルノウンポート
ポート番号 | プロトコル |
---|---|
20, 21 | FTP(ファイル転送) |
22 | SSH(暗号化されたリモートコンピュータとの汎用通信) |
23 | Telnet(リモートコンピュータとの汎用通信) |
25 | SMTP(メール送信) |
53 | DNS(ホスト名解決) |
80 | HTTP(Webブラウジング) |
110 | POP3(メール受信) |
443 | HTTPS(暗号化されたHTTP) |
ステートフル(Stateful Protocol)とステートレス(Stateless Protocol)
あんまり馴染みのない言葉ではありますが説明を見たら「あ〜そんなことなのね〜」ぐらいの感覚で見てもらえると思います。
ステートフルとは、状態を持つプロトコルのことです。
例を挙げると、ネットショッピングでお買い物をする時に必ず欲しい商品をカートに入れてから購入すると思います。
このカートに入れて購入リストに保存している状態こそステートフル(状態を持つ)というわけです。
意外と身近なところで、お世話になっているプロトコルです。
反対に、ステートレスとは、状態を持たないプロトコルのことです。
どちらかというと、インターネットではステートレスの方が一般的です。
序盤で紹介したHTTP通信がまさにステートレス(状態を持たない)なのです。
Googleで「りんご」と検索したときに、「りんご」の検索結果が表示されるわけですが、それ以前や以後に検索していた内容が反映されることはないですよね?
つまり、1回のリクエストに対してレスポンスを返しているのがステートレスなのです。
おわりに
意外と身近な部分で触れているWebの仕組みや用語を出来るだけ簡潔に解説してみました。
学び始めてみると、筆者自身も「そういう仕組みなんだ!」とか「この用語そういう意味だったのか〜」など今後のタメになることばかりでした。
記事を拝見された方の学習や再復習の手助けになれば幸いです。