Notice
Recent Posts
Recent Comments
Link
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

BUILD_SSO

[Network/๋„คํŠธ์›Œํฌ] HTTP ๋ณธ๋ฌธ

Tech Interview

[Network/๋„คํŠธ์›Œํฌ] HTTP

sohyeonnn 2023. 4. 19. 17:05

HTTP

๐Ÿ‘‰๐ŸปHTTP์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • HTTP(Hyper Text Transfer Protocol)์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • HTTP๋Š” ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” Stateless์˜ ํŠน์ง•๊ณผ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” Connectionless์˜ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. http์„œ๋ฒ„๊ฐ€ 80๋ฒˆ ํฌํŠธ์—์„œ ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” 80๋ฒˆ ํฌํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์˜ ํ”„๋กœํ† ์ฝœ/ TCP/IP์œ„์—์„œ ์ž‘๋™ํ•œ๋‹ค.
  • method, path, version, headers, body๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

๐Ÿ‘‰๐ŸปStateless์™€ Connectionless์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

๋ฌด์ƒํƒœ Stateless

  • stateful์€์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋ฌด์ƒํƒœ(stateless)๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ด์ „ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 
  • stateless๋Š” ์ƒํƒœ๋ฅผ ๋ณด๊ด€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์–ด๋Š ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•ด๋„ ์ƒ๊ด€์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋Œ€ํญ ์ฆ๊ฐ€ํ•ด๋„ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์ด์ „ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ๋กœ๊ทธ์ธ๋งŒ ๋ณด๋”๋ผ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•œ ์ƒํƒœ๋ฅผ ์„œ๋ฒ„์— ์œ ์ง€์‹œ์ผœ ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค๋‚˜ ์„œ๋ฒ„ ์„ธ์…˜ ๋“ฑ์„ ์‚ฌ์šฉํ•ด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

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

  • ๋น„์—ฐ๊ฒฐ์„ฑ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๋ฐ”๋กœ TCP/IP ์—ฐ๊ฒฐ์„ ๋Š์–ด ์—ฐ๊ฒฐ์„ ์œ ์ง€ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ์ˆ˜ ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์—๋„ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

๐Ÿ‘‰๐Ÿป์™œ HTTP๋Š” Stateless ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•˜๊ณ  ์žˆ์„๊นŒ์š”?

  • ์„œ๋ฒ„ ํ™•์žฅ์„ฑ(์Šค์ผ€์ผ ์•„์›ƒ)์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ์€ ๋ง ๊ทธ๋Œ€๋กœ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ

