Proksi orqali toʻliq boʻlmagan tasvirlar: Netty yozuvining tugashini tekshiring
Tasvirlar proksi orqali toʻliq boʻlmagan holda kelsa, manba asinxron javob yozuvi tugashidan oldin Netty kanalini yopayotganini tekshiring.
Tasvir tez toʻgʻridan-toʻgʻri ulanishda ishlaydi, lekin sekinroq forward proksi orqali toʻliq boʻlmaydi. Mumkin boʻlgan sabablardan biri — manba javobi hali yozilayotganda ulanishni yopadi.
Netty I/O asinxrondir. writeAndFlush dan qaytish bu operatsiya tugaganini bildirmaydi. Shuning uchun bu tartib navbatda hali baytlari bor javob uchun xavfsiz emas:
ctx.writeAndFlush(response);
ctx.close();
HTTP almashinuvi oxirgi javob xabaridan keyin atayin yopilayotgan boʻlsa, yopilishni oʻsha yozuvning future iga ulang:
ctx.writeAndFlush(finalResponseMessage)
.addListener(ChannelFutureListener.CLOSE);
Bu parcha javob allaqachon toʻgʻri qurilgan va freymga olingan deb hisoblaydi. Oqimli tana uchun sarlavhalarni yozish emas, uning oxirgi xabarining tugashini ishlating. Doimiy HTTP ulanishi uchun javob tugadi debgina yopilish qoʻshmang.
future ning muvaffaqiyatsizligini ilovaning odatdagi xato bilan ishlash qismi sifatida tekshiring. Tugash muvaffaqiyatsizlik va bekor qilishni ham oʻz ichiga oladi, shuning uchun tugashning oʻzi brauzerdan yetkazib berish kvitansiyasi emas.
Foydali taqqoslash — har bir yoʻlda javobning toʻliq uzunligi va yozuv natijasi. Proksi vaqtni mavjud hayot sikli xatosini ochib beradigan darajada oʻzgartirishi mumkin; uning mavjudligi kompressori yoki keshi baytlarni tashlaganini isbotlamaydi.