0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Web技術の基本的な仕組み

Last updated at Posted at 2025-05-05

Web技術の基本的な仕組みの中で下記の用語を学んだので、わかりやすくまとめてみました。

  • ステートレスな通信
  • ステートフルな通信
  • リクエスト
  • レスポンス
  • プロトコル
  • クッキー
  • ポート番号

ステートレスな通信

ステートレスな通信とは、前のやりとりを覚えていない通信。
サーバーはユーザーの情報を保持しない。

例えば、AさんがAmazonにアクセスしログインするとする。

しかし、次のページに進むとまたログインを求められてしまう。
その後、ページを切り替えるごとにログインを求められる。

これはサーバーが「この人が誰か」を覚えていないの原因。

このような通信をスタートレスな通信という。

ステートフルな通信

ステートフルな通信とは
通信とクライアントをセットで管理して識別できる通信のこと。

例えば、上記のステートレスの通信の例で考えると‥

AさんがパソコンからAmazonにアクセスしログインするとする。

すると、サーバーが「この人ログイン済み」だと記録する。

その後、どのページに移動しても再度ログインをする必要はなくなる。

なぜなら、サーバーがあなたの「ログイン情報」を覚えて、状態を保持しているから。

これをスタートフルな通信という。

リクエスト

ブラウザからサーバへ命令を送ること。

例えば、ブラウザで「韓国 ファッション」と検索する。

すると、ブラウザからWebサーバへ「韓国のファッション情報をくれ」という命令が送られる。

この命令のことをリクエストという。

レスポンス

ブラウザから来た命令に対して情報を返すこと。

例えば、ブラウザで「韓国 ファッション」と検索する。

すると、ブラウザからWebサーバへ「韓国のファッション情報をくれ」という命令が送られる。

Webサーバは、
命令を受け取るとデータベースサーバから「韓国のファッション情報」を取得する。

その情報をブラウザに返す。この情報をブラウザに返すことをレスポンスという。

クッキー

クッキーは、HTTPがステートレスな通信であるため、それをステートフルな通信のように扱うための解決策。

【クッキーが生まれた背景】

HTTPはスタートレスな通信方式なので、サーバーはクライアントごとの情報(誰が誰か)を記憶できない。

例えば、一度AさんがAmazonにログインしても、次のページアクセスで「この人がAさんだ」と識別する手段がない。

もしこのままだと、ログインしたユーザーが誰かを特定できず、セキュリティ的にも問題が生じる。

そこで、HTTPに「ユーザー識別の手段」を持たせるために、クッキーという仕組みが生まれた。

【クッキーがクライアントを識別する仕組み】

クライアントがサーバーにリクエストを送ると、サーバーはレスポンスの中に「クッキー」という小さなデータ(識別子)を含めて返す。

このクッキーはクライアント(ブラウザ)に保存され、以降の通信では自動的にサーバーへ送信されるようになる。

クッキーには一意の識別番号が含まれており、サーバーはそれをもとに
「この人はAさんだ」「この人はBさんだ」と見分けることができる。

これにより、HTTPというスタートレスな仕組みをスタートフルのように振る舞わせることができるようになる。

プロトコル

プロトコルとは
コンピュータ同士が通信をする際のルールや基本形式のようなもの。

これがあることで、ソフトウェアやハードウェアが大きく異なっていてもネットワークで接続することができる。

逆に、別のプロトコルであると通信ができない。

例えると、翻訳機のようなもの。

日本とアメリカでは日本語と英語で言語が違うので、
基本的に意思疎通はできない。

しかし、翻訳機があることでお互いの言語を翻訳し意思疎通が取れるようになる。

プロトコルはこの翻訳機のような役割を担っている。

具体的に世界では、どういうプロトコルが使われているかというと、TCP/IPというプロトコルが使われている。

TCP/IPは大きく分けると4つの階層がある。

  • 第4層:アプリケーション層
  • 第3層:トランスポート層
  • 第2層:インターネット層
  • 第1層:ネットワークインターフェイス層

馴染みがあるのは、アプリケーション層なので
それを元に説明をする。

アプリケーション層には下記のような主要プロトコルがある。

HTTPS
Webページの閲覧する際のプロトコル
FTP
ファイルの転送する際のプロトコル
SMTP
メールの送信する際のプロトコル
POP
メールの受信する際のプロトコル
DNS
IPアドレスとドメインを紐づける名前解決する際のプロトコル
SSH
遠隔操作する際のプロトコル

というように、私たちが普段何かしらのサービスを利用する際にはサービスに該当するプロトコルが使われているのである。

ポート番号

ポート番号は
情報がコンピュータに入ってくる際の入口のようなもの。

コンピュータ内には、情報が入るための入り口がたくさんあり、情報はその決められた入口を通って入ってくる。

IPアドレスがコンピュータを特定する番号であるのに対して、
ポート番号はコンピュータ内のプログラムを特定する番号である。

例えば、HTTPSは443番。FTPは20番。SMTPは25番。POPは110番。SSHは22番。

というように振り分けられている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?