waffle
์™€ํ”Œ๊ณต์žฅ
waffle
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (72)
    • ๐Ÿ“’ Daily Log (2)
    • ๐Ÿ”จ Dev_BE (5)
      • ๊ฐœ๋…์ •๋ฆฌ (4)
      • ๊ธฐ๋ก (1)
    • ๐Ÿ”จ Dev_FE (4)
    • ๐Ÿ”จ Dev_DB (1)
    • โš™ Dev_Ops (0)
    • ๐Ÿ”ก Lang (2)
      • Python (2)
    • ๐Ÿ’ก ํ”„๋กœ์ ํŠธ (9)
      • Base (1)
      • ์•„๋Œ€๋ฐ€๋งต (8)
    • ๐Ÿƒ๐Ÿป ์™ธ๋ถ€ํ™œ๋™ (2)
      • [ํ”„๋ฆฌ์ฝ”์Šค] ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 7๊ธฐ - BE (2)
    • ๐Ÿ“• [STUDY] ๊ฐœ๋ฐœ (13)
      • [STUDY] ์•Œ๊ณ ๋ฆฌ์ฆ˜ (9)
      • ๋™๊ณ„ ์Šคํ„ฐ๋”” [Do-iT: ์›นํŒฉ] (2021) (4)
    • ๐Ÿ“™ [STUDY] AI (2)
      • Tensorflow (2)
    • ๐Ÿ” ๋ณด์•ˆ,์ •๋ณด๋ณดํ˜ธ (32)
      • CTF (2)
      • ๐Ÿ“˜ [STUDY] ํฌ๋ Œ์‹ (15)
      • ๐Ÿ“˜ [STUDY] ์ทจ์•ฝ์  (4)
      • ๐Ÿ“˜ [STYDY] ๋ฆฌ๋ฒ„์‹ฑ (11)
    • ๐Ÿ“” IT ๋ฒ•๋ฅ  (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์•„์ฃผ๋Œ€_์•Œ๊ณ ๋ฆฌ์ฆ˜_๊ต์œก
  • Weekly
  • ํ”„๋ฆฌ์ฝ”์Šค
  • reversing
  • ์ž๋ฃŒ๊ตฌ์กฐ
  • js
  • ์šฐํ…Œ์ฝ”
  • ๊ฐœ๋ฐœ
  • write-up
  • ๋ฐฑ์ค€
  • til
  • JAVA_API
  • ๊ฐœ๋ฐœ๋ฐฑ์„œ
  • sql
  • ์—ฐ์Šต_์ž๋ฃŒ๊ตฌ์กฐ
  • ๋ฌธ์ž์—ด
  • ์ˆ˜ํ•™_1(์—ฐ์Šต)
  • ์šฐํ…Œ์ฝ”_7๊ธฐ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • scrum
  • ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค
  • ๋ฐ์ผ๋ฆฌ์•Œ๊ณ 
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • javascript
  • ์ˆ˜ํ•™_1
  • gdb
  • dopwn
  • Java
  • API
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ_๊ณ ๋“์ 

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
waffle

์™€ํ”Œ๊ณต์žฅ

๐Ÿ”จ Dev_BE/๊ฐœ๋…์ •๋ฆฌ

[ Server ] CORS

2021. 9. 20. 19:11
728x90

๋ฐฐ๊ฒฝ์ง€์‹

 

* HTTP: HyperText Transfer Protocol์˜ ์•ฝ์ž๋กœ, ์ธํ„ฐ๋„ท์—์„œ ์ •๋ณด๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ (๊ทœ์•ฝ)์ž…๋‹ˆ๋‹ค. HTML๋ฌธ์„œ ์†ก์ˆ˜์‹ ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

* REST API: Repersentational State Trasfer API์˜ ์•ฝ์ž๋กœ, REST๋ผ๋Š” ๊ทœ์น™์— ๋งž์ถฐ ๊ฐœ๋ฐœ ๋ฐ ์ œ๊ณต๋˜๋Š” API๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

* API: Application Programming Interface์˜ ์•ฝ์ž๋กœ, ํŠน์ • ์„œ๋น„์Šค๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž์‹ ๋“ค์˜ ์„œ๋น„์Šค ๋‚ด๋ถ€์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด๋†“์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 


 

๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ  (Cross Origin Resource Sharing)

 

ํ•œ๋งˆ๋””๋กœ "๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๋ถ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ •์ฑ…"์ž…๋‹ˆ๋‹ค.

์›น์ƒ์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ถœ์ฒ˜๋ฅผ ๋ณด์žฅํ•˜๊ณ , ๊ทธ ์ถœ์ฒ˜์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๋‹จ ๋„์šฉ์„ ๋ฐฉ์ง€ํ•จ์œผ๋กœ์„œ ๋ถˆ๋Ÿฌ์˜จ ๋ฌธ์„œ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค๋ฅธ ์ถœ์ฒ˜์—์„œ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜๋Š” ์ค‘์š”ํ•œ ๋ณด์•ˆ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด ์ •์ฑ…์„ ํ†ตํ•ด ์›น์ƒ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ์  ์•…์„ฑ ๋ฌธ์„œ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ , ๊ถ๊ทน์ ์œผ๋กœ ๊ณต๊ฒฉ์ž์˜ ๊ณต๊ฒฉ๊ฒฝ๋กœ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ  (์ดํ•˜ CORS ์ •์ฑ…)์€ 2๊ฐ€์ง€ ๊ฒฝ์šฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค

 

1) ์š”์ฒญ์ง€์™€ ์‘๋‹ต์ง€์˜ "๋„๋ฉ”์ธ"์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ

