【完全未経験】先ずは知ろうWeb技術の基礎の基礎 ~用語編~

# はじめに
Web業界をまだ右も左も分からない私が**Web技術の基礎の基礎**について学んだ知識を自分の言葉でできるだけ分かりやすくまとめることを試みました。

# リクエストとレスポンス
リクエストとレスポンスは、情報のやり取りの流れを表す言葉です。
コンピューターやWebのシステムが正しく動作するためにはリクエストを正しく送ることと、レスポンスを正しく受け取ることが重要になります。

## リクエスト
リクエストとは、情報を要求するときに送るメッセージのことです。例えば、**Webブラウザ**でWebページを開く時、**Webサーバー**に対してそのページの情報を要求するリクエストが送られます。

※ **Webブラウザ**：インターネットでウェブページを閲覧するためのソフトウェアです。ウェブサイトを表示し、リンクを辿ったりすることができます。例えば「Google Chrome」や「Mozilla Firefox」などが一般的なWebブラウザです。
※ **Webサーバー**：サービスを提供するコンピューターを指します。以前は「wwwサーバー」「HTTPサーバー」とも呼ばれていましたが、現在は「Webサーバー」と呼ばれることが主流です。

## レスポンス
レスポンスとは、リクエストに対する応答のことです。Webサーバーはリクエストを受け取ったら、要求された情報を含んだレスポンスを送り返します。Webブラウザは受け取ったレスポンスを解釈して、Webページを表示します。

# プロトコル
プロトコルは、コンピューターやネットワーク上で情報を送受信するための取り決めやルールのことです。我々人間が人とコミュニケーションを行う時にはルールやマナーがあります。プロトコルも同じで、コンピュータ同士やネットワーク間で情報をやり取りする際に必要なルールや手順を定めています。

以下は代表的なプロトコルの例です（他にもまだあります）。
- **FTP (File Transfer Protocol)**：ファイルの転送に使用されるプロトコルです。ファイルをサーバーから**クライアント**に転送するための手順やコマンドを定めています。
- **SMTP (Simple Mail Transfer Protocol)**：メールの送信に使用されるプロトコルです。**メールサーバー**同士でメールを送受信するための取り決めを定めています。
- **HTTP (Hypertext Transfer Protocol)**：ウェブブラウザとウェブサーバーの間で情報をやり取りするためのプロトコルです。Webページの要求や応答に使用されます。

※ **クライアント**：Webブラウザを利用するユーザー側のことです。
※ **メールサーバー**：メールの送受信を管理するシステムです。

# ポート（Port）・ポート番号
**コンピューターネットワーク**において、データが出入りする場所や通り道のようなものです。イメージとしては、建物にあるドアや部屋のようなものです。ポート番号は0から65535までの範囲で表され、特定のプロトコルや**アプリケーション**に関連付けられています。コンピュータでは、1つの**ネットワークインターフェース**には複数のポートがあり、それぞれに番号が割り振られています。

例えば、Webサイトを表示するために使われるポート番号は通常80番や443番、メールの送信には25番が使われます。ポート番号を使うことで、データは正しい部屋（ポート）に送られ、正しいアプリケーションやサービスで処理されます。それぞれのポート番号は特定の目的に割り当てられており、情報がスムーズに送受信されるように役立っています。

ポートはネットワーク通信において重要な役割を果たしており、インターネットやコンピュータネットワークの中でデータの正確な送受信を可能にしています。

例えに建物を用いましたが、Portにはもともと「港」という意味があります。

※ **コンピューターネットワーク**：複数のコンピューターが互いに接続されて情報をやり取りするシステムのことです。
※ **アプリケーション**：アプリケーションソフトウェアの略です。アプリ、ソフトと一般に言われているものがそれにあたります。
※ **ネットワークインターフェース**：コンピューターがネットワークに接続するための入口です。

## 代表的なポート番号とそのプロトコル

| ポート番号 | プロトコル |
| --- | --- |
| 20, 21 | FTP（ファイル転送） 
| 22 | SSH（暗号化されたリモートコンピューターとの汎用通信） |
| 23 | Telnet（リモートコンピューターとの汎用通信） |
| 25 | SMTP（メール送信） |
| 53 | DNS（ホスト名解決） |
| 80 | HTTP(WEBブラウジング） |
| 110 | POP3（メール受信） |
| 443 | HTTPS（暗号化されたHTTP) |



# Stateful Protocol（ステートフルプロトコル）とStateless Protocol（ステートレスプロトコル）
「Stateful Protocol（状態を持つプロトコル）」と「Stateless Protocol（状態を持たないプロトコル）」は通信の方法に関する概念です。

