๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“จ Web/- HTTP10

[HTTP] OPTIONS ํ—ค๋”์™€ Preflight ๊ทธ๋ฆฌ๊ณ  CORS OPTIONS ๋Š” RFC 7231 ์— ๋ช…์‹œ๋œ HTTP์˜ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. OPTIONS ๋Š” ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ง์ ‘ ์‚ฌ์šฉํ•  ์ผ์€ ๋“œ๋ฌผ์ง€๋งŒ ํ˜„๋Œ€์˜ Front Back ์„ ๋‚˜๋ˆ„๋Š” ๊ฐœ๋ฐœ ํ๋ฆ„์—์„œ๋Š” ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ฐœ๋…์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด Options ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. HTTP์˜ OPTIONS Mthod Http OPTIONS ๋ฉ”์„œ๋“œ๋Š” target ๋ฆฌ์†Œ์Šค์™€ ํ˜น์€ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ์˜ต์…˜์„ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ํ•ด๋‹น ํƒ€๊ฒŸ ์„œ๋ฒ„๋‚˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ์–ด๋–ค method, header, content type ๋ฅผ ์ง€์›ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ Browser ์˜ Js ๊ฐ€ ๋ณด๋‚ด๋Š” Fetch, Axios ์š”์ฒญ์˜ Preflight ์—์„œ ์‚ฌ์šฉ๋˜๊ณค ํ•œ๋‹ค. ๊ทธ๋Ÿผ ์™œ OPTIONS ๋ฅผ.. 2021. 8. 14.
HATEOAS๋ฅผ ๋ชจ๋ฅด๋ฉด ๋‹น์‹ ์ด ์•Œ๊ณ  ์žˆ๋Š” REST API๋Š” REST API๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ์žฅ๋‹ดํ• ๊ฒŒ์š”. ์ด ๊ธ€์€ ๊ทธ๋Ÿฐ REST API ๋กœ ๊ดœ์ฐฎ์€๊ฐ€? ์˜ ์ด์‘์ค€ ๊ฐœ๋ฐœ์ž๋‹˜์˜ ๋ฐœํ‘œ ์ž๋ฃŒ์— ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ์ฐจ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. REST API๋ž€ ๋ฌด์—‡์ผ๊นŒ ๋‚œ ์ง€๊ธˆ๊นŒ์ง€ REST API์— ๋Œ€ํ•ด์„œ ์ƒ๋‹น ๋ถ€๋ถ„์„ ์˜คํ•ดํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. REST API๋ผ๊ณ  ํ•จ์€ GET, POST, PUT, PATCH, DELETE๋“ฑ๊ณผ ๊ฐ™์€ HTTP ๋ฉ”์„œ๋“œ๋ฅผ URI๋ฅผ ํ†ตํ•ด์„œ ์ž˜ ์ด์šฉํ•˜๋Š” ๊ฒƒ, ์ด๋ฅผํ…Œ๋ฉด ์ •๋ณด ์กฐํšŒ๋‚˜ ์ˆ˜์ •์€ /user ์ด๋ผ๋Š” ํ•˜๋‚˜์˜ URI์— ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉ, ์ด๋ผ๊ณ  ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑด REST API์˜ ์•„์ฃผ ์ž‘์€ ์ผ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜์˜€๋‹ค. ๋”์šฑ ์‹ ๊ธฐํ•œ๊ฑด ์‹ค๋ ฅ ์ข‹์€ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ฐธ์—ฌํ•œ ๊ธˆ์œต ๊ฒฐ์ œ์›์˜ ์˜คํ”ˆ ๋ฑ…ํ‚น API์—์„œ๋„ REST API๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค. ์‚ฌ์‹ค REST API๋ผ๊ณ  ํ•˜๋ฉด ์•ˆ๋˜์ง€๋งŒ REST API๋ผ๊ณ  ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜.. 2021. 3. 24.
[HTTP-Header] HTTP Response Header :: ์‘๋‹ต ํ—ค๋” HTTP ์‘๋‹ต ํ—ค๋”๋Š” ์š”์ฒญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋กœ์ง์ด ์ˆ˜ํ–‰๋˜๊ณ  ๊ฒฐ๊ณผ๋กœ ์‘๋‹ตํ•  HTTP ๋ฉ”์‹œ์ง€์˜ ํ—ค๋”๋ฅผ ๋ง ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”์œ ๋ช…ํ•œ ํ—ค๋”์— ๋Œ€ํ•ด์„œ๋งŒ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ํ—ค๋”๋Š” ํฌ๋กฌ์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ํ—ค๋”๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์š”์ฒญ ํ—ค๋” Request Header ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ์— ๋‹ค๋ค„๋ณผ ์‘๋‹ต ํ—ค๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Access-Control-Allow-Origin Allow Content-Disposition Location Content-Security-Policy Access-Control-Allow-Origin ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ฃผ์†Œ์™€ ์š”์ฒญ์„ ๋ฐ›๋Š” ๋ฐฑ์—”๋“œ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๋ฉด CORS ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ง€๋‚œ ์‹œ๊ฐ„ ์ด์•ผ๊ธฐ๋ฅผ ํ–ˆ์—ˆ๋‹ค. ์ด ๋•Œ Access-Control-Allow-Origi.. 2020. 10. 9.
[HTTP-Header] HTTP Request Header :: ์š”์ฒญ ํ—ค๋” HTTP ์š”์ฒญ ํ—ค๋”๋Š” ์„œ๋ฒ„๋กœ ์š”์ฒญํ•  ๋ฐ์ดํ„ฐ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ํ—ค๋”์ด๋‹ค. ๋ณดํ†ต Fetch๋  ๋ฆฌ์†Œ์Šค๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ž์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์œ ๋ช…ํ•œ ํ—ค๋”์— ๋Œ€ํ•ด์„œ๋งŒ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ํ—ค๋”๋Š” ํฌ๋กฌ์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ํ—ค๋”๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์š”์ฒญ ํ—ค๋” Request Header ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ์— ๋‹ค๋ค„๋ณผ ์š”์ฒญ ํ—ค๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Host User-Agent Accept Authorization Origin Referer Host ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ ์„œ๋ฒ„๊ฐ€ ํ˜„์žฌ Listening ์ค‘์ธ TCP ํฌํŠธ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋งŒ์•ฝ ํฌํŠธ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์š”์ฒญ๋œ ์„œ๋ฒ„์˜ ๊ธฐ๋ณธ ํฌํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. (HTTP URL์€ 80) Host ํ—ค๋”๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ํ•œ ๊ฐœ๊ฐ€ ์•„๋‹ˆ๋ผ .. 2020. 10. 9.