Secure Hypertext Transfer Protocol (S-HTTP) は、HTTPで行われるウェブ通信を暗号化するHTTPSプロトコルの廃れた代替プロトコルである。Eric RescorlaとAllan M. Schiffmanにより開発され、1999年にRFC2660として発表された。
つまり、Server Name Indication (SNI)サポートのないHTTPS実装では、DNS名ごとに個別のIPアドレスが必要であり、全てのHTTPS実装では、暗号化を明確に使用するために個別のポート(通常は443とHTTPの標準80)が必要である(ほとんどのブラウザでは個別のURIスキーム https:// として使用される)[2]。
RFC2817にあるように、HTTP/1.1 Upgradeヘッダーを実装しTLSにアップグレードすることでHTTPを保護することもできる。この方法で協定されたHTTP over TLSの実行は、名前ベースの仮想ホスティング(追加のIPアドレス、ポート、またはURIスペースなし)に関してHTTPSの影響を持たない。しかし、この方法をサポートする実装はほとんどない。
S-HTTPにおいて、所望のURLは平文のヘッダーで送信されず、空白のままになる。暗号化されたペイロード内に別のヘッダーのセットが存在する。HTTP over TLSにおいては、すべてのヘッダーが暗号化されたペイロード内にあり、サーバーアプリケーションは通常、TLSの致命的なエラー(「クライアント証明書が信頼されていない」や「クライアント証明書の有効期限が切れている」など)から正常に回復する機会がない[要出典]。