๐ซ
Yoongeon Dev
/
Category Posts (none)
/
Web
Search
Share
Web
[WEB] CORS๋? (+ Spring Security CORS์ค์ )
[WEB] CORS๋? (+ Spring Security CORS์ค์ )
[WEB] HTTP ์ธ์ฆ (Basic, Bearer)
[WEB] HTTP ์ธ์ฆ (Basic, Bearer)
[WEB] Session - JWT ์ ๋ฆฌ
[WEB] Session - JWT ์ ๋ฆฌ
๊ฐ์ธ ํ๋ก์ ํธ๋ก JWT๋ก๊ทธ์ธ์ ๊ตฌํํ๋ ๋์ค, ์๋ฒ์์ JWT ํ ํฐ์ ๋ฐ๊ธํ๊ณ ํค๋์ ๋ด์์ ํ๋ก ํธ๋ก ์ ๋ฌํ ๋ค response์์ ํ์ธ์ด ๋์ง ์๋ ์ด์๊ฐ ์์ด์ ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด์ ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
CORS๋?
SOP
์ผ๋จ CORS์ ๋ํด์ ์๊ธฐ ์ ์ SOP์ ๋ํด์ ์์์ผ ํ๋ค.
SOP(Same-Origin Policy)
๋
๋์ผ Origin์ ๋ํด์๋ง ์์๊ณต์ ๋ฅผ ํ์ฉ
ํ๋ค๋ ๋ธ๋ผ์ฐ์ ๋ณด์ ์ ์ฑ ์ด๋ค. URL์ ๊ตฌ์ฑํ๋ protocal๊ณผ host, port๋ฅผ ๋ชจ๋ ํฉํ ๊ฒ์ Origin ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฆฌ๊ณ Origin์ ๊ตฌ์ฑํ๋ ์์๋ค ์ค ํ๋๋ผ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ ๋ค๋ฅธ Origin์ผ๋ก ์ธ์๋๋ค.
ํ๊ฐ์ง ์ํฉ์ ๊ฐ์ ํด๋ณด์ ํ ๋์ ์๋ฒ์์ ๋ฆฌ์กํธ๋ฅผ ๊ธฐ๋ํ์ฌ ์น ์ ์ ํ ๋์ผ ์๋ฒ์์ ๊ธฐ๋์ค์ธ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ์ํฉ์ด๋ค. ๋น์ฐํ ํฌํธ๋ง ๋ณ๊ฒฝ๋์ด์ ์๋์ ๊ฐ์ด ํ๋ก์ธ์ค๊ฐ ๋์๊ฐ๊ณ ์์ ๊ฒ์ด๊ณ ์ด ๋๊ฐ์ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ Origin์ด๋ค. ๊ทธ๋ฌ๋ฉด SOP ์ ์ฑ ์ ์ํด์ ์ ์์ ์ผ๋ก ์์ฒญ์ด ๊ฐ์ง ์์ ๊ฒ์ด๋ค.
(์๋ฒ๋ผ๋ฆฌ ํต์ ์ ๊ฐ๋ฅํ์ง๋ง ์น ์ ์์ ํ ๋ค ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ์ด๋ค. SOP๋ ๋ธ๋ผ์ฐ์ ๋ณด์ ์ ์ฑ ์์ ์๊ฐํ์.)
์์ ๊ฐ์ ์๋ฌ๋ ๊ฐ๋ฐํ๋ ์ฌ๋์ด๋ผ๋ฉด ์ด์ฉ๋ค๊ฐ ํ๋ฒ์ฏค ๋ง์ฃผ์ณ๋ดค์ ์๋ฌ์ผ ๊ฒ์ด๋ค. ์ ๊ธฐ์ ์ค์ํ ์ ์
CORS error
๋ผ๊ณ ์ ํ์์ด์ cors ๋๋ฌธ์ ๋ญ๊ฐ ์๋ฌ๊ฐ ๋ฌ๋๋ณด๋ค~ ๋ผ๊ณ ์๊ฐํ ์ ์์ง๋ง ์ค์ ๋ก๋ SOP ์ ์ฑ ๋๋ฌธ์ ๋ฐ์๋ ์๋ฌ๊ณ ์ ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์๋ฒ์์ CORS๊ด๋ จํ ์ค์ ์ ํด์ฃผ์ด์ผ ํ๋ค.
CORS
[WEB] CORS๋? (+ Spring Security CORS์ค์ )
์น ๊ฐ๋ฐ์ ํ๋ฉด์ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ์์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ
session
์ ์ด์ฉํ ๋ฐฉ๋ฒ๊ณผ
jwt
๋ฅผ ์ด์ฉํ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. (์ฟ ํค๋..์ ์ธ..)
์ ํต์ ์ผ๋ก
session
์ ์ด์ฉํ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ์ง๋ง ๋ด๊ฐ ์ด์ํ๋ ์๋น์ค๋ ์๋ฒ ์ํ์ ๋ฐ๋ผ์ ์ฌ์ฉ์ ์ธ์ฆ์
session
์ ์ฌ์ฉํ ์ง
JWT
๋ฅผ ์ฌ์ฉํ ์ง๋ ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ด ํ์คํ ์กด์ฌํ๊ธฐ์ ์ ๊ณ ๋ฏผํด๋ด์ผ ํ๋ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค.
Session
์ด๋ฏธ์ง์์์ฒ๋ผ ์ธ์ ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ์์ ์ง์ ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ์๋ฒ์์ ์ง์ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ฑ์ ๋์ง๋ง ์ฌ์ฉ๋์ด ๋ง์์ง์๋ก ์๋ฒ์ ๋ถํ๊ฐ ๋ง์ด ๊ฐ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
๊ทธ๋ ์ง๋ง ๋น๊ต์ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์๊ณ , ๊ฐ์ ๋ก๊ทธ์์ ์ฒ๋ฆฌ๊ฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค.
๋ํ
Scale-out
์ผ๋ก ์๋ฒ ์ฌ๋ฌ ๋๊ฐ ์กด์ฌํ ์ ์ธ์ ์ ๊ณต์ ํด์ผ ํ๋ ์์ ์ด ์ถ๊ฐ๋๋ค. ์ด์ ๊ฒฝ์ฐ์๋ ์ธ์ ์ ์ฌ์ฉํ ์ธ์ฆ ๋ฐฉ์๋ณด๋ค๋
JWT
๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋ ํจ์จ์ ์ผ ๊ฒ์ด๋ค.
Scale-out ์ด๋? ํ ๋์ ์๋ฒ๋ก ์ด์๋๋ ์๋น์ค๊ฐ ์ ์ฐจ ํฌ๊ธฐ๊ฐ ํ์ฅ๋ผ์ ํ ๋์ ์๋ฒ๋ก ์ด์์ด ํ๋ค๋ค๊ณ ํ๋จ์ด ๋๋ฉด, ์ ์์ ์ธ ์ด์์ ์ํด ์๋ฒ์ ์ฌ์์ ๋์ด๋๊ฐ ์๋ฒ๋ฅผ ์ฆ์คํด์ ์ฌ๋ฌ ๋๋ฅผ ๋์ด์ผ ํ๋ค.
JWT (Json Web Token)
[WEB] Session - JWT ์ ๋ฆฌ
HTTP ํต์ ์์๋ ํน์ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ์ ์ ํํด์ผ ํ ๋๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด, ๋ด๊ฐ ์์ฑํ ๊ฒ์๊ธ์ ๋๋ง ์์ ํ ์ ์์ด์ผ ํ๋ฉฐ, ๋ค๋ฅธ ์ฌ์ฉ์๋ ์ ๊ทผํ ์ ์์ด์ผ ํ๋ค.
์ด๋ฅผ ์ํด ํด๋ผ์ด์ธํธ๋
์๋ฒ์ ์ธ์ฆ๋ ์ฌ์ฉ์์์ ์ฆ๋ช
ํด์ผ ํ๋ฉฐ,
์๋ฒ๋ ํด๋น ์ฌ์ฉ์๊ฐ ์์ฒญํ ๋ฆฌ์์ค์ ์ ๊ทผํ ๊ถํ์ด ์๋์ง ๊ฒ์ฆ
ํด์ผ ํ๋ค.
์ด๋ ์ฌ์ฉ๋๋ ๊ฒ์ด Authorization ํค๋์ด๋ฉฐ, ํ์์ ๋ค์๊ณผ ๊ฐ๋ค
์๋ฒ์์๋ ๋ค์ด๊ฐ ํค๋์ ๊ฐ์ ๋ฐ๋ผ ์๋ฒ๋ ์ ์ ํ ์๋ต ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
โข
์ ์ ํ ์ธ์ฆ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ์ ๊ฒฝ์ฐ:
201 OK
โข
์ธ์ฆ ํค๋๊ฐ ๋๋ฝ ๋์์ ๊ฒฝ์ฐ:
401 Unauthorized
โข
์ธ์ฆ ํค๋๋ ์์ง๋ง ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ผ๋ฉด:
403 Forbidden
Credential์ ๋ค์ด๊ฐ ์ธ์ฆ ์ ๋ณด๋ type์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง๋๋ฐ type์
basic
,
bearer
๋ ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
basic
[WEB] HTTP ์ธ์ฆ (Basic, Bearer)