Сликата работи преку брза директна врска, но е нецелосна преку побавно forward прокси. Една можна причина е изворот да ја затвори врската додека неговиот одговор сè уште се пишува.

Netty I/O е асинхрон. Враќањето од writeAndFlush не значи дека операцијата е завршена. Затоа овој редослед е небезбеден за одговор што сè уште има бајти во редот:

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

Кога HTTP размената намерно се затвора по нејзината последна порака за одговор, прикачете го затворањето на future на тоа запишување:

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

Фрагментот претпоставува дека одговорот е веќе правилно изграден и врамен. За стримен тело користете го завршувањето на неговата последна порака, а не запишувањето на заглавијата. За постојана HTTP врска не додавајте затворање само затоа што завршил одговорот.

Испитајте го неуспехот на future како дел од нормалното ракување со грешки во апликацијата. Завршувањето вклучува неуспех и откажување, па завршувањето само по себе не е потврда за достава од прелистувачот.

Корисна споредба е целосната должина на одговорот и исходот од запишувањето на секој пат. Проксито може да го промени времето доволно за да открие постоечка грешка во животниот циклус; неговото присуство не докажува дека неговиот компресор или кеш ги отфрлил бајтите.

Поврзани статии