Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Transfer-Encoding: chunked
On Tue, Apr 01, 2008 at 05:40:43PM +0400, Igor Sysoev wrote:
> On Tue, Apr 01, 2008 at 11:22:56AM +0400, Alexey Vlasov wrote:
>
> > А можно ли nginx'у запретить отдавать контент chunk'ми?
>
> Нет, а зачем ?
Имеем скрипт:
# cat header.php
<?php
header ('HTTP/1.1 200 OK');
phpinfo();
?>
# telnet test-domain.ru 9099
Trying 111.222.111.222...
Connected to test-domain.ru.
Escape character is '^]'.
GET /header.php HTTP/1.1
HOST:test-domain.ru
HTTP/1.1 200 OK
Server: nginx/0.6.25
Date: Tue, 01 Apr 2008 16:22:13 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.5
Transfer-Encoding: chunked
f40
2007
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
[skip]
<tr><td class="e">PHP API </td><td class="v">20041225 </td></tr>
<tr><td cl
1000
ass="e">PHP Extension </td><td class="v">20060613 </td></tr>
<tr><td class="e">Zend Extension </td><td class="v">220060519 </td></tr>
<tr><td class="e">Debug Build </td><td class="v">no </td></tr>
[skip]
<tr><td class="e">doc_root</td><td class="v"><i>no value</i></td><td
class="v"><i>no valu
cf
e</i></td></tr>
[skip]
...
[skip]
</div></body></html>
0
0
Connection closed by foreign host.
В итоге получается, что Apache, не смотря на то, что nginx делает ему
запрос по 1.0, всегда отвечает nginx'у:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
[skip]
...
2007
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
...
[skip]
</div></body></html>
0
nginx, наверно, как и положено, еще раз добавляет chunk'и (f40) и на выходе
получается мусор
в виде посторонних символов в начале и в конце страницы, а если в PHP
еще и GZip используют, то на выходе вообще получаем нечитаемый мусор.
Конечно, можно в скрипте поправить
header ('HTTP/1.1 200 OK');
на
header ('HTTP/1.0 200 OK');
но существует большое количество скриптов/CMS, где пишут "HTTP/1.1 200
OK".
Предполагаю, что есть какое-то иное решение, в поисках которого я сейчас
и нахожусь.
--
Alexey Vlasov
|