티스토리 뷰

Servlet

  • 서블릿은 Java로 구현된 HTTP 요청 및 응답을 처리하기 위한 표준이다.
  • 표준은 인터페이스로 제공되며, Servlet Container 구현체(Tomcat)가 제공한다.Jakarta Servlet defines a server-side API for handling HTTP requests and responses.

Web Server VS WAS

  • Web Server는 정적컨텐츠를 전송
  • WAS는 동적컨텐츠를 전송
    • Web Server + Container
    • 요청에 따라 응답이 다름
    • Tomcat 은 Servlet Container
    • Servlet Container는 WAS에 포함되는 개념

Servlet Container

  • Servlet 생명주기를 관리하고 요청에 따라 스레드를 생성
    https://dzone.com/articles/what-servlet-container
  • 요청 처리과정
    1. 웹서버가 http request 를 받는다.
    2. 웹서버가 서블릿 컨테이너에게 요청을 보낸다. 요청받은 서블릿 컨테이너는 HttpServletRequest, HttpServletResponse 두 객체를 만든다.
    3. 서블릿 컨테이너에서 서블릿을 로드하고, 시작(init)한다. 요청을 처리할 수 있는 서블릿을 찾아서 스레드를 할당하고 request, response 객체를 전달한다.
    4. 서블릿의 service 메소드를 실행하고, 요청에 따른 프로세스를 진행한다. HTTP Method에 따라 doGet() 또는 doPost() 메서드를 호출한다.
    5. 웹서버는 동적으로 생성된 결과의 응답을 반환한다.
  • 서블릿 컨테이너는 요청에 따라 분리된 thread를 사용한다.

https://www.oreilly.com/library/view/head-first-servlets/9780596516680/ch04s04.html

  • tomcat 스레스 설정을 할 수 있다. (spring boot를 사용한다면 ~.properties, ~.yml에서 설정가능)
  • 대표적으로 Servlet Container 구현체에는 Tomcat이 있다.
  • TomcatThe Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications.

Dispatcher Servlet

  • 스프링 프레임워크에서 제공하는 웹 서블릿이다.
  • 프론트 컨트롤러 디자인 패턴트로 불리기도 한다.
  • 요청을 Controller 에게 보내주고 응답을 처리해주는 역할을 한다.
    https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/mvc.html

Filter VS Interceptor

  • 필터는 Servlet으로 요청이 전송되기 전에 추가적인 처리를 할 때 적용된다.
  • DispatcherServlet 전에 처리가 필요한 작업에 사용 (인증, 로깅, 압축, 이외 스프링을 사용할 필요가 없는 기능들)
  • Interceptor는 DispatcherServlet과 Controller 사이에 필요한 작업에 사용(애플리케이션 로깅, 권한체크 등)
    https://www.baeldung.com/spring-mvc-handlerinterceptor-vs-filter

참고

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함