Вчера я взял свой ноутбук в местный ресторан, чтобы поработать над настройкой нового веб-приложения. Я установил сервер и создал простую HTML-страницу:
<html>
<body>Hello, world.</body>
</html>
Я запускаю сервер (Джерси), а затем выполняю следующую команду, чтобы убедиться, что все работает правильно:
curl http://localhost:8080/assets/index.html
Каково же было мое удивление, когда вместо моего простого документа я увидел следующее:
<html lang="en" xml:lang="en"><!PAGEREF 1>
<head><title>Eguide</title>
<script type="text/javascript" src="/all/rootscript.js"></script>
<script type="text/javascript" src="/cobrandscript.js"></script>
</head>
<!--
/yp/home.htm
<a href="http://webmailtest.bellsouth.net" target=_top>Webmail test</a>
v. 2.8b srv24
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="0;URL=http://home.bellsouth.net">
</head>
<body>
</body>
</html>
<html>
<body>Hello, world.</body>
</html>
Мой документ находится внизу, но до этого был каким-то образом введен беспорядок кода. Моя первая мысль заключалась в том, чтобы найти в моей системе некоторые строки, содержащиеся в результирующем HTML (например, grep -ri cobrandscript
запустить из корневого каталога). В моей системе не было подозрительных файлов. Итак, я выключаю свой Wi-Fi и запускаю ту же команду curl. На этот раз мой трехстрочный HTML-документ возвращается без каких-либо дополнений.
Похоже, что провайдер вводит HTML в документ HTML, который обслуживается с localhost.
У меня вопрос: как это возможно? Это контент, обслуживаемый localhost; это означает, что запрос к localhost на самом деле попадает во внешнюю сеть, по крайней мере, при подключении, и такое поведение мне кажется совершенно неправильным.
Похоже, вы используете прокси-сервер. Даже если вы получаете доступ к localhost, если вы не настроили параметры прокси-сервера для игнорирования localhost, он будет маршрутизироваться через прокси. Возможно, вы не настроили прокси-сервер, он может быть просто частью конфигурации сети, распространяемой любой сетью, к которой вы подключаетесь.
использовать curl --noproxy localhost, http://localhost:8080/assets/index.html