Как получить исходный URL-адрес данных, которые были получены через сокет? - PullRequest
0 голосов
/ 23 января 2012

Я думал о том, чтобы отслеживать перенаправления, потому что у них будет следующий URL в заголовке, пока я не получу HTTP200 в порядке, тогда у меня будет полное доменное имя источника 200.

Но я неНе смотря на то, что это делает браузер, мой прокси-сервер может выполнить жесткое перенаправление запроса браузера, но браузер отображает правильный URL-адрес перенаправленных данных, не получив ни одного HTTP301.

Я хочу знать, чтобраузер делает, чтобы получить источник своих данных, а затем сделать это в Winsock.Кто-нибудь? * * 1005

Ответы [ 4 ]

2 голосов
/ 24 января 2012

Что бы ни делал браузер, он не получит информацию из слоя winsock: сокеты перемещаются только по IP-адресам и портам.Я не очень много знаю о winsock (я парень из UNIX), но он достаточно похож на уровень сокетов UNIX, чтобы быть уверенным в том, что любая информация транспортного уровня поступает из абстракции более высокого уровня.Если вы посмотрите на [модель OSI] {http://en.m.wikipedia.org/wiki/OSI_model}, то увидите, что winsocks обращается к уровню 5, а то, что вы ищете - это уровень 7. API обычно остается в пределах соответствующего уровня.Это представление, похоже, подтверждается [FAQ по winsock] {http://tangentsoft.net/wskfaq/intermediate.html#appproto}.

0 голосов
/ 24 января 2012

Решение Winsock для моего вопроса заключается в использовании функции getpeername() после connect() при удаленном подключении.Это должно вернуть IP: Информация о порте, с которого я могу получить имя хоста, по крайней мере.

0 голосов
/ 24 января 2012

Существуют способы перенаправления без 301. Есть также 302. Есть элемент

<meta http-equiv="refresh" content="0; url=http://foo.com/">

Наконец, есть JavaScript:

<html><head><script language="javascript">    
window.location.href = "http://www.bar.com";
</script></head><body></body></html>
0 голосов
/ 24 января 2012

Не все перенаправления HTTP приводят к изменению URL.Перенаправление 301, безусловно, делает, но другие перенаправления 3xx не делают.Если браузер получает перенаправление, отличное от 301, он может решить, продолжать ли отображать исходный URL-адрес или отобразить новый перенаправленный URL-адрес.

...