3. HTTPプロトコルとWebサーバー

OSIモデル

OSIモデルとは

OSI(Open Systems Interconnection)モデルは、ネットワーク通信のプロトコルを階層的に分類した標準的なモデルです。OSIは7つの階層から構成されています。

OSIモデル一覧

Lv 説明
7 アプリケーション層 最上位の層で、ユーザーが直接触れる通信を提供 HTTP、FTP、SMTP
6 プレゼンテーション層 データ形式を管理し、暗号化、圧縮、表現形式の変換 HTML
5 セッション層 PC間の通信を確立、維持、終了の手順を管理 HTTPS
4 トランスポート層 パケット管理、エラー・フロー制御、エンドツーエンド通信 TCP,UDP
3 ネットワーク層 パケットのルーティングや転送を管理 IPアドレス
2 データリンク層 ネットワーク上の直接的な接続を管理 MACアドレス
1 物理層 ネットワークの物理的な接続や伝送手段 ケーブル、電波など

HTTPプロトコル

WebとURL

普段何気なく利用しているSNS、ショッピング決済、検索サイトは Webブラウザで様々なデータを送受信しています。 ユーザ(利用者)は Webブラウザやスマホアプリを利用して、インターネット上のWebサーバに URL でアクセスします。

URLのルール

Web通信で必須のURLを分解すると 「プロトコル」「ホスト名」「ポート番号」 に大きく分けられます。ホスト名はインターネットではドメインとして利用されます。

プロトコルとドメインの間は :// で区切り、その他の /フォルダと決められています。

プロトコル

Webシステムの開発では、Webブラウザ(クライアント)とWebサーバ(サーバ)の通信プロトコルというルールで決まっています。主なプロトコルは、 「HTTP」と「HTTPS」プロトコルがあります。

HTTP プロトコル

HTTPプロトコルは「Hypertext Transfer Protocol」の略で、http でブラウザやスマホからWebサーバと通信します。

HTTPS プロトコル

HTTPSプロトコルは「Hypertext Transfer Protocol Secure」の略で、http と基本的に同じですが、暗号化された通信です。例えば、GoogleのURLは 「https://www.google.com」でアクセスします。

ドメイン

ドメインとは

ドメインはインターネット上の住所で、Webサーバを特定するための文字列です。例えばGoogleのドメイン「google.com」は世界で1つしかないURLで、ブラウザにドメインを入力するとGoogleのWebページにアクセスできます。

グローバルIPアドレス

グローバルIPアドレスはインターネット上で世界で1つだけのIPアドレスです。ドメインでWebサーバに接続すると、内部的にはグローバルIPアドレスで通信しています。 Webページをインターネットに公開するには、グローバルIPアドレスドメインの取得は必須です。

DNS(ドメインネームサーバ)

DNS(ドメインネームサーバ) はグローバルIPアドレスとドメインを紐づける情報サーバで、世界中に配置されています。クライアントがドメインでアクセスすると、DNSがグローバルIPアドレスを特定してサーバに接続します。

グローバルIPの取得

グローバルIPは通常、AWSGCPAzure といった外資系のクラウドサービスや、さくらインターネットGMOなどの国内クラウドサービスなどで取得できます。ただ、あまり安いサービスだとグローバルIPを共用で使うこともあるので、注意が必要です。

グローバルIPアドレスが変更になった場合

将来、サーバの移行や故障などでグローバルIPアドレスが変わっても、DNSにグローバルIPアドレスを再登録すれば大きな影響はありません。

ドメインの取得

ドメインはレジストラというドメイン管理の業者を通じて取得します。レジストラは「AWS Route53」「Google Domain」「お名前.com」など数多く存在します。

AWS Route53
Google Domain
お名前.com

ホスト

ホストとは

ホスト(host)はインターネット通信しなくても名前でPCを特定できる仕組みで、ホスト(hostname)の名前をホスト名といいます。ローカルネットワークであればドメインがなくても、ホストでアクセスできます。

localhost

自分PCのホスト名でよく利用されるのがlocalhost(ローカルホスト) です。自分のPCにWebサーバを起動していれば、http://localhostでアクセスできます。

ポート番号

ポート番号とは

ポート番号は、さまざまなネットワーク通信に対応するための番号(1〜65535)です。同じIPアドレス接続でもポート番号が違えば別通信になります。Web通信ではHTTPプロトコルが「80」、HTTPSプロトコル「443」となっています。

主なポート番号
ポート番号 TCP/UDP プロトコル 説明
80 TCP http デフォルトのWeb通信
443 TCP https セキュアなWeb通信
22 TCP ssh セキュアなコンソール通信
25 TCP smtp SMTPメール送信
110 TCP pop3 POPメール受信

ブラウザのポート番号は省略

ブラウザの正式なURLは以下の通りですが、ポート番号 80443 はデフォルトの設定なので通常省略します。

http://www.google.com:80
https://www.google.com:443

ポート番号のカスタマイズ

またポート番号はカスタマイズすることができます。例えば、開発で複数のWebサーバを利用したい時に 88 や 8080 といった任意のポート番号を設定することができます。

http://localhost:88
http://localhost:8080

TCPとUDPの違い

TCP (Transmission Control Protocol)とUDP(User Datagram Protocol)はともにネットワーク通信のポート番号を管理するプロトコルです。TCPはデータを確実に送信できることを確保し、UDPはTCPより高速データ通信が可能ですがエラー発生しやすくなります。

プロトコル 方式 特徴
TCP 1対1 安全性重視の通信
UDP 1対多 スピード重視の通信

演習

問題1

https://google.com/ でプロトコルはどれですか?

1)https

2)google.com

3)google

4)/

問題2

世界で1つだけのIPアドレスを何といいますか?

1)グローバルIPアドレス

2)ローカルIPアドレス

3)ホスト

4)ドメイン

問題3

インターネット通信しなくても名前でPCを特定できる仕組みを何といいますか?

1)グローバルIPアドレス

2)ローカルIPアドレス

3)ホスト

4)ドメイン

問題3

HTTPプロトコルのポート番号は何番ですか?

1)80

2)443

3)22

4)25

問題4

HTTPSプロトコルのポート番号は何番ですか?

1)80

2)443

3)22

4)25