# Web Server์ WAS
Assembled by GimunLee
# Web Server๋
Web Server๋ ์ํํธ์จ์ด์ ํ๋์จ์ด๋ก ๊ตฌ๋ถ๋๋ค.
- ํ๋์จ์ด: Web ์๋ฒ๊ฐ ์ค์น๋์ด ์๋ ์ปดํจํฐ
- ์ํํธ์จ์ด: ์น ๋ธ๋ผ์ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ ์ ์ ์ธ ์ปจํ ์ธ (.html .jpeg .css ๋ฑ)๋ฅผ ์ ๊ณตํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ
Web Server๋ HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ ๋๋ ์น ํฌ๋กค๋ฌ)์ ์์ฒญ์ ์๋น์ค ํ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค. ์์ฒญ์ ๋ฐ๋ผ ์๋์ ๋ ๊ฐ์ง ๊ธฐ๋ฅ ์ค ์ ์ ํ๊ฒ ์ ํํ์ฌ ์ํํ๋ค.
Web Server์ ์ฃผ์ ๊ธฐ๋ฅ
์ ์ ์ธ ์ปจํ ์ธ ์ ๊ณต
WAS๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์์์ ์ ๊ณตํ๋ค.
๋์ ์ธ ์ปจํ ์ธ ์ ๊ณต์ ์ํ ์์ฒญ ์ ๋ฌ
ํด๋ผ์ด์ธํธ์ ์์ฒญ(Request)์ WAS์ ๋ณด๋ด๊ณ , WAS๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ(์๋ต, Response)ํ๋ค. ํด๋ผ์ด์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ฏธํ๋ค.
Web Server์๋ Apache Server, Nginx, IIS(Windows ์ ์ฉ Web ์๋ฒ) ๋ฑ์ด ์๋ค.
# WAS(Web Application Server)๋
WAS๋ DB ์กฐํ๋ ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๋ ๋์ ์ธ ์ปจํ
์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ง๋ค์ด์ง Application Server
์ด๋ค. ๋ํ, HTTP๋ฅผ ํตํด ์ปดํจํฐ๋ ์ฅ์น์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํํด์ฃผ๋ ๋ฏธ๋ค์จ์ด(์ํํธ์จ์ด ์์ง)์ด๋ค. ์น ์ปจํ
์ด๋(Web Container) ํน์ ์๋ธ๋ฆฟ ์ปจํ
์ด๋(Servlet Container) ๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. Container๋ JSP, Servlet์ ์คํ์ํฌ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค.
์ฆ, WAS๋ JSP, Servlet ๊ตฌ๋ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , Web Server ๊ธฐ๋ฅ๋ค์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๊ณ ์ํ๋ ๋ชฉ์ ์ผ๋ก ์ ์๋์๋ค. ๋ถ์ฐ ํธ๋์ญ์ , ๋ณด์, ๋ฉ์์ง, ์ฐ๋ ๋ ์ฒ๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๋ ๋ถ์ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ฉฐ ์ฃผ๋ก DB ์๋ฒ์ ๊ฐ์ด ์ํ๋๋ค.
WAS์ ์ฃผ์ ๊ธฐ๋ฅ
ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ๊ณผ DB ์ ์ ๊ธฐ๋ฅ ์ ๊ณต
์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์ (๋ ผ๋ฆฌ์ ์ธ ์์ ๋จ์) ๊ด๋ฆฌ ๊ธฐ๋ฅ
์ ๋ฌด๋ฅผ ์ฒ๋ฆฌํ๋ ๋น์ฆ๋์ค ๋ก์ง ์ํ
WAS ๋์ ํ๋ก์ธ์ค
Web Server๋ก๋ถํฐ ์์ฒญ์ด ์ค๋ฉด ์ปจํ ์ด๋๊ฐ ๋ฐ์์ ์ฒ๋ฆฌํ๋ค.
์ปจํ ์ด๋๋ web.xml์ ์ฐธ์กฐํ์ฌ ํด๋น ์๋ธ๋ฆฟ์ ๋ํ
์ฐ๋ ๋ ์์ฑ
ํ๊ณ httpServletRequest์ httpServletResponse ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ ๋ฌํ๋ค.์ปจํ ์ด๋๋ ์๋ธ๋ฆฟ์ ํธ์ถํ๋ค.
ํธ์ถ๋ ์๋ธ๋ฆฟ์ ์์ ์ ๋ด๋นํ๊ฒ ๋ ์ฐ๋ ๋(2๋ฒ์์ ๋ง๋ ์ฐ๋ ๋)๋ doPost()๋๋ doGet()์ ํธ์ถํ๋ค.
ํธ์ถ๋ doPost(), doGet() ๋ฉ์๋๋ ์์ฑ๋ ๋์ ํ์ด์ง๋ฅผ Response ๊ฐ์ฒด์ ๋ด์ ์ปจํ ์ด๋์ ์ ๋ฌํ๋ค.
์ปจํ ์ด๋๋ ์ ๋ฌ๋ฐ์ Response๊ฐ์ฒด๋ฅผ HTTPResponseํํ๋ก ๋ฐ๊ฟ Web Server์ ์ ๋ฌํ๊ณ ์์ฑ๋์๋ ์ฐ๋ ๋๋ฅผ ์ข ๋ฃํ๊ณ httpServletRequest, httpServletResponse ๊ฐ์ฒด๋ฅผ ์๋ฉธ์ํจ๋ค.
WAS์๋ Tomcat, JBoss, Jeus, Web Sphere ๋ฑ์ด ์๋ค.
# Web Server์ WAS์ ์ฐจ์ด
๋์ ์ฝํ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ฐ๋ฅํ๊ฐ ์๋๊ฐ๋ก ๊ตฌ๋ถ๋๋ค. WAS๋ ์ ์ , ๋์ ๋๋ค ์ฒ๋ฆฌ ๊ฐ๋ฅํ์ง๋ง ์ ์ ์ฒ๋ฆฌ๋ฅผ WAS๊ฐ ํ๊ฒ๋๋ฉด ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ ค์ ์ข์ง ์๋ค.
Tomcat(WAS)์๋ Apache(Web Server)์ ๊ธฐ๋ฅ(HTTPD)๋ฅผ ํฌํจํ๊ณ ์๋ค. ์ฌ๊ธฐ์ HTTPD๋ ์น ์๋ฒ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋์ด ๋ค์ด์ค๋ ์๋ฒ ์์ฒญ์ ๋๊ธฐํ๋ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ์ด๋ค.
์ถ๊ฐ๋ก Tomcat์ด WAS, Web Server๋ฅผ ๋ฐ๋ก ๋๊ณ ์ฐ๋ ์ด์ ๊ฐ ์ฑ๋ฅ ๋๋ฌธ์ด๋ผ๊ณ ํ๋ ๊ฑด ์๋ชป๋์๋ค. Tomcat 5.5 ์ด์๋ถํฐ๋ HTTPD์ native ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ ์ ํ์ผ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ, ์ด๊ฒ์ด ์์ ์ํ์น HTTPD๋ง ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น๊ตํด์ ์ฑ๋ฅ์ด ์ ํ ๋จ์ด์ง์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ผ์๋ Tomcat(WAS) ์์ Apache(Web Server)๋ฅผ ๋๋ ์ด์ ๋ ํ๋์ ์๋ฒ์์ php ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ java ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ๊ป ์ฌ์ฉํ๊ฑฐ๋, Apache(Web Server)์ HTTPD ์๋ฒ๊ฐ ๊ฐ๋จํ ๋ก๋๋ฐธ๋ฐ์ฑ์ ์ํด์ ์ฌ์ฉํด์ผ ํ ๋ ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.