2016-11-14 2 views
0

HttpResponse.PushPromise effectuez un .Quelles sont les conséquences secondaires d'un serveur "non réclamé" sur le serveur IIS?

Un cas d'utilisation recommandé commun est, lors de la diffusion d'une page html, de pousser des ressources secondaires telles que css, js ou des images.

Donc, cela fonctionne bien sur une demande initiale, html est retourné et toutes les autres ressources sur une seule demande/connexion.

Maintenant, une navigation secondaire se produit. Le navigateur demande le code HTML et le serveur le renvoie, et pousse également les autres ressources. mais le navigateur a déjà les autres ressources en cache. Ces ressources passent maintenant dans un état de "non réclamé poussé".

Alors, que se passe-t-il du côté serveur quand une poussée non réclamée se produit?

Répondre

0

Je ne peux pas dire avec certitude ce qui se passe dans l'implémentation IIS.

Mais la logique générale est que les navigateurs voient le flux poussé (cadre Push Promise) et reconnaît qu'il ne s'y intéresse pas. Par conséquent, il envoie un cadre de réinitialisation pour le flux au serveur. Le serveur reçoit la trame de réinitialisation pour le flux qui place l'état de flux HTTP/2 pour ce flux enfoncé dans l'état de réinitialisation. S'il y a encore quelque chose qui écrit sur le flux poussé sur le serveur, cela échouera à cause de cela et la poussée s'arrêtera.