Gumagana ang isang larawan sa mabilis na direktang koneksyon, ngunit hindi kumpleto sa pamamagitan ng mas mabagal na forward proxy. Isang posibleng dahilan ay isinasara ng pinagmulan ang koneksyon habang isinusulat pa ang tugon nito.

Ang Netty I/O ay asynchronous. Ang pagbabalik mula sa writeAndFlush ay hindi nangangahulugang tapos na ang operasyong iyon. Kaya hindi ligtas ang pagkakasunod-sunod na ito para sa tugon na may mga byte pa sa pila:

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

Kapag sadyang isinasara ang HTTP exchange pagkatapos ng huling mensahe ng tugon nito, ikabit ang pagsasara sa future ng pagsulat na iyon:

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

Ipinapalagay ng bahaging ito na ang tugon ay nabuo at na-frame nang tama na. Para sa stream na katawan, gamitin ang pagkumpleto ng huling mensahe nito, hindi ang pagsulat ng mga header. Para sa persistenteng HTTP koneksyon, huwag magdagdag ng pagsasara dahil lang natapos ang isang tugon.

Siyasatin ang pagkabigo ng future bilang bahagi ng normal na paghawak ng error ng aplikasyon. Kasama sa pagkumpleto ang pagkabigo at pagkansela, kaya ang pagkumpleto lamang ay hindi resibo ng paghahatid mula sa browser.

Ang kapaki-pakinabang na paghahambing ay ang buong haba ng tugon at resulta ng pagsulat sa bawat landas. Maaaring baguhin ng proxy ang timing nang sapat upang ilantad ang umiiral nang error sa lifecycle; ang presensya nito ay hindi nagpapatunay na itinapon ng compressor o cache nito ang mga byte.

Kaugnay na mga artikulo