HTTP ์๋ฒฝ ๊ฐ์ด๋๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
HTTP๋ ์ํ๋ฅผ ์ ์ฅํ์ง ์๋ ํ๋กํ ์ฝ์ธ๋ฐ (๋งค ์์ฒญ์ด ์ผํ์ฑ์ด๊ณ ๋ ๋ฆฝ์ ์ด๋ค) ์ฌ์ฉ์๋ฅผ ์๋ณํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น?
์ฌ์ฉ์ ์๋ณ ๊ธฐ์
์ฌ์ฉ์ ์๋ณ์ ์ํด ์กด์ฌํ๋ HTTP ํค๋๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
ํค๋ ์ด๋ฆ | ํค๋ ํ์ | ์ค๋ช |
---|---|---|
From | ์์ฒญ | ์ฌ์ฉ์์ ์ด๋ฉ์ผ ์ฃผ์ |
User-Agent | ์์ฒญ | ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ |
*Referer | ์์ฒญ | ์ฌ์ฉ์๊ฐ ํ์ฌ ๋งํฌ๋ฅผ ํ๊ณ ์จ ์๋ ์ฃผ์ |
Authorization | ์์ฒญ | ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ |
Client-ip | ํ์ฅ(์์ฒญ) | ํด๋ผ์ด์ธํธ IP ์ฃผ์ |
X-Forwarded-For | ํ์ฅ(์์ฒญ) | ํด๋ผ์ด์ธํธ IP ์ฃผ์ |
Cookie | ํ์ฅ(์์ฒญ) | ์๋ฒ๊ฐ ์์ฑ |
*์๋ฌธ๋ฒ ์ Referrer์ด ๋ง์ง๋ง ์ฒ์ ์ด๋ฅผ ์ ์ํ RFC์์ referer๋ก ์คํ๋ฅผ ๋ด๋ฒ๋ ค์ ์ด ๋จ์ด๋ก ๊ตณ์ด์ก๋ค.
- ํ์ฌ From ํค๋๋ ์คํธ ๋งค์ผ ๋ฑ์ ์ด์๋ก ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํ๋ค - ๋ก๋ด์ด๋ ์คํ์ด๋๋ ์ ์ธ
- User-Agent๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ ์ฌ์ฉ์ ์นํ์ ์ธ ์ฝํ ์ธ ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํจ์ด๋ค.
ํด๋ผ์ด์ธํธ IP๋ฅผ ์ด๋ค๋ฉด?
ํค๋์๋ ์์ง๋ง, HTTP๋ TCP์ด๋ฏ๋ก ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ IP๋ฅผ ์ ์ ์๋ค.
ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ๋๋ฌธ์ ๋ณดํต ํด๋ผ์ด์ธํธ IP๋ก ์ฌ์ฉ์๋ฅผ ์๋ณํ์ง ์๋๋ค.
- IP โ ์ฌ์ฉ์์ด๋ฏ๋ก ์ฌ์ฉ์๋ฅผ ์๋ณํ ์ ์๋ค
- ๋๋ถ๋ถ์ ISP๋ ๋์ ์ผ๋ก IP์ฃผ์๋ฅผ ํ ๋นํ๋ค
- ์ฌ์ฉ์๊ฐ NAT ๋ค์ ์๋ค๋ฉด ๊ฐ๊ฐ์ธ์ ์๋ณํ ์ ์๋ค (ํ๋์ IP ์ฃผ์์ด๊ธฐ ๋๋ฌธ)
- ํ๋ฝ์๋ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์น์๋ฒ๊ฐ ์๋ IP๋ ์ค์ ํด๋ผ์ด์ธํธ์ IP๊ฐ ์๋๋ค.
HTTP ๊ธฐ๋ณธ ์ธ์ฆ
HTTP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๋ ์ธ์ฆ ๋ฐฉ๋ฒ์ด๋ค. ๋ธ๋ผ์ฐ์ ์์ ๋ก๊ทธ์ธ ์ฐฝ์ด ๋์์ง๊ณ ์๋ฒ๋ก ๋ณด๋ผ ์ ์๋ค. (์ด ๊ธฐ๋ณธ ์ธ์ฆ์ ํจํท ํค๋์ ์๋ฌด๋ฐ ๋ณด์ ์์ด ๋ ธ์ถ๋๊ธฐ ๋๋ฌธ์ ๋๊ตฌ๋ ์ ์ ์๋ ๋ฌธ์ ๊ฐ ์๋ค.)
-
WWW-Authenticate (์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ๋ ์ฐ๋ ํค๋)
- ๋ธ๋ผ์ฐ์ ์์๋ ํด๋น ํค๋์ 401(Unauthorized)๋ฅผ ๋ฐ์ผ๋ฉด ์์์ ๋ก๊ทธ์ธ ์ฐฝ์ ๋์ฐ๊ฒ ๋์ด ์๋ค.
-
Authorization (ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ณด๋ผ ๋ ์ฐ๋ ํค๋)
- ๋ธ๋ผ์ฐ์ ์์ ์ ๋ ฅํ ๊ฐ์ ๊ณ ์ ๋ ๊ธธ์ด์ ๊ฐ์ผ๋ก ๋ณํ๋์ด ์์ฒญ์ Authorization ํค๋์ ๋ถ์ด ๊ฐ๋ค.
๋ฑ๋ฑํ URL
- ์ฌ์ฉ์ ์๋ณ ๋ฒํธ๋ฅผ URL ๋ค์ ๋ถ์ฌ์ ์ถ์ ํ๋ค.
- ์ฌ์ฉ์์ ์ํ๋ฅผ URL๋ก ๊ด๋ฆฌํ๋ ๊ฒ
๋จ์
- URL์ ์ฌ๋ฌ๊ฐ์ง ์ ๋ณด๊ฐ ๋ถ์ฌ์ง๊ธฐ ๋๋ฌธ์ URL์ด ํผ๋์ค๋ฝ๋ค
- URL์ ๊ฐ์ธ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ผ๋ฏ๋ก URL ๊ณต์ ์ ๊ฐ์ธ ์ ๋ณด๋ ๋ ธ์ถ๋๋ค.
- URL์ด ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์บ์๋์ง ์๋๋ค.
- ๋ฑ๋ฑํ URL์ด ์๋ URL๋ก ์ ์ํ๋ฉด ๋ชจ๋ ์ ๋ณด๋ฅผ ์์ด๋ฒ๋ฆฐ๋ค. (์ง์์ ์ด์ง ์์)
์ฟ ํค ๐ชย
์ฌ์ฉ์๋ฅผ ์๋ณํ๊ณ ์ธ์ ์ ์ ์งํ๋ ๋ฐฉ์ ์ค์์ ํ์ฌ๊น์ง ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. (๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ๋ค)
์ฟ ํค์ ํ์
์ฟ ํค์ ํ๊ธฐ ์์ ์ ๋ฐ๋ผ ๋ ์ข ๋ฅ๋ก ๊ตฌ๋ถ๋๋ค.
- Session Cookie (์ธ์
์ฟ ํค)
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ์ญ์ ๋๋ค.
- ์ฟ ํค ํ๋ผ๋ฏธํฐ์
Discard
๋ ํ๊ธฐ๊น์ง ๋จ์ ์์ ์ ๊ฐ๋ฆฌํค๋Expires
ํน์Max-Age
ํ๋ผ๋ฏธํฐ๊ฐ ์์ผ๋ฉด ์ธ์ ์ฟ ํค์ด๋ค.
- Persistent Cookie (์ง์ ์ฟ ํค)
- ๋์คํฌ์ ์ ์ฅ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐฉ๋ฌธํ๋ ์ฌ์ดํธ์ ๋ํ ์ค์ ์ ๋ณด๋ ๋ก๊ทธ์ธ ์ด๋ฆ์ ์ ์งํ๋ ค๊ณ ์ฌ์ฉํ๋ค.
์ฟ ํค๋ ์ด๋ป๊ฒ ๋์ํ ๊น?
-
์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ๋ฉด ์น ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ Set-Cookie ์๋ต ํค๋๋ก ์ฌ์ฉ์์๊ฒ ์ฟ ํค๋ฅผ ์ ๋ฌํ๋ค(์ฟ ํค๋ key=value ํํ์ ๋ฆฌ์คํธ์ด๋ค).
-
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ ์จ Set-Cookie ํค๋์ ์๋ ์ฟ ํค ์ฝํ ์ธ ๋ฅผ ๋ธ๋ผ์ฐ์ ์ฟ ํค DB์ ์ ์ฅํ๋ค.
-
์ฌ์ฉ์๊ฐ ๋ฏธ๋์ ๊ฐ์ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ์ด์ ์ ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ ์ฟ ํค๋ฅผ Cookie ์์ฒญ ํค๋์ ์ ์ด์ ๋ณด๋ธ๋ค.
- ๊ตฌ๊ธ ํฌ๋กฌ์์ ์ ์ฅํ ์ฟ ํค๋
๊ฐ๋ฐ์ ๋๊ตฌ > ์ ํ๋ฆฌ์ผ์ด์ > ์ฟ ํค
์์ ๋ณผ ์ ์๋ค
- ๊ตฌ๊ธ ํฌ๋กฌ์์ ์ ์ฅํ ์ฟ ํค๋
์ฟ ํค์ ์บ์
์ฟ ํค ํค๋๋ฅผ ํฌํจํ ์์ฒญ์ ๋ํ ์๋ต์, ๊ฐ์ธ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ ๊ฒ์ด๋ฏ๋ก ์บ์๋๋ฉด ์๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ ํด๋น ๋ฌธ์์ Cache๊ด๋ จ ํค๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ํ๊ธฐ ์๊ฐ์ด 0์ธ ์ฟ ํค ํค๋๋ฅผ ์ค์ ํด์ ๋งค๋ฒ ์ฌ๊ฒ์ฌํ๊ฒ ํด์ผ ํ๋ค.