この記事には複数の問題があります。改善
やノートページでの議論にご協力ください。HTTP
主要項目
持続的接続
圧縮(英語版)
HTTPS
HTTP/2
HTTP/3
リクエストメソッド
OPTIONS
GET
HEAD
POST(英語版)
PUT
DELETE
TRACE
CONNECT
PATCH(英語版)
ヘッダーフィールド(英語版)
Cookie
ETag
Location(英語版)
リファラ
DNT(英語版)
X-Forwarded-For
ステータスコード
301 Moved Permanently(英語版)
302 Found
303 See Other(英語版)
403 Forbidden
404 Not Found
503 Service Unavailable
認証方式
Basic認証
Digest認証
セキュリティホール
HTTPヘッダ・インジェクション
HTTPリクエストスマグリング(英語版)
HTTPレスポンス分割(英語版)
HTTPパラメータ汚染(英語版)
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}
表
話
編
歴
インターネットセキュリティ
プロトコル
キーマネジメント
Kerberos
RPKI(英語版)
PKIX
Web of trust
X.509
XKMS(英語版)
アプリケーション層
DKIM
DMARC
HTTPS
PGP
Sender ID
SPF
S/MIME
SSH
TLS/SSL
DNS
DANE
DNSSEC
DNS over HTTPS
DNS over TLS
CAA
DNSCrypt
インターネット層
IKE
IPsec
L2TP
OpenVPN
PPTP
WireGuard
表
話
編
歴
HTTPS(Hypertext Transfer Protocol Secure)は、HTTP通信をより安全(セキュア)に行うためのURIスキームである。「HTTPS」はプロトコルではなく、SSL/TLSプロトコルなどによって提供されるセキュアな接続の上でのHTTP通信をさす。 HTTP通信において認証や暗号化を行うために、ネットスケープコミュニケーションズによって開発された。当初、World Wide Web上での個人情報の送信や電子決済など、セキュリティが重要となる通信で使用されるようになった。その後、公衆無線LANの普及による中間者攻撃のリスクの増加[1]、PRISMによる大規模な盗聴、ネット検閲への対抗などを要因として、あらゆるHTTP通信をHTTPSに置き換える動きが活発になっている[2][3][4][5]。 HTTPSは、メッセージを平文のままで送受信する標準のHTTPと異なり、SSL/TLSやQUICといったプロトコルを用いて、サーバの認証・通信内容の暗号化・改竄検出などを行う。これによって、なりすまし・中間者攻撃・盗聴などの攻撃を防ぐことができる。HTTPSでは、ウェルノウンポート番号として443が使われる。 HTTPSによるセキュリティ保護の強度は、Webサーバやブラウザで用いられるSSL/TLSの実装の正確性や、使用する暗号アルゴリズムに依存する(TLSを参照)。 プロキシサーバを介してインターネットにアクセスする場合、HTTPSのSSL/TLS通信時にプロキシサーバをトンネリングする必要がある場合がある。その場合はCONNECTメソッドを使用する。 HTTPSを利用するメリット・デメリットは、以下のとおりである。 ウェブブラウザ(ユーザーエージェント)では、対象のURLがhttpsであるなど、セキュアな通信経路であることが明らかであるか否かで動作を変える場合がある。これに関わる規定として、W3CのSecure Contexts(安全なコンテキスト)[8]やMixed Content(混在コンテンツ・混合コンテンツ)[9][10]がある。 Secure Contextsでは、いくつかの条件を満たす場合に「安全なコンテキスト(secure context)である」とする規定がなされている。これを参照して、ウェブブラウザの提供する一部の機能では、安全なコンテキストであるか否かにより挙動が変化する。そのような機能の一覧が安全なコンテキストに制限されている機能 Mixed contentは、セキュアな経路で取得したコンテンツ内で、非セキュアなデータの取り扱いに関する規定である。たとえば、https URLのHTMLドキュメント内でhttp URLのJavaScriptの実行は阻止される。 https URIスキームのURLを対象とする通信に使用されるプロトコルとして、以下が存在する。 HTTPSの仕様が最初に標準化されたのは.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}RFC 2818
概要
メリット/デメリット
メリット
通信が暗号化されるため、改竄、盗聴などの攻撃を防ぐことができる。通信の最適化も改竄の一種であるので、同様に防げる。
HTTP/2やHTTP/3対応でブラウザ表示が高速化される。
SEOに有利になる。検索エンジン最大手のGoogleがHTTPSの導入を推進するため、自社検索サービスにおいてHTTPSの使用するウェブサイトを優遇することを発表していることによる[6][7]。
デメリット
無料発行サービスを除き、導入に費用がかかる。
SSL証明書を定期的(90日/一年など)に更新する必要がある。
https非対応のツールや広告、ブログパーツなどが非表示になる(後述する混在コンテンツに該当するため)。
暗号化/復号が必要になるため、クライアントとサーバ共に負荷が上がる(ただし、前述のHTTP/2を併用することで負荷を表示速度で相殺できる場合もある)。
古いウェブブラウザから閲覧ができなくなる。
ウェブブラウザでの扱い
通信に関する仕様
HTTP Over TLS
HTTP/1.0、HTTP/1.1、HTTP/2のいずれかをTLS接続上で使用。
HTTP/3
HTTP/3は下位層としてQUICを使用するプロトコルであり、QUICにより暗号通信が行われる。
TLS接続上でのHTTP/1.1通信は、HTTP/1.1のRFC 9112で規定されている(9.7. TLS Connection Initiation, 9.8. TLS Connection Closure)。
TLS接続上でのHTTP/2通信は、HTTP/2のRFC 9113で規定されている(3.2. Starting HTTP/2 for "https" URIs)。
このほか、HTTPSには以下の仕様が関係している。
X.509(PKIX)では、証明書に対する要件が規定されている。特にHTTPSに特有のものとして以下がある(RFC 5280 4.2.1.12. Extended Key Usage)。
サーバー証明書を表す拡張鍵用途: TLS WWWサーバー認証(OID 1.3.6.1.5.5.7.3.1)。