E Bild funktionéiert iwwer eng séier direkt Verbindung, ass awer onvollstänneg duerch e méi luesen Forward-Proxy. Eng méiglech Ursaach ass, datt den Origin d'Verbindung schléisst, während seng Äntwert nach geschriwwen gëtt.

Netty I/O ass asynchron. Vum writeAndFlush zréckzekommen heescht net, datt déi Operatioun fäerdeg ass. Dës Reihenfolleg ass dofir onsécher fir eng Äntwert, déi nach Bytes an der Queue huet:

ctx.writeAndFlush(response);
ctx.close();

Wann den HTTP-Austausch bewosst no senger leschter Äntwertnoriicht zougemaach gëtt, hänkt d'Schléissung un d'future vun deem Schreiwen:

ctx.writeAndFlush(finalResponseMessage)
    .addListener(ChannelFutureListener.CLOSE);

Den Ausschnëtt geet dovun aus, datt d'Äntwert schonn korrekt opgebaut a geframt gouf. Fir e gestreamte Body benotzt d'Fäerdegstellung vu senger leschter Noriicht an net d'Schreiwen vun de Headeren. Fir eng persistent HTTP-Verbindung füügt net just eng Schléissung derbäi, well eng Äntwert fäerdeg ass.

Kuckt de Feeler vum future als Deel vun der normaler Feelerbehandlung vun der Applikatioun un. D'Fäerdegstellung enthält Feeler a Annuléierung, sou datt d'Fäerdegstellung eleng kee Liwwerungsbeweis vum Browser ass.

Den nëtzleche Verglach ass déi komplett Äntwertlängt an d'Schreifresultat op all Wee. E Proxy kann d'Timing genuch änneren, fir en existente Liewenszyklusfeeler ze entdecken; seng Präsenz beweist awer net, datt säi Kompressor oder säi Cache d'Bytes verwerft huet.

Ähnlech Artikelen