웹 서버 - Web Server
클라이언트가 서버에 전달한 request를 받아 정적인 컨텐츠를 제곡하는 서버이다.
ex) html, css를 통해 이미지를 띄우는 경우
request를 받아 가장 앞에서 요청에 대한 처리를 한다. 요청이 많을 경우 웹 서버에서는 웹 문서를, WAS에서는 JSP 페이지를 양분하여 처리해 서버의 부담을 줄여주는 역할도 한다.
WAS - Web Application Server
동적인 컨텐츠를 제공하는 서버이다. JSP 등의 처리를 한다.
ex) DB연동을 통해 데이터를 주고받거나 프로그램으로 데이터 조작이 필요한 경우
<출처 : http://mindols.tistory.com/86>
웹 서버 동작 프로세스
1. 클라이언트가 요청을 보낸다.
2. 웹 서버는 요청을 받고 정적인 컨텐츠이면 웹 서버에서 처리해 응답을 클라이언트에게 보낸다.
<동적인 컨텐츠 처리>
3. 정적인 컨텐츠가 아니라면 WAS로 요청을 보낸다.
4. 웹 서버로부터 요청이 오면 컨테이너가 받아서 처리한다.
<컨테이너가 받아서 처리하는 프로세스>
5. 컨테이너는 web.xml을 참조하여 해당 서블릿에 대한 쓰레드를 생성하고 httpServletRequest와 httpServletResponse객체를 생성하여 전달한다.
6. 컨테이너는 서블릿을 호출한다.
7. 호출된 서블릿의 작업을 담당하는 쓰레드(5번)는 doPost()또는 doGet()을 호출한다.
8. 호출된 doPost(), doGet() 메소드는 생성된 동적 페이지를 Response객체에 담아 컨테이너에 전달한다.
9. 컨테이너는 전달받은 Response객체를 HTTPResponse형태로 바꿔 웹 서버에 전달후 생성했던 쓰레드를 종료하고 httpServletRequest, httpServletResponse 객체를 소멸시킨다.
10. WAS에서 처리한 컨텐츠를 웹 서버가 받아 클라이언트에게 응답한다.
아파치 - Apache
아파치는 소프트웨어 단체이다. 우리가 사용하는 '아파치 서버'는 아파치에서 후원하는 오픈소스 프로젝트 커뮤니티에서 만든 http 웹 서버를 지칭하는 것이다. html 등의 정적인 컨텐츠를 처리할 때 사용하는 웹 서버 중 하나이다.
톰캣 - Tomcat
jsp 등의 처리를 할 때 사용하는 WAS중 하나이다. 즉, 동적인 컨텐츠를 처리할 때 사용한다. 톰캣에는 아파치의 기능(웹 서비스 데몬, Httpd)를 포함하고 있다.
<참고>
http://sungbine.github.io/tech/post/2015/02/15/tomcat%EA%B3%BC%20apache%EC%9D%98%20%EC%97%B0%EB%8F%99.html
http://jeong-pro.tistory.com/84
http://mindols.tistory.com/86
'웹' 카테고리의 다른 글
[ASCII]아스키코드의 인코딩 값(펌글) (0) | 2018.06.28 |
---|---|
[보안]xss와 sql injection (0) | 2018.06.15 |
[CORS-크로스 도메인]프로토콜 문제 (0) | 2018.06.05 |
[jQuery Ajax]생활코딩>클라이언트>JavaScript>웹브라우저 자바스크립트>jQuery Ajax (0) | 2018.05.31 |
[Ajax]생활코딩>클라이언트>JavaScript>웹브라우저 자바스크립트>Ajax (0) | 2018.05.31 |