๐Ÿ‘‰๐ŸปHTTP Persistence Connection ์ด ๋ฌด์—‡์ธ๊ฐ€์š”?

  • HTTP Connectionless์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • Connectionless๋Š” ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง์— ๋”ฐ๋ผ ์ƒˆ๋กœ ์—ฐ๊ฒฐ๋  ๋•Œ TCP/IP ์—ฐ๊ฒฐ์„ ์ƒˆ๋กœ ๋งบ์–ด์•ผ ํ•˜๋ฏ€๋กœ 3-way handshake์— ๋”ฐ๋ฅธ ์‹œ๊ฐ„์ด ์ถ”๊ฐ€๋˜๋ฉฐ, HTML ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, CSS, ์ด๋ฏธ์ง€ ๋“ฑ ์ˆ˜ ๋งŽ์€ ์ž์›์ด ํ•จ๊ป˜ ๋‹ค์šด๋กœ๋“œ ๋œ๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ HTTP ์ง€์† ์—ฐ๊ฒฐ(Persisten Connections)๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ง€์† ์—ฐ๊ฒฐ์€ ์š”์ฒญ์— ๋”ฐ๋ผ ์—ฐ๊ฒฐ์ด ๋œ ์ดํ›„ ์ผ์ • ์‹œ๊ฐ„ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ(HTML, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ)์— ๋Œ€ํ•œ ์‘๋‹ต์ด ๋‹ค ์˜ฌ ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ‘‰๐ŸปHTTP ์š”์ฒญ/์‘๋‹ต ํ—ค๋”

  • HTTPํ—ค๋”๋ž€, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ ๋˜๋Š” ์‘๋‹ต์œผ๋กœ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.
  • HTTP ํ—ค๋”๋Š” 4๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    1. General header : ์š”์ฒญ๊ณผ ์‘๋‹ต ๋ชจ๋‘์— ์ ์šฉ๋˜์ง€๋งŒ ๋ฐ”๋””์—์„œ ์ตœ์ข…์ ์œผ๋กœ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์™€๋Š” ๊ด€๋ จ์ด ์—†๋Š” ํ—ค๋”.
    2. Request header : ํŽ˜์น˜๋  ๋ฆฌ์†Œ์Šค๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ž์ฒด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํ—ค๋”.(๋‚ด๊ฐ€ ๋ณด๋‚ด๋Š” ๋ฉ”์„ธ์ง€์˜ ํ—ค๋”)
    3. Response header : ์œ„์น˜ ๋˜๋Š” ์„œ๋ฒ„ ์ž์ฒด์— ๋Œ€ํ•œ ์ •๋ณด(์ด๋ฆ„, ๋ฒ„์ „ ๋“ฑ)์™€ ๊ฐ™์ด ์‘๋‹ต์— ๋Œ€ํ•œ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ๊ฐ–๋Š” ํ—ค๋”.(๋‚ด๊ฐ€ ๋ฐ›์€ ๋ฉ”์„ธ์ง€์˜ ํ—ค๋”)
    4. Entity header: ์ปจํ…์ธ  ๊ธธ์ด๋‚˜ MIME ํƒ€์ž…๊ณผ ๊ฐ™์ด ์—”ํ‹ฐํ‹ฐ ๋ฐ”๋””์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํ—ค๋”.(Entity Header๋Š” request, response์— ์†ํ•ด์žˆ๋‹ค)

๐Ÿ‘‰๐ŸปHTTPS์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • HTTPS๋Š” HTTP์— ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ฆ‰, HTTP + SSL
  • HTTP์™€ ๋‹ค๋ฅด๊ฒŒ 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉ, ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ค‘๊ฐ„์— ์ œ3์ž๊ฐ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•œ๋‹ค.
  • ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์™€ ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋น ๋ฅธ ์—ฐ์‚ฐ์†๋„์™€ ์•ˆ์ •์„ฑ์„ ๋ชจ๋‘ ์–ป์—ˆ๋‹ค.

๐Ÿ‘‰๐ŸปHTTP vs HTTPS

  • HTTP๋Š” ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์—, HTTP๋กœ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด ์ œ 3์ž์— ์˜ํ•ด ์กฐํšŒ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HTTP์— ์•”ํ˜ธํ™”๋ฅผ ์ถ”๊ฐ€ํ•œ HTTPS๊ฐ€ ํƒ„์ƒํ–ˆ๋‹ค.
  • HTTPS๋Š” SSL์„ ์–น์€ HTTP๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰๐ŸปHTTP์™€ HTTPS ๋™์ž‘ ๊ณผ์ •

HTTP

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅ
  2. ๋ธŒ๋ผ์šฐ์ €๋Š” DNS๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์ง„์งœ ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค.
    *DNS: ์ด์ „๊นŒ์ง€๋Š” ์šฐ๋ฆฌ๊ฐ€ IP๋ฅผ ์ด์šฉํ•ด์„œ ํ†ต์‹ ์„ ํ•ด๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ IP๋Š” ๊ธฐ์–ตํ•˜๊ธฐ๊ฐ€ ํž˜๋“ค๊ณ  ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ DNS๋ผ๋Š”๊ฒŒ ์žˆ๋‹ค. DNS๋Š” ์ค‘๊ฐ„์— ์ „ํ™”๋ฒˆํ˜ธ๋ถ€๊ฐ™์€ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค. ๋„๋ฉ”์ธ ๋ช…์„ ๋“ฑ๋กํ•˜๊ณ  ๊ทธ๊ฒƒ์„ IP์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
  3. HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•จ
  4. TCP/IP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด HTTP์š”์ฒญ์ด ์„œ๋ฒ„๋กœ ์ „์†ก๋จ
  5. ์„œ๋ฒ„๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•ด HTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•จ
  6. TCP/IP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์š”์ฒญํ•œ ์ปดํ“จํ„ฐ๋กœ ์ „์†ก
  7. ๋„์ฐฉํ•œ HTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋Š” ์›นํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜๋˜๊ณ , ์›น ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ์ถœ๋ ฅ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

