DOing
[WEB] HTTP ์ธ์ฆ๋ฐฉ์1_์ธ์ /์ฟ ํค ๋ณธ๋ฌธ
๐ฑ ์ธ์ฆ?
์ธ์ฆ(Authentication)์ด๋, ์ฌ์ฉ์๊ฐ ์๊ธฐ์์ ์ ์ฆ๋ช ํ๋ ์ผ์ ๋๋ค.
์ฌ์ฉ์ A์ B๊ฐ ํ๋์ ์น์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ๋ค๋ผ๊ณ ๊ฐ์ ํด๋ด ์๋ค. ๋ ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ ํ์์ ๋ณด์ ์ปจํ ์ธ ๋ ๊ฐ๊ฐ ๋ค๋ฅผ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์๋ฒ์์๋ A, B๊ฐ ์์ฒญ์ ๋ณด๋์ ๋ ๋๊ตฌ์ ์์ฒญ์ธ์ง๋ฅผ ๊ตฌ๋ถํด๋ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด B์ ๋ฏผ๊ฐํ ๊ฐ์ธ์ ๋ณด๊ฐ A์๊ฒ ๋ณด์ฌ์ง๋ ์ผ์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ ๋ธ๋ผ์ฐ์ ์์๋ ์์ ์ด ๋๊ตฌ์ธ์ง๋ฅผ ์ฆ๋ช ํ ์ ์๋ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋ณด๋ด์ผํ๋ฉฐ, ์๋ฒ๋ ๊ทธ ๋จ์๋ฅผ ๋ฐํ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ฃผ์ด์ผ ํฉ๋๋ค.
๐ฑ HTTP์ ์ธ์ฆ
ํ์ฌ ์น์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํต์ ๋ฐฉ์์ HTTP ํต์ ์ ๋๋ค. HTTP ํต์ ์ ๊ฐ์ฅ ํฐ ํน์ง ์ค์๋ ๋น์ฐ๊ฒฐ์ฑ(connectionless)์ ๋ฌด์ํ(stateless)๊ฐ ์์ต๋๋ค. ๋น์ฐ๊ฒฐ์ฑ์ด๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํ๋ฒ ์ฐ๊ฒฐ์ ๋งบ์ ํ, ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํด ์๋ฒ๊ฐ ์๋ต์ ๋ง์น๋ฉด ๋งบ์๋ ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฌ๋ ์ฑ์ง์ ๋๋ค. ๋ง์ฝ ์๋ฒ์์ ๋ค์์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๊ณ์ ์ ์งํด์ผ ํ๋ค๋ฉด, ์ฐ๊ฒฐ์ ์ ์งํ๊ธฐ ์ํ ๋ง์ ์์๋ค์ด ๋ญ๋น๋ ์ ์๊ธฐ๋๋ฌธ์ ํ๋ฒ ๋งบ์ ์ฐ๊ฒฐ์ ๋์ด๋ฒ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
๋ฌด์ํ๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ์ ์ ์๋ค๋ ์ฑ์ง์ ๋๋ค. HTTP๋ ์ฐ๊ฒฐ์ด ์ ์ง๋์ง ์๊ณ ๋์ด์ง๋ ๋น์ฐ๊ฒฐ์ฑ์ด๋ผ๋ ํน์ง ๋๋ฌธ์ ๊ณผ๊ฑฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ํ์ฌ ์์ฒญ์ ๋ณด๋ธ ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ฆ์ ํ๋ ์ฌ์ฉ์์ธ์ง, ์๋์ง ๊ธฐ์ตํ ์ ์๊ธฐ๋๋ฌธ์ HTTP ์์ฒญ๋ง๋ค ์ธ์ฆ์ ๋ณด๋ฅผ ํจ๊ป ๋ณด๋ด์ผํฉ๋๋ค.
HTTP ์ธ์ฆ ๋ฐฉ์์๋ ๋ํ์ ์ผ๋ก ์ฟ ํค/์ธ์ ๋ฐฉ์๊ณผ ํ ํฐ ๋ฐฉ์์ด ์์ต๋๋ค. ๋ค์ ํ ํฐ์ ์ด์ฉํ๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ์๋ JWT์ OAuth๊ฐ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ์ฟ ํค/์ธ์ ์ ์ด์ฉํ ๋ฐฉ์์ ๋ํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
๐ฑ ์ฟ ํค VS ์ธ์
์ฟ ํค๋ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๊ณ ์ด์ฉํ ๋ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋ ๋ด์ฉ์ ๋๋ค. ํ์ง๋ง ์ฟ ํค๋ ํด๋ผ์ด์ธํธ๊ฐ ์กฐ์ํ ์ ์๊ณ , ์ฌ์ง์ด ๋จ์ด ํ์น๊ฑฐ๋ ๋๋์งํ๊ธฐ ์ฌ์ ๋ณด์์ ์ทจ์ฝํ๋ค๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ์ด์ ๋ฐ๋๋ก ์ธ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ์๋ฒ๋จ์์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ์ ๋๋ค. ์๋ฒ๊ฐ ์ง์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ณด๋ค ์์ ํ์ง๋ง, ์ธ์ ์ ๋จ๋ฐํ๊ฒ๋๋ฉด ์๋ฒ์ ๋ถํ๊ฐ ์ฌ ์ ์์ต๋๋ค. ๋๋ฌธ์ ์ฟ ํค๋ก ๋ ธ์ถํ๋ฉด ์๋๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ง ์ธ์ ์ ์ ์ฅํ๋ฉฐ, ์ฟ ํค์ ์ธ์ ์ ์ ์ ํ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๐ฑ ์ธ์ /์ฟ ํค ๋ฐฉ์
[ ํ๋ฆ ]
1. ์ฌ์ฉ์ ๋ก๊ทธ์ธ
2. ํ์์ด ๋ง๋์ง ํ์DB์์ ํ์ธ
3. ํ์์ด ๋ง๋ค๋ฉด, ์ฌ์ฉ์์ ๊ณ ์ ํ ID๊ฐ์ ๋ถ์ฌํ๊ณ ์ธ์ ID์ ๋งคํํ์ฌ ์ธ์ ์ ์ฅ์์ ์ ์ฅ
4. ์๋ฒ๋ ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ก๊ทธ์ธ ์์ฒญ์ ๋ํ ์๋ต๊ณผ ํจ๊ป ์ธ์ ID๋ฅผ ์ ์ก
5. ๋ธ๋ผ์ฐ์ ๋ ๋ฐ์ ์ธ์ ID๋ฅผ ์ฟ ํค์ ์ ์ฅ
6. ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์ดํฐ ์์ฒญ๊ณผ ํจ๊ป ์ฟ ํค(์ธ์ ID)๋ฅผ ์๋ฒ๋ก ์ ์ก
7. ์๋ฒ๋ ๋ฐ์ ์ฟ ํค(์ธ์ ID)๋ฅผ ๊ฒ์ฆ
8. ์๋ฒ๋ ์ธ์
ID์ ๋์๋๋ ์ ์ ์ ๋ณด(์ธ์
)๋ฅผ ํ๋
๐ฑ ์ธ์ /์ฟ ํค ๋ฐฉ์ ํน์ง๊ณผ ์ฅ๋จ์
[ ํน์ง ]
1. ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์ธ์ ์ ๋ณด๋ฅผ DB์ ์ ์ฅํ๊ณ ์์ต๋๋ค.(๋ณ๋์ ์ธ์ ์ ์ฅ์)
2. ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ์๋ฒ์์ ๊ณ์ ์ ์งํ๊ณ ์ด ์ ๋ณด๋ฅผ ์๋น์ค์ ์ด์ฉํ๋ Stateful ์๋ฒ์ ๋๋ค.
[ ์ฅ์ ]
1. ์๋ฒ์์ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ ์งํ๊ณ ์์ผ๋ฏ๋ก ์ฌ์ฉ์์ ์ํ๋ฅผ ์ง์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
(ex. ๊ฐ์ ๋ก๊ทธ์์, ์ฌ์ฉ์์ ๋ก์ธ ์ฌ๋ถ ํ์ธ)
2. ํด๋ผ์ด์ธํธ๊ฐ ์์๋ก ์ ๋ณด๋ฅผ ๋ณ๊ฒฝ์์ผ๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ด ์๋์ ์ผ๋ก ์์ ํฉ๋๋ค.
[ ๋จ์ ]
1. ์๋ฒ์์ ์ถ๊ฐ์ ์ธ ์ธ์ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ธฐ๋๋ฌธ์ DB์ ๋ถํ๊ฐ ์ฌํด์ง ์ ์์ต๋๋ค.
2. ์ธ์ ํ์ด์ ํน ๊ณต๊ฒฉ์ ์ทจ์ฝํฉ๋๋ค.
: ์ธ์ ํ์ด์ ํน์ด๋ ๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉ์A์ HTTP์์ฒญ์ ํ์ณ ์ฟ ํค(์ธ์ ID)๋ฅผ ์ป์ด๋ด๊ณ ๊ณต๊ฒฉ์๊ฐ ์ป์ด๋ธ ์ฟ ํค(์ธ์ ID)๋ก ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ์์๋ ์ฌ์ฉ์A๋ก ์ฐฉ๊ฐํ๊ฒ๋๋ ๊ฒ์ ์ด์ฉํ ๊ณต๊ฒฉ์ ๋๋ค.
3. ์๋ฒ์ ํ์ฅ์ฑ์ด ์ด๋ ค์์ง๋๋ค.
: ์๋ฒ์ ํ์ฅ์ด๋, ๋ ๋ง์ ํธ๋ํฝ์ ๊ฐ๋นํ๊ธฐ ์ํ์ฌ ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ฌ๋ฌ๋์ ์๋ฒ ์ปดํจํฐ๋ฅผ ์ถ๊ฐ ํ๋๊ฒ์ ์๋ฏธํฉ๋๋ค.
๐ฑ ์ธ์ /์ฟ ํค ๋ฐฉ์ ์ค์ ์์
์ค์ ์ ๊ฐ ์ธ์ /์ฟ ํค ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ์๋ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ๋ฅผ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค ]
๋ก๊ทธ์ธ์ ํ๊ฒ๋๋ฉด, ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ์ธ์ ID๊ฐ ์กด์ฌํฉ๋๋ค.
๋ง์ฝ ํด๋น ์ฟ ํค๋ฅผ ์ญ์ ํ๊ฒ๋๋ฉด ๋ก๊ทธ์์์ด ๋ฉ๋๋ค.
ํ์ง๋ง ์ฟ ํค๋ฅผ ์ญ์ ํ๋ค๊ณ ์ธ์ ์ ์ฅ์์ ๊ฐ์ด ์ฌ๋ผ์ง์ง๋ ์์ต๋๋ค.
[ ์๋ฒ์ ์ธ์ ์ ์ฅ์ ]
spring_session ํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ง์ฝ ์ธ์ ์ ์ฅ์์ ํด๋น ์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ฒ ๋๋ฉด ๊ฐ์ ๋ก๊ทธ์์์ด๋ฉ๋๋ค.
spring_session_attributesํ ์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ค์ ๊ตฌํํ ๋, ์ธ์ ์ ์ฅ์์ ๋ฐฉ์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋๋ฐ ๋ค์ ํฌ์คํ ์ ํ์ธํ๋ฉด ์ข์ ๊ฒ๊ฐ๋ค.
2021.04.11 - [spring] - [Spring Boot] ์ธ์ ์ ์ฅ์
์ถ์ฒ :
์ ํ๋ธ ์์ - ์ฟ ํค, ์ธ์ , ์บ์๊ฐ ๋ญ๊ฐ์?
์ ํ๋ธ ์์ -Session vs Token authentication in 100 seconds
๋ธ๋ก๊ทธ ํฌ์คํ - HTTP ํน์ฑ
๋ธ๋ก๊ทธ ํฌ์คํ - ์ธ์ /์ฟ ํค, ํ ํฐ๋ฐฉ์
๋ธ๋ก๊ทธ ํฌ์คํ - ์ฝ๊ฒ ์์๋ณด๋ ์๋ฒ ์ธ์ฆ 1ํธ ( ์ธ์ /์ฟ ํค, JWT )
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CI/CD๊ฐ ๋ญ๋ฐ? (0) | 2021.07.20 |
---|---|
[WEB] HTTP ์ธ์ฆ๋ฐฉ์2_ํ ํฐ๊ธฐ๋ฐ ์ธ์ฆ, JWT (1) | 2021.06.12 |
๋น๋ ๋๊ตฌ, Gradle vs Maven (0) | 2021.05.08 |
[WEB] JAR vs WAR ๊ทธ๋ฆฌ๊ณ ์คํ๋ง ๋ถํธ (0) | 2021.04.19 |
[WEB] Dyanmic IP์ DHCP (0) | 2021.04.14 |