Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Вопрос тем, кто писал 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
4-1097043687
Nalexey
2004-10-06 10:21
2004.11.14
Зависание при выполнении ZwQueryObject


3-1098039899
S@shka
2004-10-17 23:04
2004.11.14
100% загрузка проца


14-1098726744
vecna
2004-10-25 21:52
2004.11.14
Зенит 0 - 3 ЦСКА


14-1098544150
Кириешки
2004-10-23 19:09
2004.11.14
Очередное надувательство???


3-1097930940
TSL
2004-10-16 16:49
2004.11.14
Проблема с полем Image в mssql2000