HTTP 호출이 zip인지 확인


4

포트 80에서 실행되는 응용 프로그램 서버 (Linux)가 있다고 가정하면 (tcpdump를 사용하여 들어오는 모든 요청이 gzpping되고 모든 응답이 gzpping되는지 어떻게 확인할 수 있습니까?) 또한 서버 자체가 다른 서버 (Windows)를 호출하기 때문에이 다른 서버와의 나가고 들어오는 패키지 (압축 된 경우)를 어떻게 확인할 수 있습니까? 감사

답변:


5

tcpdump기술적으로는 패킷을 검사하여 응답을 확인할 수 있지만 가장 좋은 네트워크 계층은 아닙니다. 첫 번째 문제는 가변 HTTP 헤더를 처리해야한다는 것이고, 두 번째 문제는 HTTP / 1.1 및 영구 연결을 사용하면 모든 응답 패킷을 검사하거나 모든 요청 / 응답을 재 조립해야한다는 것입니다.

HTTP 요청거의 압축되지 않습니다 . Accept-Encoding:헤더 에 "gzip"또는 "deflate"의 존재 유무에 대한 요청을 검사하는 것이 유용 할 수 있습니다 .

HTTP 응답에는 압축이 Content-Encoding:포함 gzip되거나 deflate사용되는 헤더 가 있어야합니다 .

참고 사항 :

  • 많은 브라우저 버그로 인해 많은 웹 서버에는 기본 User-Agent 목록이 있으며 압축 할 수 없습니다.
  • 기본 파일 / URL 패턴 또는 MIME 컨텐츠 유형 세트가있을 가능성이 높으며 PDF 및 이미지 압축은 종종 수행되지 않습니다.
  • 작은 파일은 압축되지 않을 수 있습니다

Apache에서 압축 사용을 기록하는 한 가지 방법은 mod_deflateDeflateFilterNote 를 사용 하고 로깅 지시문을 수정하는 것입니다. 일반적으로 사용자 정의에서 최소한 다음을 사용합니다 LogFormat.

%>s %B %I %O %D %{instream}n/%{outstream}n/%{ratio}n%% %{Content-Type}o

전체 크기의 입출력, 압축 세부 사항 및 MIME 유형을 기록합니다.

나는 httpryHTTP 요청을 보곤했지만 슬프게도 응답 헤더 를 검사하고 기록하는 기능이 없기 때문에 작동 하지 않습니다 (패킷이나 HTTP 스트림도 재구성하지 않습니다).

필요한 세부 사항을 제공 해야하는 두 가지 프로그램이 justsniffer있으며 xplico(종종 의존성으로 인해 컴파일하기가 약간 까다로워서 사용하지는 않았지만 OS 용 바이너리 패키지를 얻을 수 있다면 괜찮습니다).



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.