- http://localhost:8080/index.html ํ์ด์ง์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
- Http Method๊ฐ GET์ธ์ง ํ์ธํ๋ค.
- / ์ผ ๊ฒฝ์ฐ ์๋ ๋ฌธ์์ด์ ์๋ตํ๊ณ ๊ทธ ์ธ์๋ ํ์ผ์ ์ฝ์ด์จ๋ค.
- ์ ๊ทผํ ํ์ด์ง์ js, css ํ์ผ์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
- css: text/css
- js: application/javascript
- uri์ QueryString์ ํ์ฑํ๋ ๊ธฐ๋ฅ์ด ์๋ค.
- http://localhost:8080/login?account=gugu&password=password์ผ๋ก ์ ์ํ๋ฉด ๋ก๊ทธ์ธ ํ์ด์ง(login.html) ํ์ด์ง์ ๋ณด์ฌ์ค๋ค.
- Query String์ ํ์ฑํด์ ์์ด๋, ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ๋ฉด ํ์์ ์กฐํํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
- Query String ํ์์ ๋ํ ์์ธ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค.
- ๋ก๊ทธ์ธ์ ํ ์ ์๋ค.
- ์ํ ์๋ต ์ฝ๋๋ฅผ 302๋ก ๋ฐํํ๋ค.
- ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด /index.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
- ๋ก๊ทธ์ธ์ ์คํจํ๋ฉด 401.html๋ก ๋ฆฌ์๋๋ ํธํ๋ค.
- http://localhost:8080/register์ผ๋ก ์ ์ํ๋ฉด ํ์๊ฐ์ ํ์ด์ง(register.html)๋ฅผ ๋ณด์ฌ์ค๋ค.
- POST ๋ฐฉ์์ผ๋ก ํ์๊ฐ์
์ ํ ์ ์๋ค.
- request header๋ฅผ ์ฝ๋๋ค.
- request body๋ฅผ ์ฝ๋๋ค.
- request body๋ฅผ Content-Type์ ๋ง๊ฒ ํ์ฑํ๋ค.
- ํ์๊ฐ์ ์ ์๋ฃํ๋ฉด /index.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
- ํ์๊ฐ์ ์ ์คํจํ๋ ๊ฒฝ์ฐ /register.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค. (์ค๋ณต๋ ์์ด๋)
- ๋ก๊ทธ์ธ์ POST ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋ค.
- ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด HTTP Reponse์ ํค๋์ Set-Cookie๊ฐ ์กด์ฌํ๋ค.
- HTTP Request Header์ Cookie์ JSESSIONID๊ฐ ์๋ฏ๋ฉด HTTP Response Header์ Set-Cookie๋ฅผ ์ถ๊ฐํ๋ค.
- ์ด๋ฏธ ์์ผ๋ฉด ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ก ๊ฐ์ฃผํ๊ณ /index.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
- ์๋ฒ์ ์ธ์
์ ๊ด๋ฆฌํ๋ ํด๋์ค๊ฐ ์๊ณ , ์ฟ ํค๋ก๋ถํฐ ์ ๋ฌ ๋ฐ์ JSESSIONID ๊ฐ์ด ์ ์ฅ๋๋ค.
- ๋ก๊ทธ์ธ๋ ์ํ์์ /login ํ์ด์ง์ GET์ผ๋ก ์ ๊ทผํ๋ฉด ์ด๋ฏธ ๋ก๊ทธ์ธํ ์ํ์ด๊ธฐ ๋๋ฌธ์ /index.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
- HTTP Request, HTTP Response ํด๋์ค๋ก ๋๋ ์ ๊ตฌํํ๋ค.
- Controller ์ธํฐํ์ด์ค์ RequestMapping ํด๋์ค๋ฅผ ํ์ฉํ์ฌ if์ ์ ์ ๊ฑฐํ๋ค.
- ๊ธฐ์กด์ Controller ์ธํฐํ์ด์ค๋ฅผ ๋ณํํด request, response๋ฅผ ๋ฐ๋๋ก ๋ณ๊ฒฝํ๋ค.
- Controller ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ AbstractController๋ฅผ ๋ง๋ค๊ณ ์ฌ๊ธฐ์ ๋ฉ์๋์ ๋ฐ๋ฅธ ๋ถ๊ธฐ๋ฅผ ์งํํ๋ค.
- ๊ฐ Controller ๊ตฌํ์ฒด์๋ doGet(), doPost() ๋ง์ ๊ตฌํํ๋ค.
- ์ค๋ ๋ ํ์ ์ฌ์ฉํด ์ค๋ ๋๋ฅผ ์ฌ์ฌ์ฉํ๋๋ก ๊ตฌํํ๋ค.
- acceptCount(์ต์ 100), maxThreads(์ต์ 200)๋ฅผ ์ค์ ํ๋ค.
- SessionManager์์ session๋ฅผ ์ค๋ ๋ ์ธ์ดํํ๊ฒ ๊ตฌํํ๋ค.
- ๋์์ฑ ์ปฌ๋ ์ (Concurrent Collections)๋ฅผ ์ ์ฉํ๋ค.
- ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ธ๋ถํ ํ๋ค.
- ์ง์ํ์ง ์๋ HTTP Method์ธ ๊ฒฝ์ฐ 405 ์ฝ๋์ index.html์ ์๋ตํ๋ค.
- NOT FOUND๋ 404 ์ฝ๋์ 404.html์ ์๋ตํ๋ค.
- ๋ ๋ค์ํ Content Type์ ์ง์ํ๋ค.
- svg
- RFC2616์ ์ฐธ๊ณ ํด ์ด๋ฆ์ ๋ฆฌํฉํ ๋งํ๋ค.
- ๋น์ง๋์ค ๋ก์ง ์ ์ฒ๋ฆฌํ์ง ๋ชปํ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด 500.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
- ๋ฌดํ ๋ฆฌ๋ค์ด๋ ํธ ๋ฌธ์ ๊ฐ ๋ฐ์ํด 500 ์ฝ๋๋ฅผ ์๋ตํ๋๋ก ๋ณ๊ฒฝํ๋ค.
- DTO๋ฅผ ๋ง๋ค์ด ์์ฒญ ๋ฐ์ดํฐ์ ๋ํ ๊ฒ์ฆ์ ํ๋ค.
- BufferedReader์ ๊ฐ์ ์์์ ๋ช ์์ ์ผ๋ก ํ์ํ๋ค.
- Controller, Service๋ฅผ ์ฑ๊ธํค์ผ๋ก ๋ง๋ ๋ค.