Content-Length
Content-Length (콘텐츠 길이)
출처: Content-Length
본문
Content-Length
Traefik은 스트리밍 프록시로 동작해요. 기본적으로 데이터의 각 청크를 백엔드나 클라이언트로 전달하면서 Content-Length 헤더와 대조해 확인해요.
이런 실시간 검사는 전체 메시지를 붙잡아 두지 않고도 잘린 스트림이나 과도하게 긴 스트림을 차단해요.
Traefik이 데이터를 넘기기 전에 전체 본문을 읽고 검증하길 원한다면, 버퍼링 미들웨어를 추가하세요:
http:
middlewares:
buffer-and-validate:
buffering: {}
버퍼링을 활성화하면 Traefik은 다음과 같이 동작해요:
-
요청이나 응답 전체를 메모리로 읽어요.
-
실제 바이트 수를 Content-Length 헤더와 비교해요.
-
수가 일치하지 않으면 메시지를 거부해요.
Warning
버퍼링은 오버헤드를 더해요. 모든 요청과 응답이 전달 전에 완전히 메모리에 보관되므로 메모리 사용량과 지연 시간이 늘어날 수 있어요. 엄격한 콘텐츠 검증이 보안 태세에 중요한 상황에서 사용하세요.