In <E130O36-0000UZ-00@fobos.marketsite.ru> Dmitry Andrianov (dimas@mail.marketsite.ru) wrote:
DA> -----Original Message-----
DA> From: "Khimenko Victor" <khim@sch57.msk.ru>
DA> To: apache-rus@lists.lexa.ru, dimas@mail.marketsite.ru
DA> Date: Fri, 9 Jun 2000 16:14:41 +0400 (MSD)
DA> Subject: Re: [apache-rus] translit
>> Как в этих случаях говорит Linus: "where is your code ?"
>>
>> DA> Вопрос: почему нельзя отдавать Content-Encoding: chunked? При таком
>> DA> раскладе, буфферизовать можно довольно мелкими кусочками, так что памяти
>> DA> много не съест. Зато клиент точно будет знать, когда данные кончаться, а
>> DA> не будет висеть пока сервер не закроет keepalive?
>>
>> А вы представляете как это реализовать ? Если да - см. выше, если
>> нет - попробуйте представить :-) В идеале (обладая неограниченными ресурсами)
>> все это можно было бы сделать. На практике это выливается в черезмерно
>> большое количество переделок Apache'а. Но если у вас есть время и силы...
>> см. выше.
DA> Как это сделать конкретно в апаче я не знаю т.к. слабо себе представляю
DA> внутреннее его устройство.
Я, собственно, о том же :-) Я-то его как раз представляю :-)
DA> Как это реализовать "на пустом" месте (т.е. отдать клиенту какой-то поток,
DA> порезав его на куски) я хорошо себе представляю и именно поэтому я не вижу
DA> больших проблем сделать это.
Понимаешь - есть две разных операции: веразие гланд и вырезание гланд через
задний проход автогеном. Второе - сложнее, но именно этим тебе придется
заниматься, если ты попробуешь это внедрить в russian apache. Если бы
речь шла о написании "с нуля" Apache или хотя бы Russian Apache - все было
бы намного проще.
DA> Однако я не знаю как устроен апач в своих глубоких внутренностях и могу
DA> потратить массу времени изучая это. Именно поэтому я написал сюда, людям,
DA> которые ЗНАЮТ как там все внутри шевелится в надежде что а) это кто-то уже
DA> делал, или б) найдутся энтузиасты.
DA> Но нет так нет. Будем ковыряться сами.
Посмотрим. Проблема в том, что перекодировка производится в функции отдачи
строки клиенту (выкидывание Content-Length происходит отдельно и совершенно
независимо). Попытка проделать то, что ты предлагаешь сделать НА ЭТОМ
уровне приведет к тому, что твои chunk'и окажутся в некоторых случаях по
1 байту размером и другим подобным прелестям. Сделать так, чтобы все это
нормально работало и при этом не порушилось ничего в других местах
черезвычайно сложно (каждое требование в отдельности достаточно легко
выполнимо, но вот ВМЕСТЕ...), а учитывая, что у translit вообще мало
энтузиастов шансов на это практически нет...
=============================================================================
= Apache-Rus@lists.lexa.ru mailing list =
Mail "unsubscribe apache-rus" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/mail-archive =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.