Помогите разобраться с http-запросои и Keep-Alive

RSA

Guest
Помогите разобраться с http-запросои и Keep-Alive

Я хочу один раз соединиться с хостом и дергать из него странички через одно и то же соединения.
Вот такой код
PHP:
<?
   $ip = gethostbyname("www.ya.ru");
   $fp = fsockopen($ip, 80, $errno, $errstr, 30) or die("Не удалось соединиться.");
   $request = "GET / HTTP/1.0\r\n".
         "Host: www.ya.ru\r\n".
         "Connection: Keep-Alive\r\n".
         "\r\n";
   fwrite($fp, $request);
   while ($s = fread($fp, 1024))
      print $s;
   fwrite($fp, $request);
   while ($s = fread($fp, 1024))
      print $s;
   fclose($fp);
?>
В результате я вижу на экране только одну копию страницы. То есть сервер не отвечает на мой второй запрос.
 

RSA

Guest
Почему это не доходит? Он читает из сокета данные, пока они там есть. Как только закончились, посылает новый запрос. Я проверил: поставил отладочный вывод до и после.
 

RSA

Guest
Это странно.
хттп/1.1 меня не устраивает. Некоторые сайты выдают много мусора при работе по этому протоколу.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: RSA
хттп/1.1 меня не устраивает. Некоторые сайты выдают много мусора при работе по этому протоколу.
товарищи люди, сделайте смайлик : pray :
пожа-а-алста!
 

Ferr

Guest
:)
Забудь про keep-alive в PHP он не заработает :)))
Ht/1.0 игнорорует keep-alive
А мусора... ну-ну.
 

RSA

Guest
Что за издевательство? Я серьезно. Я пробовал работать так же, как и по http 1.0. При этом в случае 1.0 все ОК. А если послать ему запрос с http 1.1, получаю много мусора. При этом с яндексом, например, все ОК в обоих случаях.
 

RSA

Guest
Мусор - это строчки типа d9 133 6b 6 133 6b 6 141 6b 6 134 9a.
Может они и обладают каким-то глубинным смыслом, но по-моему, работу по их обработке должна брать на себя функция чтения, а не программист. Кстати, кто-нибудь знает, для чего это вставки сделаны?
 
Сверху