๐ Web Server
๐ ์ ์
- ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)๊ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ณด๋ด๋ HTTP ์์ฒญ์ ๋ฐ์ ์ ์ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ์๋ฒ.
๐ ๊ธฐ๋ฅ
- ์น ๋ฌธ์๋ค์ HTTP ๊ท์ฝ์ ๋ฐ๋ผ ์น ํด๋ผ์ด์ธํธ์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ํต์ .
- HTML, CSS, JavaScript, ์ด๋ฏธ์ง, ํ์ผ ๋ฑ ์ฆ์ ์๋ต๊ฐ๋ฅํ ์ ์ ์ปจํ ์ธ ์ ๊ณต.
- ๋์ ์ปจํ ์ธ ์์ฒญ ์ WAS์๊ฒ ํด๋น ์์ฒญ์ ๋๊ฒจ์ฃผ๊ณ , WAS์์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ.
๐ ์ข ๋ฅ
- Apache
- IIS
- nginx
๐ WAS (Web Application Server)
๐ ์ ์
- ์น ์๋ฒ์ ์น ์ปจํ ์ด๋๊ฐ ํฉ์ณ์ง ํํ๋ก, ์น ์๋ฒ ๋จ๋ ์ผ๋ก๋ ์ฒ๋ฆฌํ ์ ์๋ ๋์ ์๋ฒ ์ปจํ ์ธ ๋ฅผ ์ํํ๋ ์๋ฒ.
- ์ฃผ๋ก DB ์๋ฒ์ ๊ฐ์ด ์ํ.
- HTTP๋ฅผ ํตํด ์ปดํจํฐ๋ ์ฅ์น์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํด์ฃผ๋ ๋ฏธ๋ค์จ์ด(์ํํธ์จ์ด ์์ง).
- “์น ์ปจํ ์ด๋(Web Container)” ํน์ “์๋ธ๋ฆฟ ์ปจํ ์ด๋(Servlet Container)”๋ผ๊ณ ๋ ๋ถ๋ฆผ.
๐ ๊ธฐ๋ฅ
- WAS = Web Server + Web Container
- Web Server ๊ธฐ๋ฅ๋ค์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๊ณ ์ํ๋ ๋ชฉ์ ์ผ๋ก ์ ์
- JSP, ASP, PHP ๋ฑ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ์ด๋ค ๋์์ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณต.
- DB์ ์กฐํ๋ ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋์ ์ปจํ ์ธ ์ ๊ณต.
- JSP, Servlet ๊ตฌ๋ํ๊ฒฝ ์ ๊ณต - ์น/์๋ธ๋ฆฟ ์ปจํ ์ด๋
- ํธ๋์ญ์ , ๋ณด์, ํธ๋ํฝ๊ด๋ฆฌ, DB ์ปค๋ฅ์ ํ, ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ฑ
๐ ์ข ๋ฅ
- Tomcat
- Web Sphere
- Jeus
- JBoss
๐ Request & Response ๋์ ๊ณผ์
๐ ํ๋ฆ
1. Web Server๋ ์น ๋ธ๋ผ์ฐ์ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ๋๋ค.
2. Web Server๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ(Request)์ WAS์ ๋ณด๋ธ๋ค.
3. WAS๋ ๊ด๋ จ๋ Servlet์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
4. WAS๋ web.xml์ ์ฐธ์กฐํ์ฌ ํด๋น Servlet์ ๋ํ Thread๋ฅผ ์์ฑํ๋ค. (Thread Pool ์ด์ฉ)
5. HttpServletRequest์ HttpServletResponse ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ Servlet์ ์ ๋ฌํ๋ค.
- Thread๋ Servlet์ service() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- service() ๋ฉ์๋๋ ์์ฒญ์ ๋ง๊ฒ doGet() ๋๋ doPost() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
6. protected doGet(HttpServletRequest request, HttpServletResponse response)
7. doGet() ๋๋ doPost() ๋ฉ์๋๋ ์ธ์์ ๋ง๊ฒ ์์ฑ๋ ์ ์ ํ ๋์ ํ์ด์ง๋ฅผ Response ๊ฐ์ฒด์ ๋ด์ WAS์ ์ ๋ฌํ๋ค.
8. WAS๋ Response ๊ฐ์ฒด๋ฅผ HttpResponse ํํ๋ก ๋ฐ๊พธ์ด Web Server์ ์ ๋ฌํ๋ค.
9. ์์ฑ๋ Thread๋ฅผ ์ข ๋ฃํ๊ณ , HttpServletRequest์ HttpServletResponse ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ค.
๐ Web Server์ WAS์ ๊ดํ ์ง๋ฌธ
- Web Server ์์ด WAS๋ง ์จ๋ ๋๋คโ
๊ทธ๋ ์ง ์๋ค. WAS๋ DB ์กฐํ ๋ฐ ๋ค์ํ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ง์คํด์ผ ํ๋ค. ๋ฐ๋ผ์ ๋จ์ ์ ์ ์ปจํ ์ธ ์ฒ๋ฆฌ๋ ์น ์๋ฒ์๊ฒ ๋งก๊ธฐ๊ณ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌ์์ผ ์๋ฒ ๋ถํ๋ฅผ ๋ฐฉ์งํ๋ค.
โญ ์น ์๋ฒ๋ฅผ WAS ์์ ๋๊ณ ํ์ํ WAS๋ค์ Web Server์ ํ๋ฌ๊ทธ์ธ ํํ๋ก ์ค์ ํ๋ฉด ๋์ฑ ํจ์จ์ ์ธ ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- Tomcatโ Apache Tomcatโ
WAS ์๋ฒ์ธ Tomcat์ด ์น ์๋ฒ์ธ Apache์ ํจ๊ป “Apache Tomcat”๋ก ๋ช ๋ช ๋๋ ์ด์ ๋ Tomcat 5.5 ๋ฒ์ ๋ถํฐ ์ ์ ์ปจํ ์ธ ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด Tomcat์ด Apache์ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ๊ณ ์ฌ์ดํธ : https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html