코딩을 하다보면 요청객체를 HttpSevletRequest
또는 WebRequest
로 받아 활용하고 있는데
과연 위 두 객체의 차이점 및 특징은 뭔지 알아보려 합니다.
이 포스트에서는
HttpSevletRequest
와WebRequest
에 대한 설명 및 차이점에 대해 작성해 보려 합니다.
서블릿 기반 애플리케이션에서 HTTP 요청을 처리하는 방법을 제공합니다.
클라이언트가가 서버에 요청을 보내면 서블릿 컨테이너는 이 요청을 HttpServletRequest
객체로 래핑하고 이를 서블릿의 서비스 메서드에 전달합니다.
getSession()
메서드를 통한 세션관리가 가능합니다.InputStream
을 통해 요청 본문을 직접 읽을 수 있습니다.Spring 기반 애플리케이션에서 다양한 유형의 요청(Ex. HTTP, 원격호출)에 걸쳐 요청속성과 상호작용하는 방법을 제공합니다.
SpringMVC 또는 Spring WebFlux 핸들러 내에서 활용되며 Servlet API에 직접 의존하지 않고 요청에 접근하는 일반화된 방법을 제공합니다.
HttpServletRequest
와 같은 요청 본문 읽기를 직접 허용하지 않지만 @RequestBody
및 요청 데이터를 메소드 매개변수에 바인딩하는 기타 주석과 함께 작동합니다.HttpServletRequest
보다 더 높은 수준의 추상화를 제공하므로 데이터 바인팅, 유효성 겁사 등과 같은 Spring의 광범위한 기능을 활용할 수 있는 Spring Framework로 개발된 애플리케이션에 적합합니다.WebRequest
는 Spring의 웹 애플리케이션 기능을 활용하는 Spring MVC 컨트롤러 내의 인터페이스입니다.포스트를 작성하며 자료를 찾다보니 위 두 객체에 대해 조금 더 구분할 수 있게 되었습니다.
앞으로는 애플리케이션의 특정 요구 사항과 원하는 방식을 고려해 사용할 수 있을 것 같습니다.