Servlet API
- ์๋ฐ์์ ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ณธ์ ์ธ API๋ก Servlet
- Servlet: ์ธํฐํ์ด์ค๋ก ์ ๊ณต์ด ๋๋ฉฐ, ์ง์ Servlet์ ๊ตฌํ์ ํจ. ํฐ์บฃ์ ํด๋น ์๋ธ๋ฆฟ์ ์คํํ๊ณ ๊ด๋ฆฌ๋ฅผ ํด์ค.
- ์ฆ, Tomcat์ Servlet ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ฅผ ์ธ์คํด์คํํ๊ณ ํธ์ถ์ ํ๊ฒ ๋๋ค๋ ์๋ฏธ์ด๋ค.
- ๋จ, Servlet ์ธํฐํ์ด์ค๋ ๊ตฌํํด์ผ์ง๋ง ํฐ์บฃ์ ํด๋์ค๋ฅผ ๋ฑ๋กํ ์ ์์.
- Tomcat๊ณผ Jetty ๋ฏธ๋ค์จ์ด๊ฐ ํด๋น APIํํ์ ๋ง๊ฒ ๊ตฌํ์ด ๋์ด์์.
Tomcat
- Apache Software Foundation์์ ๊ฐ๋ฐํ ์๋ฐ ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS) ์ด๋ค.
- ์๋ฐ์ ๋ด์ฅ ๋์ด์๋ Servlet API ์๋ธ๋ฆฟ ์คํ ํ๊ฒฝ ์คํ์ ๊ตฌํํ ์๋ฐ ์์ค์ฝ๋์.
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋(Servlet Container)๋ผ๊ณ ๋ ๋ถ๋ฆ
- ๋ฏธ๋ค์จ์ด์ด๋ฉฐ, ๋คํธ์ํฌ๋ก ์์ฒญ์ด ๋ค์ด์ฌ ๋ ํน์ ํฌํธ๋ก ์์ฒญ์ ๋ฐ์ ์ ์์. 8080
- HttpServlet ์ถ์ํด๋์ค๋ฅผ ์์ ๋ฐ์ ์ฌ์ฉ์ ์ ์ Servlet์ ๋ง๋ค ์ ์์.
- ์ฌ์ฉ์ ์ ์ Servlet์ xml(ํ์ผ ์คํธ๋ฆผ)๊ณผ ์ ๋ํ ์ด์ (๋ฆฌํ๋ ์ ) ๋ฐฉ์์ผ๋ก ์ฝ์ด ํด๋น Servlet์ ํธ์ถํจ.
- init() ์ด๊ธฐํ ๋ฉ์๋ ์คํ -> service() ์์ฒญ ์ฒ๋ฆฌ -> destroy ๊ฐ์ฒด ๋ฐ๋ฉ ( ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด ์ฝํ )
- ์ด๊ธฐํ ์ฒ๋ฆฌ ๋ฐ๋ฉ์ ์๋ธ๋ฆฟ ๋ผ์ดํ ์ฌ์ดํด์ด๋ผ๊ณ ๋ถ๋ฆ
- ์ด๊ธฐ ๋ฐฉ์์ผ๋ก๋ WebServlet ๋ฐฉ์์ด ์์
- ์ ๋ฆฌํ๋ฉด, Tomcat์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ก, ์๋ธ๋ฆฟ์ ๋ง๋ค์ด์ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ ์ญํ ์ ํจ.
WebServlet ๋ฐฉ์
- HttpServlet ์ถ์ํด๋์ค๋ฅผ ์์ ๋ฐ์ Servlet ํด๋์ค๋ฅผ ๊ตฌํํ ์ ์์.
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์.
- ์์์ ๋ฐ๊ฒ ๋๋ฉด HttpServlet์ ๊ธฐ๋ฅ์ ์ค๋ฒ๋ผ์ด๋ฉ ํด์ ์ด์ฉ์ด ๊ฐ๋ฅํจ.
- HttpServlet ์ถ์ํด๋์ค๋ฅผ ์์๋ฐ์, ๊ตฌํ์ ํ ์ ์์.
- Spring ์ Servlet ๋ฐฉ์์ผ๋ก, Servlet ๊ฐ์ฒด๊ฐ ๋์ด๋ ์ ์์ด ์ ์ง๋ณด์๊ฐ ๋ถํธํจ.
DispatcherServlet ๋ฐฉ์
- ์คํ๋ง์์ ๋ง๋ Servlet์ผ๋ก, ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ MVC ํจํด์ ์ด์ฉํด ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์๋ต ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ฒ ๋จ.
- ์ฝ๊ฒ๋งํด, ์๋ํฌ์ธํธ๋ Controller์ ๋งคํ์ด ๋๋ฉฐ ์ฒ๋ฆฌ๊ฐ ๋จ. Front Controller ํจํด์ ํ์ฉํ๋ค๋ ์๋ฏธ์.
- web.xml(ํ์ผ ์คํธ๋ฆผ) ๋๋ ์ ๋ํ ์ด์ (๋ฆฌํ๋ ์ )์ ํ์ฉํด ๊ฒฝ๋ก์ ํด๋นํ๋ ์ธ์คํด์ค๋ฅผ ์์ฑํจ.
- DispatcherServlet์ WebServlet ๋ฐฉ์๊ณผ ๋ค๋ฅด๊ฒ ํ๋์ ์ฑ๊ธํค ๊ฐ์ฒด๋ก ๋์์ ํจ.
- Tomcat์ ์์ฒญ๋ง๋ค ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์์ฑ์ด ๋๋๋ฐ, ์ค๋ ๋๋ ํ๋์ ์ฑ๊ธํค ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ก ์ด์ฉ์ ํ๊ฒ ๋จ.
HTTP ์์ฒญ ์ ์ก ๊ณผ์
- 1. ํด๋ผ์ด์ธํธ ์ปดํจํฐ์์ ํ ์คํธ ์์ฑ: URL ์ ๋ ฅ์, ํ ์คํธ ํ์์ ์์ฒญ์ด ๋ง๋ค์ด์ง.
- 2. ๋ฐ์ดํธ ๋ฐฐ์ด ๋ณํ: HTTP ์์ฒญ ํ์์ ๋ง๊ฒ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ๋ณํ, ์ด๋ ์์ฒญ์ ํค๋์ ๋ณธ๋ฌธ์ด ๋ฐ์ดํธ๋ก ์ธ์ฝ๋ฉ ๋จ.
- 3. ์ด์ง ๋ฐ์ดํฐ ๋ณํ: ๋ฐ์ดํธ ๋ฐฐ์ด์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๊ธฐ ์ํด ์ด์ง ๋ฐ์ดํฐ ํํ๋ก ๋ณํ๋จ.
- 4. ๋คํธ์ํฌ ์ ์ก: ์ด์ง ๋ฐ์ดํฐ๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ฒ๋ก ์ ๋ฌ์ด ๋จ. ์ด๋, ํจํท ๋จ์๋ก ๋ถํ ๋์ด ์ ์ก๋ ์ ์์.
- 5. ์๋ฒ ๋๋ฌ: ์์ฒญ์ด ์๋ฒ์ ๋๋ฌํ๋ฉด, ์๋ฒ๋ ๋ฐ์ ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ค์ ๋ฐ์ดํธ ๋ฐฐ์ด๋ก ํด์ํจ.
- 6. ์๋ฒ์์ ํ ์คํธ๋ก ๋ณํ: ์๋ฒ๋ ๋ฐ์ดํธ ๋ฐฐ์ด์ ํ ์คํธ๋ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ก ๋ณํํจ.
- 7. ์๋ฒ ์ฒ๋ฆฌ: ํ ์คํธ๋ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ์ฒ๋ฆฌ๋ฅผ ํ ๋ค ์ ์ ํ ์๋ต์ ๋ณด๋.
3 way handshake
- HTTP๋ TCP๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์, HTTP ์์ฒญ ์ TCP๊ฐ ๋จผ์ ๋์์ ํจ.
- ์ด์์ฒด์ ๊ฐ TCP 3 way handshake ๊ณผ์ ์ ๊ฑฐ์นจ. ์ฝ๊ฒ ๋งํด, ์ด์์ฒด์ ๋ผ๋ฆฌ ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์์ ๊ฒ์ฆ์ ํ๊ฒ ๋จ.
Tomcat HTTP ์์ฒญ์ ๋ฐ๋ ๊ณผ์
- 5HTTP ์์ฒญ ์ ์ก ๊ณผ์ ์์ 5๋ฒ ์๋ฒ ๋๋ฌ์์ ์ด์์ฒด์ ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ๋ฐฐ์ด ํํ๋ก ๋ฐ์์ Tomcat์ด ๋ฐ๊ฒ ๋จ.
- ์ดํ, Tomcat์ HTTP ์์ฒญ์ ํ์ฑํ๊ณ , ํด๋น ์์ฒญ์ ๋ง๋ ์ฒ๋ฆฌ๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค.
'๐ณSpring > ๐ฑSpring Framework' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Framework] @RestController & @Controller ์ฐจ์ด (0) | 2025.05.12 |
---|---|
[Spring Framework] IoC ์ปจํ ์ด๋ ๋์ ์๋ฆฌ (0) | 2024.11.14 |
[Spring Framework] IoC ์ปจํ ์ด๋ & Bean ๊ฐ๋ ์ดํด ํ๊ธฐ (1) | 2024.10.21 |
[Spring Framework] IoC & DI ๊ฐ๋ ์ดํด ํ๊ธฐ (0) | 2024.10.20 |
[Spring Framework] Spring & Spring Framework ์ฐจ์ด (0) | 2024.10.19 |