๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Dev Blog

๋„คํŠธ์›Œํฌ6

[HTTP] - HTTP ํ—ค๋” ์ธํ”„๋Ÿฐ ๊ฐ•์˜ ์ค‘ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹์ด๋ผ๋Š” ๊ฐ•์˜์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. HTTP ํ—ค๋” 1 - ์ผ๋ฐ˜ ํ—ค๋” RFC 7230~7235์˜ HTTP ๋ฉ”์‹œ์ง€ ํ‘œํ˜„์ด๋ž€ ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์—์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋Š” ํŽ˜์ด๋กœ๋“œ, ์ฆ‰ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ(Body)์„ ํ†ตํ•ด ์ „๋‹ฌ๋œ๋‹ค. ์ด๋•Œ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๊ฐ๊ฐ์˜ ์ˆ˜์‹ ๋œ HTTP ๋ฉ”์‹œ์ง€์—์„œ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋“ค์„ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ •๋ณด๋“ค์€ ํ‘œํ˜„ ํ—ค๋”์—์„œ ์ œ๊ณตํ•œ๋‹ค. ๋‹ค์Œ์€ HTTP ๋ฉ”์‹œ์ง€์˜ ํ‘œํ˜„ ํ—ค๋”์˜ ์˜ˆ์‹œ๋“ค์ด๋‹ค. Content-Type ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ—ค๋”์ด๋‹ค. ๋‹ค์Œ์€ ์‚ฌ์šฉ ์˜ˆ์‹œ์ด๋‹ค. 1. Content-Type: text/html;charset=UTF-8 => ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์ด HTML ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ.. 2022. 8. 9.
[HTTP] - HTTP ๋ฉ”์„œ๋“œ์˜ ํ™œ์šฉ ์ธํ”„๋Ÿฐ ๊ฐ•์˜ ์ค‘ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹์ด๋ผ๋Š” ๊ฐ•์˜์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. HTTP ๋ฉ”์„œ๋“œ์˜ ํ™œ์šฉ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ๋Š”, GET ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์ด๋‹ค. ์ฃผ๋กœ ๊ฒ€์ƒ‰์–ด๋‚˜ ์ •๋ ฌ ํ•„ํ„ฐ ๊ธฐ๋Šฅ์„ ์š”๊ตฌํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ๋Š”, ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ๋ฐ”๋””๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์ด๋‹ค. POST๋‚˜ PUT ๋ฉ”์„œ๋“œ๊ฐ€ ์ด์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฃผ๋กœ ํšŒ์› ๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ, ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ๋ณ€๊ฒฝ๋“ฑ์„ ์š”๊ตฌํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๐Ÿ’ก์š”์ฒญ ๋ฉ”์‹œ์ง€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” 4๊ฐ€์ง€ ์ƒํ™ฉ ์ •์  ๋ฐ์ดํ„ฐ ์กฐํšŒ ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด๋‚˜ ์ •์  ํ…์ŠคํŠธ ๋ฌธ์„œ๋“ฑ์„ ์กฐํšŒํ•˜๋Š” ์ƒํ™ฉ์ผ ๋•Œ๋ฅผ ์ •์  ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์  ๋ฐ์ดํ„ฐ๋Š” ์ผ.. 2022. 8. 5.
[HTTP] - HTTP ํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง• ์ธํ”„๋Ÿฐ ๊ฐ•์˜ ์ค‘ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹์ด๋ผ๋Š” ๊ฐ•์˜์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. HTTP ๊ธฐ๋ณธ ํŠน์ง• ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ ๋ฌด์ƒํƒœ(Stateless) ํ”„๋กœํ† ์ฝœ ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless) HTTP ๋ฉ”์‹œ์ง€ 1. ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ตฌ์กฐ HTTP ํ”„๋กœํ† ์ฝœ์„ ์“ฐ๊ธฐ ์ „์—๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋‚˜๋‰˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•œ๋‹ค. HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ์œผ๋กœ์จ ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” Request๋ฅผ ์„œ๋ฒ„์—์„œ๋Š” ๊ทธ์— ๋”ฐ๋ฅธ Response๋ฅผ ๋ณด๋‚ด๋Š” ๊ตฌ์กฐ๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋‚˜๋ˆ„์–ด์ง€๊ฒŒ ๋˜๋ฉด์„œ ๊ฐ๊ฐ์˜ ์—ญํ• ์— ๋”์šฑ๋” ์ ํ•ฉํ•œ ๊ธฐ๋Šฅ๋“ค์— ์ง‘์ค‘ํ•ด์„œ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 2. ๋ฌด์ƒํƒœ(Stateless) ํ”„๋กœํ† ์ฝœ ๋ฌด์ƒํƒœ, ์ฆ‰ Stateless๋ž€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋ฐ˜๋Œ€ ์šฉ์–ด๋กœ๋Š” .. 2022. 8. 3.
[HTTP] - URI์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„ ์ธํ”„๋Ÿฐ ๊ฐ•์˜ ์ค‘ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹์ด๋ผ๋Š” ๊ฐ•์˜์— ๋Œ€ํ•œ TIL์ž…๋‹ˆ๋‹ค. URI์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„ URI ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„ 1. URI URI๋ž€ Uniform Resource Identifier์˜ ์•ฝ์ž๋กœ ์ธํ„ฐ๋„ท ์ƒ์˜ ์ž์›์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์ผ๋œ ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. URI๋Š” URL๊ณผ URN์˜ ํŠน์„ฑ์„ ๋ชจ๋‘ ๊ฐ–๋Š”๋‹ค. URL์€ Locator, ์ฆ‰ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ ๊ฒƒ์ด๊ณ , URN์€ Name, ์ฆ‰ ๋ฆฌ์†Œ์Šค์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•œ ๊ฒƒ์ด๋‹ค. URL์€ ๋ณดํŽธํ™”๋˜์–ด์žˆ์ง€๋งŒ URN์€ ๋ณดํŽธํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— URI๋ฅผ URL๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค. URL์„ ์„ค๊ณ„ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ฌธ๋ฒ•์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. scheme://[userinfo@]host[:port][/path][?.. 2022. 8. 3.