Веб-сервер - когда использовать кодировку передачи по частям? - PullRequest
0 голосов
/ 09 мая 2009

Глядя на различные веб-серверы HTTP Headers, я замечаю, что Google.com имеет:

client-transfer-encoding: "chunked"

Что такое кодировка передачи chuncked и нужно ли использовать ее на моем веб-сервере?

1 Ответ

1 голос
/ 09 мая 2009

Chunked можно использовать для отправки HTTP-запроса или ответа из нескольких частей и отправки одной части, в то время как последующие части недоступны.

Несколько запросов - пары ответов могут быть переданы через одно соединение HTTP. (Это позволяет избежать накладных расходов TCP connect () для последующих запросов.) Чтобы реализовать это, клиент должен знать, где заканчивается ответ сервера. Если сервер генерирует заголовок Content-Length , клиент может отсчитывать байты. Когда не осталось байтов для чтения, клиент может инициировать следующий запрос. Но как сервер сгенерирует заголовок Content-Length , если он заранее не знает длины полного ответа? Решение состоит в том, чтобы использовать chunked вместо Content-Length .

Apache (1.3 и 2) по умолчанию отправляет статические файлы как chunked всякий раз, когда это имеет смысл (и HTTP-клиент поддерживает это). Вам не нужно предпринимать никаких действий. Если вы пишете свое собственное веб-приложение, вы можете рассмотреть возможность создания фрагментированного ответа вручную.

См. http://www.research.att.com/~bala/papers/h0vh1.html и http://developers.sun.com/mobility/midp/questions/chunking/, чтобы узнать больше.

...