Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

Вопрос тем, кто писал Proxy   Найти похожие ветки 

 
Zyb   (2004-08-25 16:10) [0]

Вопрос в следующем:
я использую компоненту TServerSocket, к ней коннектится IE и посылает запрос GET. Я из этого запроса вычленяю HOST, сохраняю запрос и создаю динамически TClientSocket, который коннектится к HOSTу и посылает сохраненный запрос. Далее HOST возвращает ответ, который я и передаю IE.
Данная система работает на 90% сайтов. Но есть некоторые:
www.yandex.ru, www.yahoo.com и т.д., которые почему-то получая запрос неправильно воспринимают адрес странички, а именно в запросе идет GET http://www.yandex.ru/ HTTP1.0 , а yandex воспринимает, будто бы была запрошена страничка http://www.yandex.ru/www.yandex.ru, т.е. адрес подставляется 2 раза.
В запросе, поступающем от IE ничего не меняю и передаю его серверу как есть.
Подскажите, что-нибудь по этому поводу


 
Polevi ©   (2004-08-25 17:06) [1]

код


 
VMcL ©   (2004-08-25 17:08) [2]

Если мне не изменяет склероз, то запрос должен идти такой:

GET / HTTP/1.0
Host: yandex.ru


 
VMcL ©   (2004-08-25 17:13) [3]

>>VMcL ©  (25.08.04 17:08) [2]

Изменяет. Это в 1.1, а в 1.0 сразу полный адрес. Но если коннект  к хосту уже есть, то все равно просто: "GET / HTTP/1.0":
см. http://www.faqs.org/rfcs/rfc1945.html > п. 5.1.2


 
Piter ©   (2004-08-26 00:07) [4]

что-то ты не так говоришь. Если хочешь узнать корень - то запрос ты правильный привел. Без разницы 1.0 это или 1.1

Вот если через прокси работать - другое дело


 
Piter ©   (2004-08-26 00:08) [5]

VMcL ©   (25.08.04 17:13) [3]
> п. 5.1.2


что-то я там ничего такого не нашел...


 
Zyb   (2004-08-26 08:54) [6]

Всем спасибо дело действительно оказалось в запросе GET нужно вместо строки GET http://www.yandex.ru/ HTTP/1.0 подставлять строку GET / HTTP/1.0


 
VMcL ©   (2004-08-26 10:18) [7]

>>Piter ©  (26.08.04 00:08) [5]

>что-то я там ничего такого не нашел...

Тю. Англицким же по белому написано :)

The absoluteURI form is only allowed when the request is being made
  to a proxy. The proxy is requested to forward the request and return
  the response. If the request is GET or HEAD and a prior response is
  cached, the proxy may use the cached message if it passes any
  restrictions in the Expires header field. Note that the proxy may
  forward the request on to another proxy or directly to the server
  specified by the absoluteURI. In order to avoid request loops, a
  proxy must be able to recognize all of its server names, including
  any aliases, local variations, and the numeric IP address. An example
  Request-Line would be:

      GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.0

  The most common form of Request-URI is that used to identify a
  resource on an origin server or gateway. In this case, only the
  absolute path of the URI is transmitted (see Section 3.2.1,
  abs_path). For example, a client wishing to retrieve the resource
  above directly from the origin server would create a TCP connection
  to port 80 of the host "www.w3.org" and send the line:

      GET /pub/WWW/TheProject.html HTTP/1.0

  followed by the remainder of the Full-Request
. Note that the absolute
  path cannot be empty; if none is present in the original URI, it must
  be given as "/" (the server root).


 
Piter ©   (2004-08-26 10:25) [8]

VMcL ©   (26.08.04 10:18) [7]

я не понял. И что? Где ты увидел полный запрос?

, а в 1.0 сразу полный адрес


 
VMcL ©   (2004-08-26 11:43) [9]

Вот: GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.0


 
atruhin ©   (2004-08-30 10:07) [10]

Данная ошибка да. Но чтобы получить нормально работающий прокси ты должен как минимум обрабатывать keep-alive, connection, запросы к состоянию кэша, и т.д. вообщем смотри rfc, там есть раздел посвященный работе через прокси.
В целом в отличие от простого портмапа HTTP прокси не совсем тривиальная вещь. Хороший пример 3proxy (если с С++ на короткой ноге :).


 
Piter ©   (2004-09-05 22:43) [11]

VMcL ©   (26.08.04 11:43) [9]

дык так надо указывать, если прокси есть!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
1-1099228145
buSel
2004-10-31 16:09
2004.11.14
Взаимодействие между формами


14-1099035098
pppp
2004-10-29 11:31
2004.11.14
Информация к размышлению


14-1099128486
Vladimir Vorfolomeev
2004-10-30 13:28
2004.11.14
Требуются программисты


6-1094494684
pkm
2004-09-06 22:18
2004.11.14
Net.exe


1-1099047852
Pentium133
2004-10-29 15:04
2004.11.14
TStringList и IniFile





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский