Ответ 1
Transfer-Encoding: chunked
не требуется для прогрессивного рендеринга. Однако это необходимо, когда общая длина содержимого неизвестна до отправки первых байтов.
Я пытался понять больше на Transfer-Encoding:chunked
. ссылались на некоторые статьи:
http://zoompf.com/blog/2012/05/too-chunky и "Transfer-Encoding: chunked" заголовок в PHP.
Я до сих пор не получил очень четкой картины. Я понимаю, что установка этой кодировки позволяет серверу устанавливать содержимое в куске в браузере и вызывать частичную визуализацию контента за раз, что делает веб-сайт отзывчивым.
Если у меня есть веб-приложение, которое обслуживает динамический контент (например, веб-приложение на основе JSF), размещенное на IBM WAS, большинство веб-страниц предназначены для богатого статическим содержимым с большим количеством файлов CSS и JS + динамического контента. Как я могу установить кодировку передачи "chunked" для моих страниц? Или другими словами:
'Transfer-Encoding: chunked'
и как вы ее установите для этой страницы?Ваш личный опыт, безусловно, будет ценным для моего понимания.
Transfer-Encoding: chunked
не требуется для прогрессивного рендеринга. Однако это необходимо, когда общая длина содержимого неизвестна до отправки первых байтов.
Когда серверу требуется отправить большой объем данных, серверное кодирование используется сервером, поскольку он точно не знает, насколько велика (длина) данных. В терминах HTTP, когда сервер отправляет ответ, заголовок Content-Length пропускается сервером. Вместо этого сервер записывает длину текущего фрагмента в шестнадцатеричном формате, за которым следует \r\n, а затем фрагмент, за которым следует \r\n (содержимое начинается с размера блока в шестнадцатеричном формате, за которым следует фрагмент)
Эта функция может использоваться для прогрессивного рендеринга; однако серверу необходимо как можно больше очистить данные, чтобы клиент мог последовательно создавать контент (в случае html, css и т.д.)
Эта функция часто используется, когда сервер передает данные клиенту в больших количествах - обычно в байтах giga