*Servlet(์๋ธ๋ฆฟ)
- ์นํ๋ก๊ทธ๋๋ฐ์์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ Servlet ํด๋์ค์ ๊ตฌํ ๊ท์น์ ์งํจ ์๋ฐ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์
=> "ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ ์ ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ์กํด์ฃผ๋ ์ญํ ์ ํ๋ ์๋ฐ ํ๋ก๊ทธ๋จ"
- ์ฝ๊ฒ ๋งํ์๋ฉด, ์๋ฐ๋ฅผ ์ด์ฉํ์ฌ ์น์ ๋ง๋ค๊ธฐ ์ํด ํ์ํ ๊ธฐ์ ์ด๋ค.
- Servlet๋ Java๋ก ๊ตฌํ๋ CGI๋ผ๊ณ ํํํ๋ค.
* ํน์ง
1. ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํด ๋์ ์ผ๋ก ์๋ํ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ปดํฌ๋ํธ
2. HTML์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์๋ต
3. Java Thread๋ฅผ ์ด์ฉํ์ฌ ๋์
4. MVC ํจํด์์ Controller๋ก ์ด์ฉ
5. HTTP ํ๋กํ ์ฝ ์๋น์ค๋ฅผ ์ง์ํ๋ javax.servlet.http.HttpServlet ํด๋์ค๋ฅผ ์์๋ฐ์ (-> UDP๋ณด๋ค ๋๋ฆฌ๋ค.)
6. HTML ๋ณ๊ฒฝ์ Servlet ์ฌ์ปดํ์ผ
* ๋์ ๋ฐฉ์
1. ํด๋ผ์ด์ธํธ URL ํด๋ฆญ -> HTTP Request -> Servlet Container๋ก ์ ์ก
2. Http Request ๋ฐ์ Servlet Container -> HttpServletRequest, HttpServletResponse ๊ฐ์ฒด ์์ฑ
3. web.xml -> ์ฌ์ฉ์๊ฐ ์์ฒญํ URL ๋ถ์ -> ์ด๋ ์๋ธ๋ฆฟ์ ๋ํ ์์ฒญ์ธ์ง ํ์
4. ํด๋น ์๋ธ๋ฆฟ์์ service ๋ฉ์๋ ํธ์ถ ํ ํด๋ผ์ด์ธํธ์ POST, GET ์ฌ๋ถ์ ๋ฐ๋ผ doGet() ํน์ doPost() ํธ์ถ
5. doGet() ํน์ doPost() -> ๋์ ํ์ด์ง ์์ฑ -> HttpServletResponse ๊ฐ์ฒด ์๋ต ์ ์ก
6. ์๋ต ๋๋ ํ HttpServletRequest, HttpServletResponse ๊ฐ์ฒด ์๋ฉธ
*cf. doGet? doPost? => GET ๋ฐฉ์๊ณผ POST ๋ฐฉ์์ ์ฐจ์ด!
- GET ๋ฐฉ์์ ํน์ง
1. URL์ ๋ณ์(๋ฐ์ดํฐ) ํฌํจ์์ผ ์์ฒญ
2. ๋ฐ์ดํฐ๋ฅผ Header(ํค๋)์ ํฌํจํ์ฌ ์ ์ก
3. URL์ ๋ฐ์ดํฐ๊ฐ ๋ ธ์ถ๋์ด ๋ณด์์ ์ทจ์ฝ
4. ์ ์กํ๋ ๊ธธ์ด ์ ํ (๋ฐ์ดํฐ ๊ธธ์ด ์ด๊ณผํ ๊ฒฝ์ฐ ์ด๊ณผ ๋ฐ์ดํฐ๋ ์ ๋จ)
5. ์บ์ฑ ๊ฐ๋ฅ
*cf. Cashing(์บ์ฑ) : ํ๋ฒ ์ ๊ทผ ํ, ๋ ์์ฒญํ ์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ธฐ ์ํ์ฌ ๋ ์ง์คํฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ์์ผ ๋๋ ๊ฒ.
- POST ๋ฐฉ์์ ํน์ง
1. URL์ ๋ณ์(๋ฐ์ดํฐ) ๋ ธ์ถํ์ง ์๊ณ ์์ฒญ
2. ๋ฐ์ดํฐ๋ฅผ Body (๋ฐ๋)์ ํฌํจํ์ฌ ์ ์ก
3. URL์ ๋ฐ์ดํฐ๊ฐ ๋ ธ์ถ๋์ง ์์ ๋ณด์์ ์
4. ์ ์กํ๋ ๊ธธ์ด์ ์ ํ์ด ์์
5. ์บ์ฑ ๋ถ๊ฐ
*cf. HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ ์๋ฒ-ํด๋ผ์ด์ธํธ ํต์ ๊ณผ์ ?
1. ํด๋ผ์ด์ธํธ -> HTTP ์์ฒญ ๋ฉ์ธ์ง + ๋งค๊ฐ๋ณ์ -> ์๋ฒ์ ์ ์ก
2. ์๋ฒ ํด์
2-1. ์ ์ ์์์ ๋ํ ์์ฒญ -> ์์ ๋ฐํ
2-2. ์ ์ ์์์ ๋ํ ์์ฒญ X -> CGI ํ๋ก๊ทธ๋จ ์คํ -> ํด๋น ๊ฒฐ๊ณผ ๋ฆฌํด
(์๋ฒ -> ํด๋ผ์ด์ธํธ ์์ฒญ + ๋งค๊ฐ๋ณ์ ์ ๋ฌ -> CGI ํ๋ก๊ทธ๋จ - (ํ์ดํ๋ผ์ธ) - ์๋ฒ)
(CGI ํ๋ก๊ทธ๋จ -> ์ ๋ ฅ ์๋น์ค ์ํ -> MIME ํ์ ์ ์ปจํ ์ธ ๋ฐ์ดํฐ (๊ฒฐ๊ณผ ํ์ด์ง์ ํด๋นํ๋) -> (ํ์ดํ๋ผ์ธ) -> ์๋ฒ์ ์ ๋ฌ)
3. -> CGI ํ๋ก๊ทธ๋จ์์ ์ถ๋ ฅํ ๊ฒฐ๊ณผ ํ์ด์ง์ ๋ฐ์ดํฐ + HTTP ์๋ต ํค๋ -> ์๋ฒ ๋ฐ์ดํฐ ๋ฐํ
'๐ป Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Telegram Bot API (0) | 2019.10.01 |
---|---|
[JEUS] Session Timeout ์ค์ (0) | 2019.02.13 |
[ASP.NET][C#] All About Office Interop (Excel) (0) | 2018.05.10 |
[ASP.NET][C#] EXIF ํ๊ทธ ์ฝ๊ธฐ (1) | 2018.03.13 |
[๋๊ธฐ vs ๋น๋๊ธฐ] (0) | 2017.11.16 |