본문 바로가기
Drawing note

[웹 개발/스터디] 서버(Server) / 자바 서블릿(Servlet) 엔진

by 오늘이 내가 된다. 2022. 3. 7.

해당 글은
React.js, 스프링 부트, AWS로 배우는 웹 개발 101, 김다정, 에이콘

을 토대로 작성했습니다.

 


서버란?

서버란 프로그램이다.

지정된 포트, 예를들어 8080포트에 소켓을 열고 클라이언트가 연결할 때까지 무한 대기하며 기다린다.클라이언트가 연결하면 해당 클라이언트 소켓에서 요청을 받아와 수행하고 응답을 작성해 전달한다.

 

포트에 소켓을 할당 -> 클라이언트 연결 대기 -> 클라이언트 연결 시 소켓에서 요청 수행 -> 응답 작성 -> 전달

 

 

정적 웹 서버

HTTP 서버 중에서도 리소스 파일을 리턴하는 서버

서버는 해당 html 파일에 아무 작업도 하지 않고 파일을 있는 그대로 리턴

정적 웹 서버의 예 : 아파치, Nginx 등

 

 

동적 웹 서버

파일을 있는 그대로 리턴하지 않는다.

요청을 처리 -> 처리한 결과에 따라 응답

요청에 따라 응답 결과가 바뀌므로 요청 시 매개변수를 통해 각 작업을 수행 후 각각의 다른 응답결과를 받는다.

즉, 각 요청과 매개변수에 따라 로직을 작성을 해야한다.

 

 

자바 서블릿(Servlet) 엔진

동적 웹 서버 구현을 도와주는 프로그램이 서블릿 엔진이다.

아파치 톰캣이 서블릿 엔진에 해당한다.

 

서블릿 엔진에게 자기가 개발한 비즈니스 로직 즉, 클래스 파일과 해당 클래스 파일을 어느 요청에서 실행해야 하는지를 알려줘야 한다. 이때 서블릿 엔진이 이해할 수 있는 형태로 클래스 파일을 작성해야 한다.

 

HttpServlet을 상속받는 클래스를 작성 -> 특정 형식에 맞춰 압축 -> 전달

서버를 처음부터 구현하지 않고 다른 비즈니스 로직을 구현 및 배포가 가능

 

 

댓글