๐Ÿ“Œ ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„ ๊ด€๋ จ_์›น ์„œ๋ฒ„

Q : HTTP ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

A : HTTP๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ/์‘๋‹ต ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

๐Ÿ“ ์š”์ฒญ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ

  1. Start Line
    • HTTP ๋ฉ”์„œ๋“œ (GET,POST๋“ฑ)
    • ์š”์ฒญ ๋Œ€์ƒ์˜ ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ
  2. Header Fields
    • ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ—ค๋” ํ•„๋“œ (ex. content-Type, User-agent)
    • ๊ฐ ํ—ค๋” ํ•„๋“œ๋Š” "ํ•„๋“œ ์ด๋ฆ„ : ๊ฐ’"์˜ ํ˜•์‹์„ ๊ฐ€์ง
  3. Empty Line : ํ—ค๋”์™€ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋นˆ ์ค„
  4. Message Body
    • ์š”์ฒญ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์Œ
    • POST ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ

๐Ÿ“ ์‘๋‹ต ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ

  1. Start Line
    • ํ”„๋กœํ† ์ฝœ ๋ฐ ๋ฒ„์ „ (ex.HTTP/1.1)
    • ์ƒํƒœ ์ฝ”๋“œ : ์‘๋‹ต ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ์ž๋ฆฌ ์ˆซ์ž ์ฝ”๋“œ (200,404,500)
    • ์ƒํƒœ ๋ฉ”์‹œ์ง€ : ์ƒํƒœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…
  2. Header Line : ์‘๋‹ต์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํ—ค๋” ํ•„๋“œ๋“ค
  3. Empty Line : ํ—ค๋”์™€ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋นˆ ์ค„
  4. Message Body : ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์ด๋ฉฐ ์ผ๋ถ€ ์‘๋‹ต์€ ๋ฐ”๋””๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ

Q : Same-Origin Policy์™€ CORS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”

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


Q : CORS ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

A : CORS ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ์š” ๋ฐฉ๋ฒ•์€ ์„œ๋ฒ„ ์ธก์—์„œ ์ ์ ˆํ•œ CORS ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์„œ๋ฒ„ ์‘๋‹ต์— CORS ๊ด€๋ จ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋„๋ฉ”์ธ์ด ์žˆ๋‹ค๋ฉด ๋„๋ฉ”์ธ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
Access-Control-Allow-Origin: *
  1. ๋ชจ๋“  HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
  1. ํ—ˆ์šฉ๋˜๋Š” HTTP ํ—ค๋”๋ฅผ ๋ช…์‹œํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
Access-Control-Allow-Headers: Content-Type, Authorization
  1. ์ธ์ฆ ์ •๋ณด(์ฟ ํ‚ค ๋ฐ HTTP ์ธ์ฆ)๋ฅผ ์š”์ฒญ์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
Access-Control-Allow-Credentials: true

0๊ฐœ์˜ ๋Œ“๊ธ€