HTTPS

  • ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™”๋ฐฉ์‹์„ ์‚ฌ์šฉ, ๋‘๊ฐœ์˜ ํ‚ค๋ฅผ ๊ฐ€์ง„๋‹ค.
  • aํ‚ค๋กœ ์•”ํ˜ธํ™” bํ‚ค๋กœ ๋ณตํ˜ธํ™”(๋ฐ˜๋Œ€)๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋‘ ๊ฐœ์˜ ํ‚ค์ค‘ ํ•˜๋‚˜๋Š” ๊ณต๊ฐœํ‚ค์ด๊ณ  ํ•˜๋‚˜๋Š” ๋น„๊ณต๊ฐœํ‚ค์ด๋‹ค.
  • ๋น„๊ณต๊ฐœํ‚ค๋Š” privateํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ์œผ๋ฉฐ ๊ณต๊ฐœํ‚ค๋Š” ํƒ€์ธ์—๊ฒŒ ๊ณต๊ฐœ๋˜๋Š” ํ‚ค์ด๋‹ค.
  • ์œ ์ €๊ฐ€ ๊ณต๊ฐœํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•œ ๋’ค ๋น„๊ณต๊ฐœํ‚ค์˜ ์†Œ์œ ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋ฉด ๋น„๊ณต๊ฐœํ‚ค์˜ ์†Œ์œ ์ž๋Š” ๋น„๊ณต๊ฐœํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค.
  • https๋ฅผ ์ด์šฉํ•˜๋ฉด ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”์˜ ๊ณผ์ • ๋•Œ๋ฌธ์— http๋ณด๋‹ค ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.(์˜ค๋Š˜๋‚ ์—๋Š” ์ฐจ์ด๋ฅผ ๊ฑฐ์˜ ๋ชป๋Š๋‚„ ์ •๋„์ด๊ธดํ•˜๋‹ค.)

๐Ÿ‘‰๐ŸปHTTPS์—์„œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ๋Œ€์นญํ‚ค ๋ฐฉ์‹๊ณผ ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์„ ํ˜ผ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ์‹ ์›์„ ๋ณด์ฆํ•˜๊ณ , ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ‘‰๐Ÿป๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญํ‚ค)์™€ ๋Œ€์นญํ‚ค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค๋Š” ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋Œ€์นญํ‚ค

  • ๋Œ€์นญํ‚ค๋Š” ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”์— ๊ฐ™์€ ์•”ํ˜ธ ํ‚ค๋ฅผ ์“ฐ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.
    ์ด๋Š” ์ค‘๊ฐ„์— ๋ˆ„๊ตฐ๊ฐ€ ์•”ํ˜ธ ํ‚ค๋ฅผ ๊ฐ€๋กœ์ฑ„๋ฉด ์•”ํ˜ธํ™”๋œ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ, ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•œ ์ƒˆ๋กœ์šด ๋ฐฉ์‹์ด ๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญํ‚ค)์ž…๋‹ˆ๋‹ค.

๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญํ‚ค)

  • ๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญํ‚ค)๋Š” ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”ํ•  ๋•Œ ํ‚ค๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๋Š” ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.
    ํƒ€์ธ์—๊ฒŒ ์ ˆ๋Œ€ ๋…ธ์ถœ๋˜์–ด์„œ๋Š” ์•ˆ๋˜๋Š” ๊ฐœ์ธํ‚ค(private key)์™€ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ฐœ๋ฐฉ๋˜์–ด ์žˆ๋Š” ๊ณต๊ฐœํ‚ค(public key)๋ฅผ ์Œ์œผ๋กœ ์ด๋ฃฌ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

