Монитор локальной сети хоста и запрос httpservlet
У меня есть два сервера Tomcat на моей машине, которые общаются друг с другом.
1) Может ли кто-нибудь порекомендовать хороший (бесплатный) сетевой анализатор, чтобы я мог отслеживать запросы / ответы, отправляемые между ними?
2) Как я могу проверить запрос в коде Java? чтобы увидеть, из чего состоит заголовок и тело и их структуры?
Большое спасибо, по какой-то причине № 2 не так прямолинеен, как я думал.
мне
4 ответа
1) Wireshark - это "сетевой" анализатор сети. Но если вы работаете в Windows и хотите быстрый и простой способ видеть http-трафик, взгляните на Fiddler. Это плагин IE, но он может отслеживать весь http-трафик с вашего компьютера.
2) В сервлете или, еще лучше, в фильтре сервлетов добавьте следующее.
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()) {
String headerName = (String)headerNames.nextElement();
out.println("<TR><TD>" + headerName);
out.println(" <TD>" + request.getHeader(headerName));
}
Мне нравится Wireshark.
Если вы работаете в Windows, вы не можете напрямую отслеживать петлю 127.0.0.1. Вам нужно будет установить альтернативный петлевой адаптер (те же функции на другом адресе). Это подробно описано в документации по Wireshark:
http://wiki.wireshark.org/CaptureSetup/Loopback
Я не уверен, что вы подразумеваете под своим вторым вопросом, можете ли вы рассказать подробнее?
Если все ваши запросы основаны на HTTP, то Wireshark сможет отображать заголовки и данные тела, но это не входит в контекст кода Java.
Я просто использовал
http://socketsniff.nirsoft-freeware.qarchive.org/_download2.html
и это сработало безупречно для того, что я хотел.
Бесстыдно скопировал с этого вопроса:
Как насчет настройки серверов Tomcat для удаленной отладки под номером 2? Добавить точку останова, чтобы вы могли проверить объекты? http://wiki.apache.org/tomcat/FAQ/Developing