fsockopen - глюк при работе с HTTP 1.1 под UNIX???

123

Guest
fsockopen - глюк при работе с HTTP 1.1 под UNIX???

Открываю дескриптор $f = fsockopen
далее посылаю заросы

@fputs($f, "GET $request HTTP/1.1\r\n");
@fputs($f, "HOST: $server\r\n");
@fputs($f, "Connection: close\r\n\r\n");

далее считываю $f:

$file = '';
while (!feof($f))
{
$file.= fread($f, 2048);
}

вырезаю заголовки

вывожу все дело на вывод:
echo $file;

На домашнем компе все канеш работает =).

>>>> Но на FreeBSD в конце файла считанного таким способом добавляются два пробела и непонятный символ "0".

Как только изменил спецификацию в запросе с HTTP/1.1 на HTTP/1.0 все встало на свои места и странные символы перестали добавляться. Но все ж интересно понять, что это такое было
 

SiMM

Новичок
А ты хидеры приходящие сравни. Наверняка Transfer-Encoding: chunked. Так что пользуй 1.0 - себе проще.
PS: а если интересно - погружайся в изучении спецификации HTTP 1.1
 

123

Guest
если потребуется юзать HTTP 1.1 Как тогда обходить сей факт?
Ведь просто вырезать -3 символа от конца файла неостроумно
 

SiMM

Новичок
> если потребуется юзать HTTP 1.1 Как тогда обходить сей факт?
Читать спецификацию и полностью ей следовать.
 
Сверху