## Stateful Protocol（ステートフルプロトコル）
通信が行われる際に状態（State）を保持するプロトコルです。イメージすると、お互いに通信をする人同士が会話をする時、話の内容を覚えているような感じです。

例えば、電話での会話です。通話を始めたらお互いにお互いの声や話した内容を覚えていますよね。このような通信のことを「Stateful Protocol（ステートフルプロトコル）」と言います。

- Stateful Protocol：通信の内容を覚えている通信方法です。
例）**FTP（File Transfer Protocol）**

※ **FTP（File Transfer Protocol）**:インターネット上でファイルを送受信するための仕組みです。

## Stateless Protocol（ステートレスプロトコル）
通信が行われる際に状態（State）を保持しないプロトコルです。イメージすると、お互いの声や話した内容を覚えていない状態です。

例えば、手紙のやり取りです。手紙を送ったり受け取ったりする際、手紙の中身ややり取りについては手紙自体に記録されていますが、手紙を送る人と手紙を受け取る人同士が直接会話をするわけではありません。このような通信のことを「Stateless Protocol（ステートレスプロトコル）」と言います。

- Stateless Protocol：通信の内容を覚えず、それぞれの通信を独立したものとして処理する通信方法です。
例）**HTTP（Hypertext Transfer Protocol）**

※ **HTTP（Hypertext Transfer Protocol）**:ウェブブラウザとウェブサーバーの間で情報をやり取りするためのプロトコルです。Webページの要求や応答に使用されます。

# Cookie（クッキー）
Cookieは、Webサイトが利用者の情報を保存するための技術です。例えば、Webサイトを訪れるときにユーザー名やパスワードを入力すると、WebサイトはCookieにその情報を保存します。次回サイトを訪れるときには、Cookieを使ってユーザー名やパスワードを自動的に入力してくれます。

Cookieの語源には諸説ありますが、アメリカやカナダの中華料理店で食後に出される「fortune cookie（フォーチュン・クッキー）」に由来しているという説が有力です。

## Cookieのメリット・デメリット
**メリット**
1. **SNSやWebサイトのログイン時に入力の手間が省ける**
SNSやオンラインショップにスムーズにログインできることは、ユーザーにとって大きなメリットです。Cookieを使用すれば、各種Webサービスを利用する時に、ユーザー名やパスワードを入力する手間が省けます。

2. **ECサイト内のカート情報を保存しておける**
**ECサイト**内のカート情報を保存しておけることも、Cookieを使用するメリットのひとつです。Cookieを使用すれば、商品をカートに入れた状態でECサイトを離れても、商品が削除されることはありません。再びECサイトにアクセスしたときには、カートに商品が入った状態で買い物を再開できます。間違ってブラウザを閉じてしまったり、決済するのを忘れてしまったりした場合でも、カート情報が保存されているため、わざわざ商品を探し直す必要はありません。

3. **自分の興味や関心にマッチした広告が表示される**
表示される広告を最適化できることも、Cookieを使用するメリットと言えます。Cookieを使用すれば、Webサイトを閲覧中に、自分の興味や関心にマッチした広告が表示されるようになります。意味のない広告ばかりが表示されて、不快になることを防げるようになります。
さらに広告を配信する側にもメリットがあります。費用をかけて広告を配信しても、興味のないユーザーばかりで、広告をクリックしてもらえなければ意味がありません。Cookieを活用することで、興味のありそうなユーザーへアプローチでき、効率よく集客を行うことができます。

※　**ECサイト**:「Electronic Commerce」の略で、電子商取引を意味します。つまりインターネット上で商品やサービスを販売するオンラインのショッピングサイトのことです。

**デメリット**
1. **プライバシーの懸念と追跡されてしまうリスク**
Cookieには個人の情報が含まれることがあり、プライバシーの問題が発生する可能性があります。また、CookieはWebサイト間で共有されることもあり、行動が追跡される可能性があります。

2. **ストレージの制限**
一部のブラウザでは、サイズの制限、数量の制限、**ドメイン**の制限といった制限があります。

※ **ドメイン**:インターネット上の住所のようなものです。Webサイトやメールアドレスを特定するために使われます。

# おわりに
今回、取り上げました用語はWebの世界では極々一部で、解説も表層的なものでしたが、とても**大事な知識**です。広くて深いWebの世界、もしご興味がありましたらいろいろとググってみてください。

また、既にWeb業界でご活躍されてらっしゃる先輩方、間違いがありましたらご指摘いただけると嬉しいです。

ご覧くださりありがとうございました。