HTTP์™€ HTTP์˜ ๋ฉ”์„ธ์ง€ ๊ตฌ์กฐ
728x90

HTTP(HyperText Transfer Protocol)

์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

HTML, Text ์™ธ์—๋„ ์ด๋ฏธ์ง€๋‚˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ, JSON ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

HTTP ํŠน์ง•

HTTP์˜ ํŠน์ง•์œผ๋กœ๋Š” ํฌ๊ฒŒ ๋ช‡ ๊ฐ€์ง€๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ๊ตฌ์กฐ

์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ๋‚˜๋‰˜์–ด์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ ์š”์ฒญ์„, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋กœ ์‘๋‹ตํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๊ฐ๊ฐ ๋…๋ฆฝ๋˜์–ด ์žˆ์–ด ๋…์ž์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „ํ•ด ์™”๋‹ค.

 

๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ(Stateless)

์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ ํ™•์žฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์•ผ ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

๐Ÿค” Stateful๊ณผ Stateless์˜ ์ฐจ์ด?
๋‘˜์˜ ์ฐจ์ด๋Š” ์ƒํƒœ๊ฐ€ ์œ ์ง€๋˜๋Š๋ƒ์— ์žˆ๋‹ค.

Stateful์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ์„œ ํ•ญ์ƒ ๊ฐ™์€ ์„œ๋ฒ„๊ฐ€ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค.

์ค‘๊ฐ„์— ์„œ๋ฒ„ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ์š”์ฒญ์ด ๋‹ค์‹œ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„ ์ฆ์„ค์ด๋‚˜ ๊ต์ฒด๊ฐ€ ์–ด๋ ต๋‹ค.

 

Stateless๋Š” ์„œ๋ฒ„์—์„œ ์ƒํƒœ๋ฅผ ๋ณด๊ด€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์•„๋ฌด ์„œ๋ฒ„๋‚˜ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์ฒ˜๋Ÿผ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์—„์ฒญ๋‚˜๊ฒŒ ์ฆ๊ฐ€ํ•ด๋„ ์„œ๋ฒ„๋ฅผ ๋Œ€๊ฑฐ ํˆฌ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ!

 

๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด Stateless๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค! ์ตœ๋Œ€ํ•œ ๋ฌด์„ค๊ณ„๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ,

๋กœ๊ทธ์ธ ๊ฐ™์€ ๊ธฐ๋Šฅ์€ ์ƒํƒœ์œ ์ง€๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ.
์ƒํƒœ ์œ ์ง€๋Š” ์ตœ์†Œํ•œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless)

HTTP๋Š” ์š”์ฒญ์„ ํ•œ ํ›„ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค.
๋ถˆํ•„์š”ํ•œ ์—ฐ๊ฒฐ์„ ํ•˜์ง€ ์•Š์•„ ์„œ๋ฒ„ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

 

 

HTTP ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ

HTTP์˜ ๋ฉ”์„ธ์ง€ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

์š”์ฒญ๋ฉ”์‹œ์ง€์˜ ๊ฒฝ์šฐ์—๋Š” body๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„, ๋“ค์–ด๊ฐ€์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

์‹œ์ž‘์ค„

์š”์ฒญ์ผ ๊ฒฝ์šฐ์—๋Š” request-line, ์‘๋‹ต์ผ ๊ฒฝ์šฐ์—๋Š” status-line์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

์š”์ฒญ

์š”์ฒญ์ผ ๊ฒฝ์šฐ์—๋Š” ๋ณดํ†ต ์ด๋Ÿฐ ์š”์†Œ๋“ค์ด ๋“ค์–ด๊ฐ„๋‹ค.

  • HTTP ๋ฉ”์„œ๋“œ
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ๋™์ž‘์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ์š”์ฒญ URL
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ๋กœ, ์š”์ฒญ ๋Œ€์ƒ์ด๋‹ค.
  • HTTP ๋ฒ„์ „
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” HTTP์˜ ๋ฒ„์ „์ด๋‹ค.

 

์‘๋‹ต

์‘๋‹ต์ผ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜ ์š”์†Œ๋“ค์ด ๋“ค์–ด๊ฐ„๋‹ค.

  • HTTP ๋ฒ„์ „
  • HTTP ์ƒํƒœ ์ฝ”๋“œ
    • ์š”์ฒญ์— ๋Œ€ํ•œ ์„ฑ๊ณต, ์‹คํŒจ๋ฅผ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. 200(์„ฑ๊ณต), 400(ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์˜ค๋ฅ˜), 500(์„œ๋ฒ„ ์˜ค๋ฅ˜)
  • ์ƒํƒœ ํ…์ŠคํŠธ
    • ์ƒํƒœ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์งง์€ ๊ธ€

 

HTTP ํ—ค๋”

์š”์ฒญ

์š”์ฒญ ํ—ค๋”์—๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€์ •๋ณด(๋ฉ”ํƒ€์ •๋ณด)๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ํฌ๊ธฐ, ์ธ์ฆ ์ •๋ณด, ์บ์‹œ ๊ด€๋ฆฌ ์ •๋ณด ๋“ฑ๋“ฑ..

 

 

์‘๋‹ต

์‘๋‹ต ํ—ค๋”๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‘๋‹ต์— ๋Œ€ํ•œ ๋ถ€๊ฐ€์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

General ํ—ค๋”, Response ํ—ค๋”, Entity ํ—ค๋” ๋“ฑ ๋ช‡ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ํ—ค๋”๊ฐ€ ์žˆ๋‹ค. (์ถ”๊ฐ€ ์ •๋ฆฌ ์˜ˆ์ •)

 

 

HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋””

์š”์ฒญ

๋ชจ๋“  ์š”์ฒญ์— ๋ณธ๋ฌธ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š์ง€๋งŒ, POST, PATCH, PUT ๋“ฑ์˜ ์š”์ฒญ์ผ ๊ฒฝ์šฐ์—” ๋ฐ”๋””์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.

GET, DELETE ๋“ฑ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ณธ๋ฌธ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค.

 

์‘๋‹ต

์‘๋‹ต์˜ ๋ฐ”๋””์—๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.

 

 

 

 

์ถœ์ฒ˜

๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

728x90