๐Ÿ‘‰๐Ÿป์™œ HTTPS Handshake ๊ณผ์ •์—์„œ๋Š” ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”?

  • ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์•ˆ์ „ํ•œ ํ†ต์‹ ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
    ์ธ์ฆ์„œ๋Š” SSL/TLS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ํ”„๋กœํ† ์ฝœ์€ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ๋ˆ„๊ฐ€ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

๐Ÿ‘‰๐ŸปSSL์™€ TLS์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

  • SSL์ด๋ž€, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์— ๊ตํ™˜๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ํ‘œ์ค€ ๊ธฐ์ˆ ์ด๋‹ค.
  • 1999๋…„์— SSL 3.0์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „์œผ๋กœ TLS 1.0์ด ๊ณต๊ฐœ๋˜์—ˆ๋‹ค. ์ดํ›„ SSL์—์„œ TLS๋กœ ๋ช…์นญ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‚˜, SSL์ด๋ผ๋Š” ๋ช…์นญ์ด ์•„์ง๊นŒ์ง€ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์–ด์„œ TLS/SSL์„ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.*์ถ”๊ฐ€ ํ•™์Šต์ด ํ•„์š”ํ•˜๋‹ค,,, SSL๊ณผ TLS์˜ ์ฐจ์ด๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ ๊ทœ์ •ํ•œ ๊ฒƒ์„ ์ฐพ์•„๋ณด์ง€ ๋ชปํ–ˆ๋‹ค. ๋‹ค๋งŒ, ๋งŽ์€ ๊ณณ์—์„œ ๋ฒ„์ „์˜ ์ฐจ์ด๋ผ๊ณ  ์„ค๋ช…ํ•˜๊ณ ์žˆ๋‹ค.

๐Ÿ‘‰๐ŸปHTTP/1.1๊ณผ HTTP/2์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

HTTP/1.1

  • http1.1์€ 1997๋…„ ๋‚˜์™”๊ณ , ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์ด ๋‹ค ๋“ค์–ด๊ฐ€์žˆ๋‹ค.
  • http1.1์€ ๊ธฐ๋ณธ์ ์œผ๋กœ connection๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ(๊ณผ ์‘๋‹ต)์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. -> ๋™์‹œ์ „์†ก์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ด ์˜จ ํ›„ ๋‹ค์Œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. (network latency๋ฐœ์ƒ)
  • http pipelining์ด ๋„์ž…๋˜์—ˆ๋‹ค.
    *http pipelining: TCP์•ˆ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ http ์š”์ฒญ์„ ๋‹ด์•„ network latency๋ฅผ ์ค„์ด๋Š” ๋ฐฉ์‹
  • ํ•˜์ง€๋งŒ, ์ •ํ™•ํ•œ ๊ตฌํ˜„์ด ํž˜๋“ค๊ณ  HOL(head of line) blocking(=์•ž์„ ์š”์ฒญ์— ์˜ํ•ด ๋’ค์— ์š”์ฒญ์ด ์ง€์—ฐ๋˜๋Š”๊ฒƒ)์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • RTT(round trip time)์ฆ๊ฐ€, (์–‘๋ฐฉํ–ฅ ์ง€์—ฐ) -> ํ—ค๋”๊ฐ€ ํฌ๋‹ค(ํŠนํžˆ ์ฟ ํ‚ค ๋•Œ๋ฌธ์—)

