답변:
tcpdump
기술적으로는 패킷을 검사하여 응답을 확인할 수 있지만 가장 좋은 네트워크 계층은 아닙니다. 첫 번째 문제는 가변 HTTP 헤더를 처리해야한다는 것이고, 두 번째 문제는 HTTP / 1.1 및 영구 연결을 사용하면 모든 응답 패킷을 검사하거나 모든 요청 / 응답을 재 조립해야한다는 것입니다.
HTTP 요청 은 거의 압축되지 않습니다 . Accept-Encoding:
헤더 에 "gzip"또는 "deflate"의 존재 유무에 대한 요청을 검사하는 것이 유용 할 수 있습니다 .
HTTP 응답에는 압축이 Content-Encoding:
포함 gzip
되거나 deflate
사용되는 헤더 가 있어야합니다 .
참고 사항 :
Apache에서 압축 사용을 기록하는 한 가지 방법은 mod_deflate
의 DeflateFilterNote 를 사용 하고 로깅 지시문을 수정하는 것입니다. 일반적으로 사용자 정의에서 최소한 다음을 사용합니다 LogFormat
.
%>s %B %I %O %D %{instream}n/%{outstream}n/%{ratio}n%% %{Content-Type}o
전체 크기의 입출력, 압축 세부 사항 및 MIME 유형을 기록합니다.
나는 httpry
HTTP 요청을 보곤했지만 슬프게도 응답 헤더 를 검사하고 기록하는 기능이 없기 때문에 작동 하지 않습니다 (패킷이나 HTTP 스트림도 재구성하지 않습니다).
필요한 세부 사항을 제공 해야하는 두 가지 프로그램이 justsniffer
있으며 xplico
(종종 의존성으로 인해 컴파일하기가 약간 까다로워서 사용하지는 않았지만 OS 용 바이너리 패키지를 얻을 수 있다면 괜찮습니다).
HTTP 연결의 헤더를 확인할 수 있습니다. 헤더에 필드 Content-Encoding: gzip
가 포함되어 있으면 내용이 압축 된 것입니다 ( wikipedia 및 W3C HTTP 프로토콜 참조 ).
ngrep을 사용해보십시오 ---
이상적으로는 웹 서버와 통신하는 IP 주소를 알고 있어야합니다. 그렇지 않으면 대부분의 요청을 잡아서 요청과 응답을 찾을 수 있습니다.
참조 https://stackoverflow.com/questions/9241391/how-to-capture-all-the-http-packets-using-tcpdump를