HTTPとは
通信プロトコル(通信するときに使うルールの一つ)Hypertext Transfer Protocol(総称 HTTP)
ハイパーテキスト・トランスファー・プロトコル(エイチ・ティ・ティ・ピィ)
WEBサーバーとブラウザー間の、データ送受信に関する通信規約
通信プロトコル(情報を伝える上のルール)
プロトコル(protocol)は、通信するためのに制定された手順(規約)です。
閲覧者が「ブラウザからWEBサーバー」と、Webページを開くためには
通信方法(プロトコル)を利用することが、必要不可欠になりますね!
HTTPのバージョンについて
年代 | バージョン |
1990年 | HTTP/0.9 |
1996年 | HTTP/1.0 |
1997年 | HTTP/1.1 |
2015年 | HTTP/2 |
2018年 | HTTP/3 |
1999年に、標準化された「HTTP/1.1」
「HTTP/1.1」からのバージョンアップが「HTTP/2」
2015年2月に登場した「HTTP/2」は、16年ぶりの改訂となり、高速スピードに特化された通信で、ページ表示速度が速くなる!
「HTTP/2」が、主流になってきているなか、3つ目のメジャーバージョンとして、2018年11月に「HTTP/3」が登場しました!
「HTTP/1.1」と「HTTP/2」の違い
従来の「HTTP/1.1」を最適化され、パフォーマンス上の問題を解決
スピードの秘訣は、1ページに対して多くのリクエストが必要にも関わらず
HTTPは、1っのリクエストに対して1っを返し、完了後に次に移る仕様
「HTTP/2」は、複数のリクエストを許可されていて、前回のリクエストの
完了を待たずして、次のリクエストが送れる仕様となる
「HTTP/1.1」のデータ通信
「HTTP/2」のデータ通信
その他にも、ページ表示の速度高速化の機能が多く含まれた仕様になっている
- TCPコネクションの多重化
レスポンスを多重化して複数のリクエストを処理する
- ヘッダーの圧縮
同じHTTPヘッダー情報を何度も送信させないで、必要な差分データだけを送信
- サーバープッシュ
次のリクエストが来る前に、サーバーが判断して必要となるデータを送信
「HTTP/1.1」と「HTTP/2」での表示速度の違い
「HTTP/2」と「HTTP/3」の違い
新プロトコルのブラウザ実装が進んで、徐々に「HTTP/3」が普及することが予想されます。
2021年以降は、3代目となるメジャーバージョン「HTTP/3」の標準化も近い!
「HTTP/3」は、通信効率が上がり、Webサイトの表示速度が速くなると言われています。
大きな違いは、通信をやり取りするための「ルール」が異なる新プロトコルを採用
- 「HTTP/2」・・・・・トランスポート層に「TCP」を使う
- 「HTTP/3」・・・・・トランスポート層に「UDP」「QUIC」を使う
■インターネットにおいて標準的に利用されているプロトコル
TCP (Transmission Control Protocol)
特徴が、安全性を重視して信頼性が高いが接続確立時の遅延などが大きい
■それに対して、効率を重視した通信が可能になった「新しいルール」
UDP (User Datagram Protocol)
スピード重視で高速だが信頼性が低い
QUIC (Quick UDP Internet Connections)
TLS/SSLと同等のセキュリティ保護を提供する
- Googleが独自開発(発案)してIETFにより標準化も進行している新しいプロトコル
- 接続開始時の遅延を抑えられる
TCP 3ウエイハンドシェーク が無くなることによって通信の往復回数を減らすことができる
- パケットロス時の速度低下の軽減を抑えられる
- ほとんどの情報を暗号化する
- ネットワークが変更されても通信が切れない
例えば、モバイルデータ通信からWi-Fi通信に切り替わる際にも通信が継続できる
ブラウザの対応状況は
今では「https」の対応化が進み、Webサーバーの「HTTP/2」のサポートも広がり、
多くの方が「HTTP/2」を、比較的に容易に利用できる状況となっていますね!
「HTTP/2」の 仕様に関しては、「HTTP/HTTPS」が対応されているので、
ほとんどのブラウザで、「HTTP/2」が採用されている状況で、
但し、セキュア接続以外は、従来の「HTTP/1.1」のプロトコルになり
対応されているほとんどのブラウザは「HTTPS」のみが利用可能となる
要するに、「HTTP/2」を利用する場合は、「https ://」が必見となる!
「Google Chrome 30以上、Mozilla Firefox 34以上
Internet Explorer 11、Microsoft Edge、Opera、Safari 9」
高速スピードに特化された通信「HTTP/3」のブラウザの対応状況は?
標準化も進んで、2021年以降には新プロトコルへの普及することが予想されているようです
Google ブログ(2020年10月7日水曜日)
Google Chromeは「Google QUIC」に加えて「IETF QUIC」を積極的にサポートする方針
すでに、ブラウザでの、「HTTP/3」のサポートの対応が発表されています。
「Chrome、Firefox、Opera、Chromium」など
ただし、これは実験的なプロトコルであるためデフォルトでアクティブ化されていません。
つまり、オプション(いくつかのコマンドラインオプション)で有効にする必要がある
- 「HTTP/3」が機能するには、クライアント(ブラウザ)とWEBサーバーの両方で有効にする必要がりますね!
WEBサーバーの対応状況は
WEBサーバー(レンタルサーバー)では、「HTTP/2」のサポートが進んで、
大手のレンタルサーバーで、「HTTP/2」が対応されている状況です!
「llS(Windows 10)、LiteSpeed、Akamai Edge Servers、nginx 1.9.5、Apache 2.4.17」以上
最も主流で使われている「Apache」は、2.4.17以上となっているが
「Apache 2.4.xx」と非対応のレンタルサーバーでは、「HTTP/2」も非対応となる
近年、「LiteSpeed、nginx」のWEBサーバーのレンタルサーバーが目立ちますが、
「HTTP/2」に関しても、サポートしている場合がほとんどになります。
WEBサーバー(レンタルサーバー側)では、「HTTP/3」仕様のレンタルサーバーが少なく、
高速プロトコル「QUIC」に完全対応したレンタルサーバーが必見となります。
「HTTP/3」の対応は、必然的にQUIC対応を伴う
ですので、Webサーバー「LiteSpeed」を採用しているレンタルサーバーで、
「HTTP/3」のサポート(対応)しているので利用できることになります!
但し、対応していないブラウザや、コマンドラインオプションで有効にしていない場合は、
「HTTP/2」で通信が行われる仕様になってます。
「LiteSpeed」を採用しているレンタルサーバーは少ないですが、
mixhost、レンタルサーバー ColorfulBox
WEBサーバー「NginxやApache」は、対応していないこともあり、
現状では、提供できるレンタルサーバーは無いということになるのですが、
「QUICおよびHTTP/3」の対応の「NGINXプレリリース版」が、2020年6月に発表されていることもあり、近い将来に「HTTP/3」の対応化されるのではないでしょうか!