HTTP/2.0

  • http1.1์ด ๋Š๋ ค์„œ ๋ฒ„์ „์„ ๊ฐœ์„ ํ•œ๊ฒŒ 2.0์ด๋‹ค.
  • http1.1์˜ Connection Keep-Alive, Pipelining์˜ ๊ฐœ์„ 
  • http2.0์ด ๋นจ๋ผ์ง„์ด์œ : multiplexed streams(ํ•œ connection์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋™์‹œ์— ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์ž‡์Œ) / ์š”์ฒญ์ด ์ปค๋„ฅ์…˜ ์ƒ์—์„œ ๋‹ค์ค‘ํ™” ๋˜๋ฏ€๋กœ HOL Blocking์ด ๋ฐœ์ƒx / ์š”์ฒญ ๋ฆฌ์†Œ์Šค๊ฐ„์˜ ์˜์กด๊ด€๊ณ„๋ฅผ ์„ค์ • / ํ”„๋กœํ† ์ฝœ ํ˜‘์ƒ ๋ฉ”์ปค๋‹ˆ์ฆ˜
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‘๋ฒˆ์˜ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด HTTP/1.x์˜ ๊ฒฝ์šฐ ๋‘๊ฐœ์˜ ์š”์ฒญ Header์— ์ค‘๋ณต ๊ฐ’์ด ์กด์žฌํ•ด๋„ ๊ทธ๋ƒฅ ์ค‘๋ณต ์ „์†กํ•œ๋‹ค. ํ•˜์ง€๋งŒ HTTP/2์—์„  Header์— ์ค‘๋ณต๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ Static/Dynamic Header Table ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต Header๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ์ค‘๋ณต๋œ Header๋Š” index๊ฐ’๋งŒ ์ „์†กํ•˜๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š์€ Header์ •๋ณด์˜ ๊ฐ’์€  Huffman Encoding ๊ธฐ๋ฒ•์œผ๋กœ ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ ํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.

*HTTP/3.0

  • ๋ฐœ์ „์—ฌ์ „ํžˆ์ง„ํ–‰์ค‘: TCP๋Œ€์‹ ์— UDP์‚ฌ์šฉ, ์„ฑ๋Šฅ๊ฐœ์„ 
  • http3์€ QUIC๋ผ๋Š” ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” http์ธ๋ฐ, QUIC์€ quick UDP internet connection์˜ ์•ฝ์ž๋กœ UDP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
  • tcp๋Š” 3way hand shake๋“ฑ ์˜ค๋ฒ„ํ—ค๋“œ์™€ HOLB๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์—†์Œ. QUIC์€ ๊ทธ ๊ณผ์ •์„ ์ตœ์ ํ™” ํ•˜๋Š”๊ฒƒ์— ์ดˆ์ ์„ ๋‘์–ด ์„ค๊ณ„๋˜์—ˆ๋‹ค.
  • UDP๋Š” ๋ฐ์ดํ„ฐ๊ทธ๋žจ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ฝ”ํ†จ์ด๊ธฐ์— ๊ฐ๊ฐ์˜ ํŒจํ‚ท ๊ฐ„ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋…๋ฆฝ์ ์ธ ํŒจํ‚ท์ด๋‹ค.
  • UDP๋Š” TCP์— ๋น„ํ•ด ํ—ค์–ด๊ฐ€ ๋งŽ์ด ๋น„์–ด์žˆ๊ธฐ์—, ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ์ง€๊ฐ€ ๋งŽ๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌํ˜„์„ ์–ด๋–ป๊ฒŒ ํ•˜๋ƒ์—๋”ฐ๋ผ ์‹ ๋ขฐ์„ฑ ํ™•๋ณด๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

์ฆ‰, http1.1๊ณผ http2.0์€ ์†๋„์˜ ์ฐจ์ด์™€ HOL ๊ฐœ์„  ์‚ฌํ•ญ์ด ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰๐ŸปTCP์˜ keep-alive์™€ HTTP์˜ keep-alive์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?


๋ฉ”์„œ๋“œ Method

๐Ÿ‘‰๐ŸปHTTP Method ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

