Webサイト制作のための「通信プロトコル」と「URL」
「通信プロトコル」とは、「通信」、特に「電気通信」を行うための「プロトコル」である。「電気通信」における「プロトコル」とは、データの送信側と受信側で合意しておくべき共通の手順であり、これにより「通信」が成立する。
最も有名な「通信プロトコル」のまとまりは、「インターネットプロトコルスイート(別名:TCP/IP)」である。
ここでは、Webサイトに強く関係する「通信プロトコル」のみを扱う。
「URL」とは、ファイルやディレクトリの場所を示す記述方式であり、「DNS(Domain Name System)」というシステム及び「通信プロトコル」と深い関わりを持つ。
目次
1. Webサイトに関するURL
公式サイト:URL Standard - WHATWG
参考:What is a URL? - Learn web development | MDN
「URL(Uniform Resource Locator)」とは、「ファイル」や「ディレクトリ」の場所を示す記述方式である。「URL」は、「HTML」、「HTTP」と並ぶ「World Wide Web(WWW)」の3つの重要な技術である。
1-1. 「URL」の基本的な構造
「URL」の基本的な構造は以下のようになっている。
Scheme | : | // | Host | : | Port | Path | ? | Query | # | Fragment |
---|---|---|---|---|---|---|---|---|---|---|
https | example.com | 指定なし(指定しない場合は、URIスキームのデフォルトのポート番号) | /directory/index.html | q=text | id_attribute | |||||
https://example.com/directory/index.html?q=text#id_attribute |
1-2. URLのスキーム(URI scheme)
URIスキームとは、リソースに関する情報(場所や名前など)を特定の記法に基づいた1つの文字列で表した識別子。
参考:List of URI schemes - Wikipedia
「URL」, 「URI」, 「URN」, 「IRI」の違いとその扱いには、様々な立場からそれぞれの見解がある。
URL, URI, IRIの違いについて | 参考:Uniform Resource Identifier - Wikipedia#URLs_and_URNs |
---|---|
参考:https://url.spec.whatwg.org/#goals |
「Webサイト」及び「Webブラウザー」と深いかかわりを持つ「URIスキーム」には、特に「http(https)」、「about」、「file」、「data」、「view-source」の5つが挙げられる。
1-2-1. http(https)
"http"とは、「HTTP(Hypertext Transfer Protocol)」という「通信プロトコル」のURIスキームである。
「HTTP(Hypertext Transfer Protocol)」とは、「ハイパーテキスト」システムを構築するために、(クライアント・サーバーモデルとして機能している)インターネット上でファイル(Webリソース)をやり取りするための通信プロトコルである。
しかし、HTTPではデータが暗号化されていないため、セキュリティ面で脆弱である。そのため、HTTPにSecureの要素を加え拡張した「HTTPS(Hypertext Transfer Protocol Secure)」を使用する"https"が主流となっている。
暗号化通信には、「SSL」もしくは「TLS」というコンピューターセキュリティのための通信プロトコルを用いる。
https://example.com/
参考:HTTP - MDN
参考:Hypertext Transfer Protocol - Wikipedia
httpとhttpsの違い(参考:HTTPS - Wikipedia#Difference_from_HTTP)
1-2-2. about
"about"とは、アプリケーションソフトウェア(ここではWebブラウザー)の内部情報を示す内部URIスキーム(internal URI scheme)である。
Webブラウザーでの最も一般的な実装は、空白のHTMLドキュメント(blank HTML document)を示す「about:blank」である。
about:blank
1-2-3. file
"file"とは、自身のコンピュータからアクセス可能なファイルシステム内のファイルを取得するためのURIスキームである。
正式なfile URIの形式は、「file://host/path」である。host部分が省略された場合(file:///path)は、自動的に「file://localhost/path」であると解釈される。
file:///directory/index.html
1-2-4. data
"data"とは、テキストファイルや画像ファイルなどを、データとして直接埋め込むような形で、文字列として記述するためのURIスキームである。
適切な場面で扱うことによって、ページ表示速度の向上が期待でき、通信速度の影響を受けやすいスマートフォンなどのモバイル端末を利用するユーザーが多い現在では、重要な技術である。
<img src="data:image/png;base64,iVBORw0KGgoAAA ANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4 //8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU 5ErkJggg==">
1-2-5. view-source
"view-source"とは、Webページのソースコードを表示するURIスキームである。
例として、「view-source:https://example.com」というURLでは、「https://example.com」のソースコードが表示される。コンテキスト(右クリック)メニューの「ページのソース表示」は、そのWebページのソースコードを表示できる。
view-source:https://example.com/
1-3. URLのホスト(Host)
参考:URL Standard#3.1. Host representation
URLにおけるホストとは、IPアドレスやドメイン名のことを指す。
1-4. URLのポート(Port)
参考:Port_(computer_networking) - Wikipedia
ポート(Port)とは、通信の用途や目的によって指定することができるものであり、割り振られた番号はポート番号と呼ばれる。
1-4-1. URIスキームにおけるデフォルトのポート番号
参考:URL Standard#4.2. URL miscellaneous
URLのスキーム | "ftp" | "http" | "https" |
---|---|---|---|
デフォルトの ポート番号 | 21 | 80 | 443 |
1-5. URLのパス(Path)
参考:Path (computing) - Wikipedia
パス(Path)とは、経路を意味し、ファイルシステムの「ディレクトリ」構造における階層の場所を意味する。
コンピューターの中のディレクトリやファイルの場所である。
ディレクトリ(Directory)とは | 参考:File system - Wikipedia#Directories |
---|---|
参考:Directory (computing) - Wikipedia |
1-6. URLのクエリ(Query)
クエリ(Query)とは、Webサーバーとやり取りするためのクエリ文字列である。
1-7. URLのフラグメント(Fragment)
フラグメント(Fragment)とは、Webページ内の任意の場所に移動するためのid属性を用いた指定である。
2. Webサイトに関する「通信プロトコル」
参考:Communication protocol - Wikipedia
参考:Computer network - Wikipedia#Communication_protocols
2-1. インターネットプロトコルスイート
参考:Internet Protocol Suite - Wikipedia
2-1-1. インターネットプロトコルスイート(1. アプリケーションレイヤー)の特徴的な通信プロトコル
参考:Application layer - Wikipedia
SSL/TLS | SSH | |
---|---|---|
FTP | FTPS(FTP-SSL) | SFTP(SSH File Transfer Protocol) |
HTTP | HTTPS(Hypertext Transfer Protocol Secure) | |
DNS |
2-1-2. インターネットプロトコルスイート(2. トランスポートレイヤーと3. インターネットレイヤー)の特徴的な通信プロトコル
参考:Transport layer - Wikipedia
TCP/IP | TCP | (トランスポートレイヤー) |
---|---|---|
IP | (インターネットレイヤー) |
2-1-3. インターネットプロトコルスイート(4. リンクレイヤー)の特徴的な通信プロトコル
MAC |
---|
2-2. 「OSIモデル」とTCP/IPモデルとの違い
「OSIモデル」とは、「通信プロトコル」を7層(レイヤー)に分けて運用するモデルであり、「TCP/IP」モデルとは、「通信プロトコル」を4層(レイヤー)に分けて運用するモデルである。
「OSIモデル」は、既に「インターネット」で使用されていた「TCP/IP」モデルに代わって標準化を目指したモデルであったが、既に「デファクトスタンダード」として定着したTCP/IPモデルにとって代わることはなく、現在は「通信プロトコル」やネットワーク構造の理解を助けるために用いられる。
TCP/IPモデルとも呼ばれるインターネットプロトコルスイート | 参考:Internet protocol suite - Wikipedia |
---|
デファクトスタンダード(事実上の標準) | 参考:De facto standard - Wikipedia |
---|