HTTPはアプリケーションプロトコルであり、HTTPアプリケーション(パフォーマンスを除く)に影響を与えることなく、基になるTCP接続を閉じて再度開くことができます。
HTTP1.1を使用することにより、永続的な接続を使用しますが、サーバーまたはクライアントは接続をいつでも閉じることができます。
セキュリティのために、HTTPはSSL/TLS経由のTCPを使用します。
私の理解では、SSLはアプリケーションとよく似た働きをしています。少なくとも、これはTCPがSSLを「見る」方法です。
セキュリティで保護された接続が確立された後に、元のTCPソケットがある時点で閉じると、SSLセッションが無効になり、当事者がsslハンドシェイクを開始するはずですか?
または、基になるTCP接続がTLSセッションと無関係ですか?http persistent connectionおよびssl session
ありがとうございます!
@Eugene:セキュリティーの詳細が交換されているため(アルゴリズムなど)、SSLピアの部分にはセキュリティで保護されたチャネル(暗号化/復号化)の確立に必要な情報があります。この部分は理解しています。 tcp接続は、暗号化されたブロックを取得し、それらをソケット経由で送信します。どのようにTCP接続を閉じると、以前に合意されたSSLの関係者(クライアント/サーバー)のセキュリティの詳細が無効になるのですか?この部分は分かりません。詳細を教えてください。 – Cratylus
@ user384706技術的な観点から、SSL/TLSはUDP(UDPの場合はDTLSという名前の変更を使用する)、名前付きパイプ、ピジョンメールなど(UDPの場合は一度実装しました)メッセージベースの通信チャネルを介して)。ただし、特定の攻撃を防止するためには、基盤となるチャネルの切断が自動的にSSL接続を無効にすることに同意しています。一般的には、クライアント側とサーバー側の両方の通信を実装し、SSL機能を制御する場合(たとえば、コンポーネントを使用している場合など)は、これを行う必要はありません。 –
@Eugene:TLSセッションが無効になったと考えるのがベストプラクティスですか?どんなRFCによっても義務付けられているわけではありませんし、TLS RFCによって暗示されているわけでもありません。 – Cratylus