HTTPS
クライアントがhttpsサーバにTCP接続を行い、TLSハンドシェイクを開始する。または、HTTP/3の場合はQUICでのTLSハンドシェイクを開始する。 (任意)この際、ALPNで使用するプロトコルのネゴシエーションを行う。http/1.1またはh2、h3を使用する。
TLSハンドシェイク中にサーバーが提示した証明書の内容をもとに、クライアントはホスト名の検証を行う。これはRFC 9110 4.3.4. https Certificate Verificationに規定されている。
以降はTLS接続上のアプリケーションデータまたはとして、HTTP通信を行う。または、HTTP/3の場合はQUICでのストリームとしてHTTP通信を行う。 HTTPのバージョンはALPNで決定したものを使用する。 TLSでALPNを使用していない場合は、HTTP/1.1またはHTTP/1.0を使用する。
3.6.1.5.5.7.3.1)。 クライアント証明書を表す拡張鍵用途: TLS WWWクライアント認証(OID 1.3.6.1.5.5.7.3.2)。
Application-Layer Protocol Negotiationを用いる場合、プロトコルIDとしてhttp/1.1(RFC 7301 6. IANA Considerations)またはh2(RFC 7540 11.1. Registration of HTTP/2 Identification Strings)、h3(RFC 9114 3.1. Discovering an HTTP/3 Endpoint)を使用する。 RFCなどでプロトコルIDを登録する明示的な規定は存在しないものの、IANAの登録簿にはhttp/0.9とhttp/1.0も存在する。
HTTP/2では、TLSに対する追加の要件を課している。 TLS 1.2未満の使用禁止と、TLS 1.2~1.3に対する要件: RFC 9113 9.2. Use of TLS Features
このほか、ウェブブラウザから公に信頼される証明書を発行する認証局に対する要求として、CA/ブラウザフォーラム(英語版)がBaseline Requirements for the Issuance and Management of Publicly‐Trusted Certificatesを定めている。
2016年から2017年にかけて、HTTPSのシェアが50%を超えたという複数の調査結果が明らかになっている。
2017年末、66%のシェアという調査報告がされた。
2018年末、httparchive.orgの調査によると、79.9%のトラフィックという調査報告がされた。
HTTPS(Hypertext Transfer Protocol Secure)は、HTTPによる通信をより安全に(セキュアに)行うためのプロトコルおよびURIスキームである。厳密に言えば、HTTPS自体はプロトコルではなく、SSL/TLSプロトコルなどによって提供されるセキュアな接続の上でHTTP通信を行うことをHTTPSと呼んでいる。
ウェブブラウザ(ユーザーエージェント)では、対象のURLがhttpsであるなど、セキュアな通信経路であることが明らかであるか否かで動作を変える場合がある。これに関わる規定として、W3CのSecure Contexts(安全なコンテキスト)やMixed Content(混在コンテンツ・混合コンテンツ)がある。
Secure Contextsでは、いくつかの条件を満たす場合に「安全なコンテキスト(secure context)である」とする規定がなされている。これを参照して、ウェブブラウザの提供する一部の機能では、安全なコンテキストであるか否かにより挙動が変化する。そのような機能の一覧が安全なコンテキストに制限されている機能 (MDN Web Docs)にある。
Mixed contentは、セキュアな経路で取得したコンテンツ内で、非セキュアなデータの取り扱いに関する規定である。たとえば、https URLのHTMLドキュメント内でhttp URLのJavaScriptの実行は阻止される。