2) ์š”์ฒญ์ง€์™€ ์‘๋‹ต์ง€์˜ "ํฌํŠธ"๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ

 

์ ์šฉ์ฃผ์ฒด

CORS ์ •์ฑ…์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋งŒ์•ฝ CORS ์ •์ฑ…์„ ์œ„๋ฐ˜ํ•˜๋Š” ์–ด๋–ค ์š”์ฒญ์ด ์Šคํฌ๋ฆฝํŠธ๋‚˜ HTML ๋ฌธ์„œ์— ์˜ํ•ด ์š”์ฒญ๋œ๋‹ค๋ฉด, ์š”์ฒญ์€ ์ •์ƒ์ ์œผ๋กœ ๊ฐ€์ง€๋งŒ, ์‘๋‹ต์ด ๋Œ์•„์˜จ ํ›„ ์ ‘์†์ž์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘๊ทผ์ด ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด ์ •์ฑ…์œผ๋กœ ์ธํ•ด ์ œํ•œ๋˜๋Š” ๋ชจ๋“  ์‘๋‹ต์€ ๋ฒ„๋ ค์ง‘๋‹ˆ๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

1) ์ ‘์†ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„ค์ • ํ•ด์ œ (๊ถŒ์žฅ๋˜์ง€ ์•Š์Œ)

์•ž์„œ ๋งํ•œ๋ฐ”์™€ ๊ฐ™์ด, CORS ์ •์ฑ…์˜ ์ œํ•œ์ฃผ์ฒด๋Š” ์ ‘์†ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•ด๋‹น ์„ค์ •์„ ํ•ด์ œํ•˜๋ฉด CORS ์ •์ฑ…๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์€ ๋ณด์•ˆ์„ฑ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ณ , ๋˜ํ•œ ํ˜„์‹ค์ ์œผ๋กœ ์ ‘์†ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์˜ ์„ค์ •์„ ํ•ด์ œํ•˜๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ๋„ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

 

2) ์„œ๋ฒ„์˜ ์‘๋‹ต์— ํ—ค๋” ์ถ”๊ฐ€

๊ทธ๋ ‡๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•ด๋‹น ์š”์ฒญ์„ "์‚ฌ์ „์— ํ—ˆ๊ฐ€๋ฐ›์€ ์š”์ฒญ"์œผ๋กœ ์ธ์‹ํ•˜๋„๋ก ํ•œ๋‹ค๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ์œ„ํ•ด ์„œ๋ฒ„์˜ ์‘๋‹ต์— "Access-Control-Allow-Origin"์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋„๋ก ์š”์ฒญํ•˜์„ธ์š”.

 

Access-Control-Allow-Origin์ด๋ž€ Cross-Origin ์š”์ฒญ, ์ฆ‰ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜ค๋Š” ์ •๋ณด๋“ค์ด ํ˜„์žฌ ๋„์ฐฉ์ง€์—๋Š” ํ—ˆ๊ฐ€๋˜์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๋Š” ํ—ค๋”์ž…๋‹ˆ๋‹ค. ์‘๋‹ตํ—ค๋”์— ํ•ด๋‹น๊ฐ’์ด ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์„œ๋ฒ„๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค„ ๊ฒƒ์„ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ”จ Dev_BE > ๊ฐœ๋…์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ Server ] CSP  (0) 2021.09.20
[ Server ] Cookie vs Session (+JWT)  (0) 2021.09.11
[ REST API ] HTTP Methods  (0) 2021.09.11
    '๐Ÿ”จ Dev_BE/๊ฐœ๋…์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ Server ] CSP
    • [ Server ] Cookie vs Session (+JWT)
    • [ REST API ] HTTP Methods
    waffle
    waffle
    ๊ฐœ๋ฐœ๊ธฐ์ˆ  ๊ด€๋ จ ๊ธ€๋“ค์€ velog์— ์žˆ์Šต๋‹ˆ๋‹ค :) (https://velog.io/@cm_waffle) Developer waffle = new Waffle();

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”