Chunked Encoding против записи на HttpServletResponse outputStream?

Какое преимущество дает фрагментированное кодирование по сравнению с прямой записью в выходной поток HttpServletResponse небольшими фрагментами?

Таким образом, выполнение чего-то вроде кода, показанного ниже, где полное содержимое файла не буферизуется в памяти приложения, а не отправка с заголовком фрагментированного кодирования. Я использую IoUtils.copy ниже, который будет читать только 8 Кбайт из входного потока за раз.

@GetMapping("/content")
public void getContent(final HttpServletRequest request,
                        final HttpServletResponse response) throws IOException {
    try(final InputStream is = FileUtils.openInputStream(new File("src/main/resources/test_file.txt"))) {
        //Do something with is
        response.setHeader("ContentType", MediaType.APPLICATION_OCTET_STREAM_VALUE);
        response.setContentLength(70000);
        IOUtils.copy(is, response.getOutputStream());
        response.flushBuffer();
    }
}

0 ответов

Другие вопросы по тегам