written by sohyeon, hyemin ๐ก
HTTP ํ๋กํ ์ฝ์ ํน์ง์ด์ ์ฝ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
HTTP ํ๋กํ ์ฝ์ connectionless, statelessํ ํน์ฑ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ํ ํ ์๋ต์ ๋ฐ์ผ๋ฉด ๋งบ์๋ ์ฐ๊ฒฐ์ ๋๋ ํน์ฑ
์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ํต์ ์ด ๋๋๋ฉด ์ํ๋ฅผ ์ ์งํ์ง ์๋ ํน์ฑ
์ํ๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด,
- ์ผํ๋ชฐ์ ์ ์
- ๋ก๊ทธ์ธ
- ์ํ ํด๋ฆญ -> ์์ธํ๋ฉด์ผ๋ก ์ด๋
- ๋ก๊ทธ์ธ
- ์ฃผ๋ฌธ
- ๋ก๊ทธ์ธ
- ....
์ด๋ฐ์์ผ๋ก ๋งค๋ฒ ํด๋ผ์ด์ธํธ๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ธ์ฆ์ ๋ฐ๋ณตํด์ผํ๋ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค.
-> ์ด๋ฌํ HTTPํ๋กํ ์ฝ ํน์ฑ์ผ๋ก ์ธํด ์๊ธฐ๋ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ ํ์ฉํฉ๋๋ค.
-
์ฟ ํค๋ ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ๋๋ ํค์ ๊ฐ์ด ๋ค์ด์๋ ์์ ๋ฐ์ดํฐ ํ์ผ์ ๋๋ค.
-
์ฌ์ฉ์ ์ธ์ฆ์ด ์ ํจํ ์๊ฐ์ ๋ช ์ํ ์ ์์ผ๋ฉฐ, ์ ํจ ์๊ฐ์ด ์ ํด์ง๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋์ด๋ ์ธ์ฆ์ด ์ ์ง๋๋ค๋ ํน์ง์ด ์์ต๋๋ค.
-
์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๋ค๊ฐ ์ฐธ์กฐํฉ๋๋ค.
-
Response Header์ Set-Cookie ์์ฑ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์ ์ฟ ํค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
-
์ฟ ํค๋ ์ฌ์ฉ์๊ฐ ๋ฐ๋ก ์์ฒญํ์ง ์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ Request์์ Request Header๋ฅผ ๋ฃ์ด์ ์๋์ผ๋ก ์๋ฒ์ ์ ์กํฉ๋๋ค.
- ์ด๋ฆ : ๊ฐ๊ฐ์ ์ฟ ํค๋ฅผ ๊ตฌ๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ด๋ฆ
- ๊ฐ : ์ฟ ํค์ ์ด๋ฆ๊ณผ ๊ด๋ จ๋ ๊ฐ
- ์ ํจ์๊ฐ : ์ฟ ํค์ ์ ์ง์๊ฐ
- ๋๋ฉ์ธ : ์ฟ ํค๋ฅผ ์ ์กํ ๋๋ฉ์ธ
- ๊ฒฝ๋ก : ์ฟ ํค๋ฅผ ์ ์กํ ์์ฒญ ๊ฒฝ๋ก
-
์ธ์ ์ ์ฟ ํค๋ฅผ ๊ธฐ๋ฐํ๊ณ ์์ง๋ง, ์ฌ์ฉ์ ์ ๋ณด ํ์ผ์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํ๋ ์ฟ ํค์ ๋ฌ๋ฆฌ ์ธ์ ์ ์๋ฒ ์ธก์์ ๊ด๋ฆฌํฉ๋๋ค.
-
์๋ฒ์์๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ธ์ ID๋ฅผ ๋ถ์ฌํ๋ฉฐ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์ ์ํด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ธ์ฆ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
-
์ ์ ์๊ฐ์ ์ ํ์ ๋์ด ์ผ์ ์๊ฐ ์๋ต์ด ์๋ค๋ฉด ์ ๋ณด๊ฐ ์ ์ง๋์ง ์๊ฒ ์ค์ ์ด ๊ฐ๋ฅ ํฉ๋๋ค.
-
์ฌ์ฉ์์ ๋ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ณด๋ค ๋ณด์์ ์ข์ง๋ง, ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค.
(์ฆ, ๋์ ์ ์๊ฐ ๋ง์ ์น ์ฌ์ดํธ์ธ ๊ฒฝ์ฐ ์๋ฒ์ ๊ณผ๋ถํ๋ฅผ ์ฃผ๊ฒ ๋๋ฏ๋ก ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ฉ๋๋ค.) -
ํด๋ผ์ด์ธํธ๊ฐ Request๋ฅผ ๋ณด๋ด๋ฉด, ํด๋น ์๋ฒ์ ์์ง์ด ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ผํ ID๋ฅผ ๋ถ์ฌํ๋ ๋ฐ ์ด๊ฒ์ด ์ธ์ ID๋ค.
- ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๊ณ ์ ID๋ฅผ ๋ถ์ฌ
- ์ธ์ ID๋ก ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํด์ ํด๋ผ์ด์ธํธ์ ์๊ตฌ์ ๋ง๋ ์๋น์ค๋ฅผ ์ ๊ณต
- ๋ณด์ ๋ฉด์์ ์ฟ ํค๋ณด๋ค ์ฐ์
- ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐจ์งํ๊ฒ ๋จ
- ์ฟ ํค๋ ์๋ฒ์ ์์์ ์ ํ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ์ธ์ ์ ์๋ฒ์ ์์์ ์ฌ์ฉํฉ๋๋ค.
- ๋ณด์ ๋ฉด์์ ์ธ์
์ด ๋ ์ฐ์ํ๋ฉฐ, ์์ฒญ ์๋๋ ์ฟ ํค๊ฐ ์ธ์
๋ณด๋ค ๋ ๋น ๋ฆ
๋๋ค.
(์ธ์ ์ ์๋ฒ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ) - ์ฟ ํค๋ ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ณ์ง๋๊ฑฐ๋ request์์ ์ค๋ํ ๋นํ ์ฐ๋ ค๊ฐ ์์ด์ ๋ณด์์ ์ทจ์ฝํ์ง๋ง,
์ธ์ ์ ์ฟ ํค๋ฅผ ์ด์ฉํด์ sessionid ๋ง ์ ์ฅํ๊ณ ๊ทธ๊ฒ์ผ๋ก ๊ตฌ๋ถํด์ ์๋ฒ์์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋น๊ต์ ๋ณด์์ฑ์ด ์ข์ต๋๋ค. - ์ฟ ํค๋ ๋ง๋ฃ์๊ฐ์ด ์์ง๋ง ํ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข
๋ฃํด๋ ๊ณ์ํด์ ์ ๋ณด๊ฐ ๋จ์ ์์ ์ ์๋ค.
๋ํ ๋ง๋ฃ๊ธฐ๊ฐ์ ๋๋ํ๊ฒ ์ก์๋๋ฉด ์ฟ ํค์ญ์ ๋ฅผ ํ ๋ ๊น์ง ์ ์ง๋ ์๋ ์๋ค.
๋ฐ๋ฉด์ ์ธ์ ์ ๋ง๋ฃ์๊ฐ์ ์ ํ ์ ์์ง๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ง๋ฃ์๊ฐ์ ์๊ด์์ด ์ญ์ ๋๋ค. - ์ธ์ ์ ์ ๋ณด๊ฐ ์๋ฒ์ ์๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌ๊ฐ ์๊ตฌ๋์ด ๋น๊ต์ ๋๋ฆฐ ์๋๋ฅผ ๋ธ๋ค.
์ธ์ ์ ์๋ฒ์ ์์์ ์ฌ์ฉํ๊ธฐ๋๋ฌธ์ ๋ฌด๋ถ๋ณํ๊ฒ ๋ง๋ค๋ค๋ณด๋ฉด ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋นํ ์ ์์ด์ง ์๊ฐ ์๊ณ ์๋๊ฐ ๋๋ ค์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ํฉ์ ์ ํฉํ๊ฒ ์ธ์ ์ ์ฌ์ฉํด์ผ ํ๋ค.