• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Request body가 압축되어 있을 수 있는 경우에 대한 해결책이 궁금합니다.

19.02.17 15:16 작성 조회수 370

1

안녕하세요. 기선님 강의를 잘 수강하고 있습니다.

현재 스프링 MVC 설정부분까지 강의를 들었습니다. 강의 내용에 대한 직접적인 질문은 아니지만 request body를 다루는 설정 같은 것과 관련이 있는 것 같아 이 시점에 제가 갖고 있는 문제에 대한 질문을 드리려 합니다.

문제 상황은 이렇습니다.

  • client에서 request를 보낼 때 경우에 따라 request body를 gzip으로 압축해서 보낼 수 있다.
  • gzip으로 압축한 경우에 http header의 content-encoding 값을 gzip으로 설정해 보낸다.

https://github.com/spring-projects/spring-boot/issues/11827 이런 이슈의 내용을 보면 HTTP spec이 아니기 때문에 tomcat 에선 지원하지 않는 것 같습니다. 처음엔 많은 사람들이 비슷한 기능을 원할 것이라 생각해 스프링에 관련 기능이 있을줄 알았는데 없는 것 같습니다. (찾아보았는데 현재까지 찾지 못했습니다.)

질문은

1) spring mvc에 관련 기능이 있는데 제가 못 찾은 것인지

2) 관련 기능이 없다면 기선님께선 이러한 문제를 어떻게 해결하실지 궁금합니다. spring app의 어느 단계에서 어떤 방식으로 request body의 압축을 푸는 선택을 하실지 궁금합니다.

답변을 기다리겠습니다.

감사합니다.

답변 1

답변을 작성해보세요.

1

링크 주신 이슈를 읽어봤는데 당분간은 스프링 또는 스프링 부트에 그런 기능이 들어올거 같지가 않네요. 쓰고 싶은 기능 자체가 표준이 아닌데다가 Tomcat, Jetty, Undertow 모두 지원하질 않고 있습니다. 직접 해야해야 하는 상황인데 핸들러 인터셉터를 만들거나, 서블릿 필터를 만들어서 요청 헤어에 gzip이 들어있으면 본문을 압축 풀어주도록 직접 만들어서 설정해야겠네요.