Заголовок заголовка и заголовка содержимого
Можно ли установить заголовок длины содержимого, а также использовать закодированную кодировку передачи? и делает ли это решение проблемы не знать длину ответа на стороне клиента при использовании chunked?
сценарий, о котором я думаю, - это когда у вас есть большой файл для передачи, и нет никаких проблем при определении его размера, но он слишком велик, чтобы полностью буферизоваться.
(Если вы не используете chunked, тогда весь ответ должен быть сначала буферизирован? Правильно?)
спасибо.
Ответы
Ответ 1
1) Нет: "Сообщения НЕ ДОЛЖНЫ включать как поле заголовка Content-Length, так и кодирование передачи без идентификации. Если сообщение содержит непередаваемое кодирование передачи, Content-Length ДОЛЖЕН быть проигнорировано". (RFC 2616, раздел 4.4)
2) И нет, вы можете использовать Content-Length и stream; протокол не ограничивает работу вашей реализации.
Ответ 2
Ну, вы всегда можете отправить заголовок с указанием размера файла.
Что-то вроде response.addHeader("File-Size","size of the file");
И игнорировать заголовок Content-Length.
Реализация клиента должна быть изменена, чтобы прочитать это значение, но эй, вы можете добиться того, что вы хотите:)