Прокси HTTP
От: ExkaliBur Россия  
Дата: 17.09.08 09:33
Оценка:
После отправки серверу запроса, например GET, сервер отвечает, но как узнать длинну сообщение?
И можно ли это сообщение частями считывать и отправлять клиенту, то есть считать с сервера 1024 байт и их сразу отправить клиенту, потом снова читать данные с сервера?
proxy http
Re: Прокси HTTP
От: Роман Дубров Украина Я@Blogspot
Дата: 17.09.08 09:44
Оценка:
ExkaliBur пишет:

> После отправки серверу запроса, например GET, сервер отвечает, но как

> узнать длинну сообщение?

если Content-Length есть то по нему (только не доверять ему на 100%)
если нет — то до закрытия коннекта

> И можно ли это сообщение частями считывать и отправлять клиенту, то есть

> считать с сервера 1024 байт и их сразу отправить клиенту, потом снова
> читать данные с сервера?

конечно

--
np: [foobar2000] not started
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re: Прокси HTTP
От: ExkaliBur Россия  
Дата: 19.09.08 13:31
Оценка:
Как долго надо ждать ответа от сервера?
Бывают такие ситуации, что часть страницы загружается, а затем функция получения данных с сервера возвращает 0.
В чем тут дело?
Re[2]: Прокси HTTP
От: shurik.  
Дата: 19.09.08 14:39
Оценка:
Здравствуйте, ExkaliBur, Вы писали:

EB>Как долго надо ждать ответа от сервера?

EB>Бывают такие ситуации, что часть страницы загружается, а затем функция получения данных с сервера возвращает 0.
EB>В чем тут дело?

сокетная ф-ция read возвращает 0 если соединение закрылось
Re: Прокси HTTP
От: ExkaliBur Россия  
Дата: 11.10.08 19:37
Оценка:
На прокси прихрдит запрос


GET http://www.mail.ru/favicon.ico HTTP/1.0
User-Agent: Opera/9.50 (Windows NT 5.1; U; ru)
Host: www.mail.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://www.mail.ru/
Proxy-Connection: Keep-Alive



Прокси подключается к www.mail.ru и отправляет этот запрос без изменений.

В ответ приходит сообщение:


HTTP/1.0 400 Bad request
Date: Sat, 11 Oct 2008 19:33:17 GMT
Server: Apache/1.3.27 (Unix) mru_xml/0.471 gorgona/2.1 mod_jk/1.2.4 mod_ruby/1.0.7 Ruby/1.6.8 mod_mrim/0.17
Connection: close
Content-Type: text/html

<HTML><BODY>Bad request</BODY></HTML>


Почему так получается?
Другие странички работают нормально (тестировал на поисковых системах и одном форуме).
Re[2]: Прокси HTTP
От: ExkaliBur Россия  
Дата: 12.10.08 06:45
Оценка:
В предыдущем сообщение стоит не верный текст запроса.
Правильный такой:

GET http://www.mail.ru/ HTTP/1.0
User-Agent: Opera/9.50 (Windows NT 5.1; U; ru)
Host: www.mail.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Cookie: p=qwgPAEuXngAA; searchuid=1372311222254279; geo_city_id=1441; __utma=56108983.1694011043.1221910876.1223306287.1223404780.18; __utmz=56108983.1223404780.18.14.utmccn=(referral)|utmcsr=win.mail.ru|utmcct=/cgi-bin/readmsg|utmcmd=referral; c56=sCr3SAAAQIAAAAA; c8=9wXxSAAAAAJOCwEAAAAAAAAACbQ4BAAAA; Mpop=1223735334:767c605963586a7519050219091d031b06054f6c5150445e01060601b676e525e5b465f545a5b41185c515f541c404d:egor__bolshakov@mail.ru:; mrcu=13A648D120B2541BB2A0BF597D5C; t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAsCwwcA; VID=06FI3M2lkqWZ
Cookie2: $Version=1
Pragma: no-cache
Cache-Control: no-cache
Proxy-Connection: Keep-Alive
Re[3]: Прокси HTTP
От: ExkaliBur Россия  
Дата: 12.10.08 07:15
Оценка:
А Internet Explorer посылает такой запрос:

ДGET http://www.mail.ru/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; WebMoney Advisor; MRA 5.2 (build 02349); User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) ; .NET CLR 2.0.50727)
Host: www.mail.ru
Proxy-Connection: Keep-Alive
Cookie: VID=049rZF2Q1aWZ; p=MkLSAKHdhwAA; mrcu=E1D548D506FD366BC47153567D5C; t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAMBAAAAAAAAAAAfAAsCwwcA; Mpop=1223790427:5478720e587e0a4319050219091d031b06054f6c5150445e010606011b01070e1f5256564b676e525e5b465f545a5b41185c515f541c404d:egor__bolshakov@mail.ru:; searchuid=1180936971221655540; __utma=56108983.772111883.1222594715.1223739657.1223739685.31; __utmz=56108983.1222594715.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); c8=SVfySAAAAAJOCwIAAAAAAh/cAQAAAAAB+VIBAAAAAAJtDgEAAAAA


И все работает!
Как сделать, чтобы в Opera тоже все работала?
Re[3]: Прокси HTTP
От: ExkaliBur Россия  
Дата: 12.10.08 07:18
Оценка:
А Internet Explorer посылает такой запрос

GET http://www.mail.ru/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: ru
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; WebMoney Advisor; MRA 5.2 (build 02349); User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) ; .NET CLR 2.0.50727)
Host: www.mail.ru
Proxy-Connection: Keep-Alive
Cookie: VID=09ZF1aWZ; p=MLAwAA; mrcu=E1D548D506FD366B3567D5C; t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAABAAMBAAAAAAAAAAAfAAsCwwcA; Mpop=1223790427:5478720e587e0a43190502190c5150445e010606016564b676e525e5b465f545a5b41185c515f541c404d:eghakov@mail.ru:; searchuid=1180345454221655540; __utma=56108983.711111883.1211114715.1223739111.1211139685.31; __utmz=56111183.1211114715.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); c8=SVAAAyyyIAAAAAAh/cAQAqqAAB+VIBAAqAAAJtDgEAqAAA


И все работает!
Как зделать чтбы в Opera тоже работало?
Re[4]: Прокси HTTP
От: Michael Chelnokov Украина  
Дата: 12.10.08 09:18
Оценка:
Здравствуйте, ExkaliBur, Вы писали:

EB>Как зделать чтбы в Opera тоже работало?


Я извиняюсь, но какая цель твоих мучений?
Если цель — сделать прокси, то бери готовый. Он будет работать хоть с оперой, хоть с сафари.
Если цель — научиться, то изучай протокол HTTP.
Re[5]: Прокси HTTP
От: ExkaliBur Россия  
Дата: 12.10.08 16:45
Оценка:
Здравствуйте, Michael Chelnokov

Я хочу разобраться, а RFC 2068 я читал.
Re: Прокси HTTP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.10.08 06:18
Оценка:
Здравствуйте, ExkaliBur, Вы писали:

EB>После отправки серверу запроса, например GET, сервер отвечает, но как узнать длинну сообщение?

EB>И можно ли это сообщение частями считывать и отправлять клиенту, то есть считать с сервера 1024 байт и их сразу отправить клиенту, потом снова читать данные с сервера?
Есть пежим передачи Chunked Transfer, как раз заставляет сервер отавать ответ кусками и указывать их длину
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.