๋ฉ”์„œ๋“œ๋ž€, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ญ”๊ฐ€ ์š”์ฒญ์„ ํ•  ๋•Œ ๊ธฐ๋Œ€ํ•˜๋Š” ํ–‰๋™์„ ์ •์˜ํ•ด๋†“์€ ๊ฒƒ์ด๋‹ค.

  • GET: ๋ฆฌ์†Œ์Šค ์กฐํšŒ
  • POST: ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ฃผ๋กœ ๋“ฑ๋ก์— ์‚ฌ์šฉ
  • PUT: ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ญ”๊ฐ€๋ฅผ ๋ณด๋‚ผ ๋•Œ ๋ฎ์–ด์“ฐ๊ธฐ, ๋ฆฌ์†Œ์Šค ๋Œ€์ฒด → ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐˆ์•„์น˜์šฐ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ˆ˜์ •์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค. ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑํ•œ๋‹ค.
  • PATCH: ์ˆ˜์ •(๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ)
  • DELETE: ์‚ญ์ œ(๋ฆฌ์†Œ์Šค ์‚ญ์ œ)

๐Ÿ‘‰๐ŸปGET๊ณผ POST์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Get

  • GET์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜๋ฏ€๋กœ ๋ณด์•ˆ์ ์œผ๋กœ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

Post

  • POST๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋””์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ์™„์ „ํžˆ ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ GET ๋ณด๋‹ค๋Š” ์•ˆ์ „ํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

๐Ÿ”บHTTP 1.1 ์ดํ›„๋กœ, GET์—๋„ Body์— ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์™œ ์•„์ง๋„ ์ด๋Ÿฐ ๋ฐฉ์‹์„ ์ง€์–‘ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”?

  • ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ‘‰๐ŸปPOST vs PUT, PATCH

POST vs PUT

  • ๋™์ผํ•œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ณด๋‚ด๋„ ๊ฒฐ๊ณผ PUT์€ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ˜๋ฉด(๋ฉฑ๋“ฑ์ ์ด๋‹ค) POST๋Š” ๋ณด๋‚ธ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ์ด ๋œ๋‹ค(๋ฉฑ๋“ฑ์ด ์•„๋‹ˆ๋‹ค).

PATCH์™€ PUT์˜ ์ฐจ์ด๋Š”?

  • PATCH ๋ฉ”์†Œ๋“œ๋„ CRUD์˜ U(Update)์— ์†ํ•˜๋ฉฐ, PUT๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์ง€์ง€ ์•Š์•„ ๋™์ผํ•œ ์š”์ฒญ์— ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • PATCH๋Š” PUT๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž์›์˜ ๋ถ€๋ถ„์„ ๊ต์ฒดํ•œ๋‹ค. ์ฆ‰, ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ง€ ์•Š์•„๋„ ์ผ๋ถ€๋ถ„์˜ ํ•„๋“œ๋งŒ ์ž‘์„ฑํ•˜์—ฌ ๋ถ€๋ถ„ ๊ต์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ‘‰๐Ÿป๋ฉฑ๋“ฑ์„ฑ์ด๋ž€?, HTTP Method์˜ ๋ฉฑ๋“ฑ์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

๋ฉฑ๋“ฑ์„ฑ

  • ์‚ฌ์ „์  ์ •์˜๋กœ, ๋ฉฑ๋“ฑ๋ฒ•์น™(ๅ†ช็ญ‰ๆณ•ๅ‰‡) ๋˜๋Š” ๋ฉฑ๋“ฑ์„ฑ(ๅ†ช็ญ‰ๆ€ง, ์˜์–ด: idempotent)์€ ์ˆ˜ํ•™์ด๋‚˜ ์ „์‚ฐํ•™์—์„œ ์—ฐ์‚ฐ์˜ ํ•œ ์„ฑ์งˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ, ์—ฐ์‚ฐ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ ์šฉํ•˜๋”๋ผ๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€์ง€ ์•Š๋Š” ์„ฑ์งˆ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ฆ‰, ์—ฌ๋Ÿฌ๋ฒˆ ์š”์ฒญ/์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์Œ์„ ๋œปํ•˜๋Š”๋ฐ,
    ์ด๋Ÿฐ ์ ์—์„œ, GET์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒํ•œ๋‹ค๋Š” ์ ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•˜๋”๋ผ๋„ ์‘๋‹ต์ด ๋˜‘๊ฐ™์„ ๊ฒƒ์ด๊ณ , ๋ฐ˜๋Œ€๋กœ POST๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉฑ๋“ฑ์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ƒํƒœ์ฝ”๋“œ Status code

