http2 RST_STREAM の新機能について読みました:
HTTP/2 は RST_STREAM フレームを追加して、クライアントが気が変わることを可能にします。ブラウザーがページから移動した場合、またはユーザーがダウンロードをキャンセルした場合、その帯域幅をすべて無駄にすることなく、新しい接続を開く必要がなくなります。
これを行うにはどうすればよいですか?ブラウザでこれを行うにはどうすればよいですか?コードに変更はありますか?
ブラウザはリクエストを開始した後、ユーザーが別の場所に移動するか、キャンセルすることで、気が変わります。
HTTP/1.1 では、応答コンテンツのダウンロードを回避する唯一の選択肢は、接続を閉じることでした。これは、クライアントが要求を中止するというこの意図をサーバーに伝える方法がないためです。接続を閉じることが方法です。
HTTP/2 では、クライアントがリクエストを中止したい場合、RST_STREAM を送信します。サーバーは RST_STREAM を受信すると、クライアントへの DATA フレームの送信を停止し、それによって応答 (またはダウンロード) を停止します。接続は他のリクエストに引き続き使用でき、中止されたリクエスト/レスポンスと並行していたリクエスト/レスポンスは進行し続ける可能性があります。
通常、アプリケーションは何もする必要がなく、RST_STREAM を認識しません。これはすべて、ブラウザーとサーバーの実装によって行われます。
RST_STREAM がクライアントからサーバーに移動するまでに、リクエストのコンテンツ全体が転送中であり、クライアントに到着して破棄される可能性があります。ただし、応答コンテンツが大きい場合、RST_STREAM を送信すると、応答コンテンツ全体が送信される前にサーバーに到着する可能性が高くなるため、帯域幅が節約されます。