Что значит ошибка "301 Moved" в заголовке ответа сервера на запрос GET? В браузере все работает (то есть страница на месте, никуда она не moved), а в моей кривой проге нет. Напишите пожалста ВАШ вариант GET заголовка (может нужно свою прогу за IE например выдать или еще че нить) PS Наверно не лишним будет уточнить - мне нужен сайт Webwarper.net через него я хочу получать доступ к другим сайтам. это такой веб-акселератор - сжимает страницы и отправляет получателю и(!) также меняет IP клиента при обращении к целевому сайту. PPS при обращении к конкретной директории/файлу через webwarper (Например webwarper.net/ww/~s/wasm.ru) вылезает ошибка 302 Object moved, если пустой GET, то 301 Moved.
Весьма вероятно что ты не указываешь параметр Host: ... надо где-то так: Код (Text): GET / HTTP/1.0 Host: www.wasm.ru Любые другие параметры запроса бывают полезны, но они не критичны. Коревая страница сайта, напротив легко может содержать перенаправление. Например запрашиваешь / , а тебя перепосылают на /index.html. Это не очень частое явление, но возможное... Не вредно так же (хотя вовсе не обязательно) указать Referer: на тот же сайт, хотя бы не его корневую страницу. А вот выдавать себя за чужой браузер, не нужно совсем, равно как и указывать его версию или название. Разве что для красоты или для понта ...
Green_DiCk Невнимательно читаешь ответ: Код (Text): Requesting http://webwarper.net/ww/~s/wasm.ru .. Ok Reply received (reply time: 2503 ms) ------------------------------------ HTTP/1.0 302 Object Moved (WebWarper) Location: http://webwarper.net/ww/~s/wasm.ru/ Requesting http://webwarper.net/ww/~s/wasm.ru/ .. Ok Reply received (reply time: 5077 ms) ------------------------------------ HTTP/1.0 200 Ok
Proteus Хост я действительно не указывал. Для чего это вообще делается? Он же у меня итак прописан в SOCKADDR_IN. Код (Text): pHost = gethostbyname("webwarper.net"); ...... char request[] = "GET / HTTP/1.0\r\n"; //или char request[] = "GET /ww/~s/wasm.ru HTTP/1.0\r\n"; Но попробовал указать - тоже не помогло. Хм... а разве index не открывается по умолчанию когда GET пустой? IceStudent Фига себе... Это у тебя откуда все взялось? У меня только 2 строчки - Код (Text): HTTP/1.0 302 Object Moved (WebWarper) Location: http://www.webwarper.net/ww/~s/wasm.ru Напиши свой запрос пожалуйста.
Там "прописан" только IP-адрес сервера. Это зависит от настроек сервера. Это два разных запроса, неужели не понятно? Или перевести на русский?
IceStudent Всё.. въехал... на серваке может быть до хрена сайтов... понятно. Да. Непонятно. Я вообще несколько туповат. Переведи пожалста на русский. В конце концов сервер ведь все таки выдал OK. Так? Так вот мне интересно как ты этого добился.
Вообще, если охота прикинуться браузером от и до, то врубаешь сниффер (например WireShark (бывший Ethereal)), заходишь браузером на страницу, а затем изучаешь запросы/ответы - здорово помогает если доки по протоколам читать влом.
Green_DiCk OK, перевожу. Код (Text): 1) Запрос http://webwarper.net/ww/~s/wasm.ru .. Ok Ответ получен (время ответа: 2503 мс) ------------------------------------ HTTP/1.0 302 Объект перемещён (WebWarper) Местоположение: http://webwarper.net/ww/~s/wasm.ru/ 2) Запрос http://webwarper.net/ww/~s/wasm.ru/ .. Ok Ответ получен (время ответа: 5077 ms) ------------------------------------ HTTP/1.0 200 Ok Получил я этот лог от простой утилиты для просмотра "сырых" данных протокола HTTP. При запросе исходной ссылки (обрати внимание на отсутствие слэша в конце) сервер сообщает, что эта страница перемещена (или просто находится по другому адресу) и выдаёт настоящую ссылку к ней (со слэшом в конце!). Делается второй запрос, уже новой ссылки — сервер сообщает ответ 200, то есть, дальше пойдёт сама запрашиваемая страница. Никаких фокусов — просто добавь слеш в конце и твоя прога будет получать 200, а не "ошибку 301". А это уже читай спецификацию протокола HTTP (или хотя бы его описание какое-нить, переведённое). Конкретно: выдал ОК, потому что твой запрос не является ошибочным, ведь такая страница всё-же существует, просто её адрес другой и тебе предлагают перейти по нему.
IceStudent Все работает. Спасибо большое. Просто на "черточки" я как то неособо внимание обращал. Хотя один вопрос меня все же мучает. По идее webwarper - это веб-ускоритель, сжимающий данные, то есть браузер получает архивированные страницы, которые потом разархивирует и отображает. А на деле выходит так что грузится несжатая страница... модифицированная конечно (все скрипты, рисунки и прочая, прочая ликвидируются), но не сжатая. Мне это конечно на руку - хлопот гораздо меньше, но все таки почему так?
Открывается конешно. Но иногда приходилось видеть, перенаправление. На mail.ru например было как-то раз, до того как они очередной раз дизайн поменяли. Не знаю нахрена это, но факт что бывает.