ํด๋ผ์ด์ธํธ์ ์๋ฒ์ฌ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ์ํด์ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค.
๋น์ฐ๊ฒฐ์งํฅํ์ด๋ผ๋ ์ ์์ ๋ฆฌ์์ค ๋ญ๋น๋ ์ค์ด๋ค์ง๋ง ๋งค๋ฒ ๊ฐ์ ์ฐ๊ฒฐ ์ ์ฐจ๋ฅผ ์ํํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์,
์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ๋ค.
# HTTP protocol
- ๋น์ฐ๊ฒฐ์งํฅํํ๋กํ ์ฝ : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํด ์๋ฒ ์๋ต์ด ์๋ฃ๋๋ฉด ์ฐ๊ฒฐ์ ๋๋ ํน์ฑ
- ์ปค๋ฅ์ ์ ๋๋ ์๊ฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ํต์ ์ด ๋๋๋ฉฐ ์ด์ ๋ํ ์ํ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์๋ ํน์ฑ
1. ์ฟ ํค(Cookie)
: ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ ํ์ผ(ํค์ ๊ฐ) โก๏ธ ํด๋ผ์ด์ธํธ์ธก์ ์ ์ฅ๋์๋ค ์์ฒญ์ ์ฐธ์กฐ๋จ
: ์ฟ ํค๋ ์๋ฒ์์ HTTP Response Header์ Set-Cookie์์ฑ์ ์ด์ฉํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ฟ ํค๋ฅผ ์ ๊ณต
: ์ฟ ํค๋ ์ด๋ฆ, ๊ฐ, ๋ง๋ฃ์ผ์(์ ์ฅ๊ธฐ๊ฐ), ๊ฒฝ๋ก, ์ ๋ณด ๋ฑ์ ํฌํจ
: ๋ง๋ฃ์ผ์๊ฐ ์ ์ฅ๋๋ ๊ฒฝ์ฐ ์ธ์ ์ฟ ํค๋ก, ๋ง๋ฃ์ผ์๊ฐ ์๋ ๊ฒฝ์ฐ ํญ์ ์ ์งํ๋ ์ง์์ฟ ํค์ ์ ์ฅ
: ์ฟ ํค๋ ์ฌ์ฉ์์ ๋ณ๋ ์์ฒญ ์์ด๋ ๋ธ๋ผ์ฐ์ ์์ ์๋์ผ๋ก Request ํค๋์ ๋ด์ ์์ฒญํ๋ค
# ์ฟ ํค ํ๋ก์ธ์ค
โ ๋ธ๋ผ์ฐ์ ์นํ์ด์ง ์ ์
โก ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ ์๋ต์ HTTPํค๋์ ์๋ฒ๊ฐ ์ ๊ณตํ๋ ์ฟ ํค๊ฐ์ ๊ฐ์ด ์ค โก๏ธ ์ด๋, ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ํค๋ฅผ ๋ฐ์ ์ ์ฅ
โข ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์์ฒญ์ ์ ์ฅํ ์ฟ ํค ์ ๋ณด๋ ๊ฐ์ด HTTPํค๋์ ๋ด์์ ์์ฒญ
โฃ ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์์ ์ฟ ํค๊ฐ์ ์ฐธ๊ณ ํ์ฌ ๋น์ง๋์ค ๋ก์ง์ ์ํ (e.g. ๋ก๊ทธ์ธ์ํ์ ์ง..)
1) ์ธ์ ์ฟ ํค(Session Cookie)
: ๋ง๋ฃ์ผ์๊ฐ ์ ํด์ง ์ฟ ํค
: ๋ธ๋ผ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ฏ๋ก, ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์ ์ฟ ํค๋ ์๋์๋ฉธ โจ ๋ณด์์ ์ง์์ฟ ํค๋ณด๋ค ์์
2) ์ง์์ฟ ํค(Persistent Cookie)
: ๋ง๋ฃ์ผ์๊ฐ ์์ด ํญ์ ์ ์งํ๋ ๊ฒ์ผ๋ก ํ๋จ๋ ์ฟ ํค
: ํ์ผ๋ก ์ ์ฅ๋์ด, ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์์๋ ์ฟ ํค ์ ์ง
2. ์ธ์ (Session)
: ์น์๋ฒ์ ํด๋ผ์ด์ธํธ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅ โก๏ธ ํด๋ผ์ด์ธํธ์๊ฒ๋ ํด๋ผ์ด์ธํธ ๊ตฌ๋ถํ ์ ์๋ ๊ณ ์ ๊ฐ์ธ SessionID ๋ถ์ฌ
: ์ฆ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ ์๋ฒ์ ๋๊ณ SessionID๋ฅผ ์ด์ฉํด ์ธ์ฆํ์ฌ ์ ๋ณด๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์
# ์ธ์ ํ๋ก์ธ์ค
โ ํด๋ผ์ด์ธํธ ์์ฒญ์, ํ์์ ๋ฐ๋ผ ์ธ์ ์ ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ํ SessionID๋ฅผ ๋ฐ๊ธ
โก ํด๋ผ์ด์ธํธ๋ ๋ฐ๊ธ๋ฐ๋ SessionID๋ฅผ ์ฟ ํค๋ก ์ ์ฅ (e.g. JSESSIONID)
โข ํด๋ผ์ด์ธํธ ์ฌ์์ฒญ์ ์ธ์ ID๋ฅผ ์๋ฒ์ ์ ๋ฌํ์ฌ ์ํ์ ๋ณด๋ฅผ ์๋ฒ๊ฐ ํ์ฉํ๊ฒ ํจ
3. ์ฟ ํค๊ณผ ์ธ์ ์ ์ฐจ์ด
4. ์ธ์ ์ ์ฌ์ฉํ์ง์๊ณ , ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
์ธ์ ์ด ๋ณด์์ธก๋ฉด์์ ์ฐ์ํ์ง๋ง,
์ธ์ ์ ์๋ฒ์ ์์์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์์์ ํ๊ณ๊ฐ ๋ฐ์ํ ์ ์๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ถํ๋ก ์๋์ ํ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๋ค.
5. ์บ์๋?
์์(์ด๋ฏธ์ง, cssํ์ผ, jsํ์ผ ๋ฑ)์ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ ํ ํด๋น ์์ ๋ก๋์ ์บ์๋์ด์๋ ์์์ ์ฌ์ฌ์ฉํ๋๊ฒ
โก๏ธ ํด๋ผ์ด์ธํธ์ ์์์ ์๋ ์ ์์ง๋ง, ์บ์๋ ์์์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์๋ ๋ณ๊ฒฝ ์์์ ์ฌ์ฉํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ ํ ์ ์๋ค.
โก๏ธ ์ด์ ์ฌ์ฉ์๋ ๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ์ง์ฐ๊ฑฐ๋, ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์๋ต์ Header์ ์์ ์บ์ ๋ง๋ฃ์ผ์๋ฅผ ๋ช ์ํ๋ ๊ฒ์ ๊ถ์ฅ
'Note for moment' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋กํ ์ฝ, OSI(Open System Interconnection) 7๊ณ์ธต, TCP/IP (0) | 2020.09.09 |
---|---|
์นํ์ค๊ณผ ์น ์ ๊ทผ์ฑ, ํ์ง์๊ตฌ์ฌํญ (0) | 2020.09.09 |
SQL(DML,DDL,DCL,TCL) (0) | 2020.09.07 |
์ ๋ค๋ฆญ(Generic) - ํ์ฉ์ ์ : ์๋ฃ๊ตฌ์กฐ (0) | 2020.09.05 |
[thread] main์ค๋ ๋, ๋ค์ค์ค๋ ๋, ์ค๋ ๋๋๊ธฐํ (0) | 2020.09.05 |
๋๊ธ