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

  • Автор темы Автор темы RSA
  • Дата начала Дата начала

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);
?>
В результате я вижу на экране только одну копию страницы. То есть сервер не отвечает на мой второй запрос.
 
Почему это не доходит? Он читает из сокета данные, пока они там есть. Как только закончились, посылает новый запрос. Я проверил: поставил отладочный вывод до и после.
 
Это странно.
хттп/1.1 меня не устраивает. Некоторые сайты выдают много мусора при работе по этому протоколу.
 
Автор оригинала: RSA
хттп/1.1 меня не устраивает. Некоторые сайты выдают много мусора при работе по этому протоколу.
товарищи люди, сделайте смайлик : pray :
пожа-а-алста!
 
:)
Забудь про keep-alive в PHP он не заработает :)))
Ht/1.0 игнорорует keep-alive
А мусора... ну-ну.
 
Что за издевательство? Я серьезно. Я пробовал работать так же, как и по http 1.0. При этом в случае 1.0 все ОК. А если послать ему запрос с http 1.1, получаю много мусора. При этом с яндексом, например, все ОК в обоих случаях.
 
Мусор - это строчки типа d9 133 6b 6 133 6b 6 141 6b 6 134 9a.
Может они и обладают каким-то глубинным смыслом, но по-моему, работу по их обработке должна брать на себя функция чтения, а не программист. Кстати, кто-нибудь знает, для чего это вставки сделаны?
 
Сверху