Имеется код вида
import socket
try:
sock = socket.create_connection(("http://www.google.com", 80)) #Хост не важен
sock.send("GET /\r\n\r\n")#Запрос в принципе тоже
a = sock.recv(4096)
print a
sock.shutdown(socket.SHUT_RD)
sock.send("GET /\r\n\r\n")
a = sock.recv(4096)
print u"="*80
print a
except Exception, e:
print e
Понимаю, что там написано что-то жуткое, но суть в общем такова:
Есть необходимость опрашивать по протоколу HTTP большое количество серверов, НО мне необходимо получить только код ответа веб-сервера, т.е. исключительно первую строку вида “HTTP/1.0 200 OK” или что там. Проблема в том, что я хочу получить только ее, именно получить, а не прочитать. Еще я хочу сделать это таким образом, чтобы и сокет не закрыть.
Приблизительно я это вижу так :
1. - Установка соединения.
2. - Установка MTU в необходимое мне значение именно так, чтобы я мог получить именно то что мне нужно.
3. - Посылаю серверу свой запрос, получаю от него именно один пакет, после чего имитирую закрытие соединения.
4. - Распаковка пакета, обработка и т.д. и т.п.
Собственно вопрос - реал/анриал ?
Или трудозатраты на все это будут выше ожидаемого результата ?
Или я вообще бред написал ? :)