๐Ÿ‘‰๐ŸปHTTP ์‘๋‹ต์ฝ”๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • 1XX (์ •๋ณด/์กฐ๊ฑด๋ถ€ ์‘๋‹ต) : ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ ์ž‘์—…์„ ๊ณ„์†ํ•œ๋‹ค.
  • 2XX (์„ฑ๊ณต) : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋™์ž‘์„ ์ˆ˜์‹ ํ•˜์—ฌ ์ดํ•ดํ–ˆ๊ณ  ์Šน๋‚™ํ–ˆ์œผ๋ฉฐ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ์Œ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • 3XX (๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์™„๋ฃŒ) : ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ์„ ๋งˆ์น˜๊ธฐ ์œ„ํ•ด (์œ ์ € ์—์ด์ „ํŠธ์˜)์ถ”๊ฐ€ ๋™์ž‘์„ ์ทจํ•ด์•ผ ํ•œ๋‹ค.
  • 4XX (์š”์ฒญ(ํด๋ผ์ด์–ธํŠธ) ์˜ค๋ฅ˜) : ํด๋ผ์ด์–ธํŠธ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฆ‰, (ํด๋ผ์ด์–ธํŠธ ์ธก์˜)๋˜‘๊ฐ™์€ ์žฌ์‹œ๋„๋Š” ๋ฌด์กฐ๊ฑด ์‹คํŒจํ•œ๋‹ค.
  • 5XX (์„œ๋ฒ„ ์˜ค๋ฅ˜) : ์„œ๋ฒ„๊ฐ€ ์œ ํšจํ•œ ์š”์ฒญ์„ ๋ช…๋ฐฑํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (์„œ๋ฒ„์˜ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‹œ๋„ํ•˜๋ฉด ์„ฑ๊ณตํ•  ์ˆ˜๋„ ์žˆ์Œ)

๐Ÿ‘‰๐Ÿป200(ok) ์™€ 201(created) ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

  • 200 : ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ์„ ๋•Œ ์“ฐ์ธ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” HTTP ์ƒํƒœ
  • 201 : POST ๋‚˜ PUT ์œผ๋กœ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ์ด๋‚˜ ํšŒ์› ๊ฐ€์ž… ๋“ฑ์˜ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ์ƒ์„ฑํ•˜๋Š”(์“ฐ๋Š”, ๋„ฃ๋Š”) ์ž‘์—…์ด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ

๐Ÿ‘‰๐Ÿป401(Unauthorized) ์™€ 403(Forbidden)์€ ์˜๋ฏธ์ ์œผ๋กœ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋‚˜์š”?

401

  • ์ƒํƒœ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜, ์œ ํšจํ•œ ์ธ์ฆ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์š”์ฒญ์ด ๊ฑฐ๋ถ€๋จ
  • ์˜ˆ์‹œ: ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ

403

  • ์ƒํƒœ: ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ์š”์ฒญ์„ ์ดํ•ดํ–ˆ์ง€๋งŒ, ๊ถŒํ•œ์ด ์—†์–ด ์š”์ฒญ์ด ๊ฑฐ๋ถ€๋จ
  • ์˜ˆ์‹œ: ์‚ฌ์šฉ์ž๊ฐ€ ๊ถŒํ•œ์ด ์—†๋Š” ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒฝ์šฐ

๐Ÿ”บpre-defined ๊ฐ€ ์•ˆ ๋œ status code?

์ •์˜๋˜์ง€์•Š์€ ์ƒํƒœ์ฝ”๋“œ? ๋ฌด์Šจ ์˜๋ฏธ์ธ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค

Comments