๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋‚˜์˜ ๋ชจ์–‘

029 | ๋„คํŠธ์›Œํฌ - HTTP ๋ณธ๋ฌธ

SEB/TIL

029 | ๋„คํŠธ์›Œํฌ - HTTP

kexon 2022. 8. 2. 19:59

๐Ÿ’™ HTTP(HyperText Transfer Protocol)

  • HTML๊ณผ ๊ฐ™์€ ๋ฌธ์„œ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ Application Layer ํ”„๋กœํ† ์ฝœ
  • HTTP๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„์˜ ์†Œํ†ต์„ ์œ„ํ•ด ๋””์ž์ธ๋จ
  • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ์—์„œ
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTTP messages ์–‘์‹์— ๋งž์ถฐ ์š”์ฒญ ์ „์†ก
    • ์„œ๋ฒ„๋„ HTTP messages ์–‘์‹์— ๋งž์ถฐ ์‘๋‹ต
  • HTTP์˜ ํŠน์ง•: Stateless(๋ฌด์ƒํƒœ์„ฑ)

โœ… Ref.

  • Application Layer Protocol
 

Hypertext Transfer Protocol - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Application protocol for distributed, collaborative, hypermedia information systems Hypertext Transfer ProtocolInternational standard RFC 1945 HTTP/1.0 (1996) RFC 2068 HTTP/1.1 (1997

en.wikipedia.org

๐Ÿ’™ HTTP Messages

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตํ™˜๋˜๋Š” ๋ฐฉ์‹
  • HTTP messages ์œ ํ˜•
    • ์š”์ฒญ(Requests)
    • ์‘๋‹ต(Responses)
  • ๊ตฌ์„ฑ ํŒŒ์ผ, API, ๊ธฐํƒ€ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ HTTP messages๋ฅผ ์ž๋™ ์™„์„ฑ
  • ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ
    1. start line
      • ์š”์ฒญ์ด๋‚˜ ์‘๋‹ต์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์œ„์น˜
      • ์‘๋‹ต์—์„œ๋Š” status line์ด๋ผ๊ณ  ๋ถ€๋ฆ„
    2. HTTP headers
      • ์š”์ฒญ์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜, ๋ฉ”์‹œ์ง€์— ํฌํ•จ๋œ ๋ณธ๋ฌธ์„ ์„ค๋ช…ํ•˜๋Š” ํ—ค๋”์˜ ์ง‘ํ•ฉ
    3. empty line
      • ํ—ค๋”์™€ ๋ณธ๋ฌธ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋นˆ ์ค„์ด ์žˆ์Œ
    4. body
      • ์š”์ฒญ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋‚˜ ์‘๋‹ต๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๋ฌธ์„œ ํฌํ•จ
      • ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ์œ ํ˜•์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ
  • start line + HTTP Headers = head
  • payload = body

๐Ÿค ์š”์ฒญ(Request)

Start line

  • HTTP ์š”์ฒญ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€
  • Start line์˜ ์„ธ ๊ฐ€์ง€ ์š”์†Œ
  1. ์ˆ˜ํ–‰ํ•  ์ž‘์—…(GET, PUT, POST ๋“ฑ)์ด๋‚˜ ๋ฐฉ์‹(HEAD or OPTIONS)์„ ์„ค๋ช…ํ•˜๋Š” HTTP method
    ex. GET method๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›๊ณ , POST method๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ์ „์†ก
  2. ์š”์ฒญ ๋Œ€์ƒ(์ผ๋ฐ˜์ ์œผ๋กœ URL์ด๋‚˜ URI) ๋˜๋Š” ํ”„๋กœํ† ์ฝœ, ํฌํŠธ, ๋„๋ฉ”์ธ์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ์š”์ฒญ ์ปจํ…์ŠคํŠธ์— ์ž‘์„ฑ
    ์ด ์š”์ฒญ ํ˜•์‹์€ HTTP method ๋งˆ๋‹ค ๋‹ค๋ฆ„
    • origin ํ˜•์‹: ?์™€ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์ด ๋ถ™๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ
      POST, GET, HEAD, OPTIONS ๋“ฑ์˜ method์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ POST / HTTP 1.1GET /background.png HTTP/1.0HEAD /test.html?query=alibaba HTTP/1.1OPTIONS /anypage.html HTTP/1.0
    • absolute ํ˜•์‹: ์™„์ „ํ•œ URL ํ˜•์‹
      ํ”„๋ก์‹œ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„ GET method์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ GET <http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages> HTTP/1.1
    • authority ํ˜•์‹: ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ์ด๋ฃจ์–ด์ง„ URL์˜ authority componen
      HTTP ํ„ฐ๋„์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒฝ์šฐ CONNECT์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ CONNECT developer.mozilla.org:80 HTTP/1.1
    • asterisk ํ˜•์‹: OPTIONS ์™€ ํ•จ๊ป˜ ๋ณ„ํ‘œ() ํ•˜๋‚˜๋กœ ์„œ๋ฒ„ ์ „์ฒด๋ฅผ ํ‘œํ˜„ OPTIONS * HTTP/1.1
  3. HTTP ๋ฒ„์ „์— ๋”ฐ๋ผ HTTP message์˜ ๊ตฌ์กฐ๊ฐ€ ๋‹ฌ๋ผ์ ธ์„œ start line์— HTTP ๋ฒ„์ „์„ ํ•จ๊ป˜ ์ž…๋ ฅ

Headers

  • ์š”์ฒญ์˜ Headers๋Š” ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ„
  • ํ—ค๋” ์ด๋ฆ„(๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์—†๋Š” ๋ฌธ์ž์—ด), ์ฝœ๋ก ( : ), ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉฐ ๊ฐ’์€ ํ—ค๋”์— ๋”ฐ๋ผ ๋‹ค๋ฆ„
  • ํ—ค๋” ์ข…๋ฅ˜
    • General headers
      • ๋ฉ”์‹œ์ง€ ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ํ—ค๋”
      • body๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์™€๋Š” ๊ด€๋ จ์ด ์—†๋Š” ํ—ค๋”
    • Request headers
      • fetch๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ฌ ๋ฆฌ์†Œ์Šค๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ž์ฒด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ํ—ค๋”
      • ์š”์ฒญ์„ ๊ตฌ์ฒดํ™”ํ•˜๋Š” ํ—ค๋”: User-Agent, Accept-Type, Accept-Language
      • Referer์ฒ˜๋Ÿผ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ If-None๊ณผ ๊ฐ™์ด ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ
    • Representation headers
      • body์— ๋‹ด๊ธด ๋ฆฌ์†Œ์Šค ์ •๋ณด(์ฝ˜ํ…์ธ  ๊ธธ์ด, MIME ํƒ€์ž… ๋“ฑ)๋ฅผ ํฌํ•จํ•˜๋Š” ํ—ค๋”
      • ์ด์ „์—๋Š” Entity headers๋กœ ๋ถˆ๋ €์Œ

Body

  • ์š”์ฒญ์˜ ๋ณธ๋ฌธ์€ HTTP messages ๊ตฌ์กฐ ๋งˆ์ง€๋ง‰์— ์œ„์น˜
  • ๋ชจ๋“  ์š”์ฒญ์— body๊ฐ€ ํ•„์š”ํ•œ ๊ฑด ์•„๋‹˜
  • GET, HEAD, DELETE, OPTIONS์ฒ˜๋Ÿผ ์„œ๋ฒ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ณธ๋ฌธ ํ•„์š” ์—†์Œ
  • POST๋‚˜ PUT๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์š”์ฒญ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์š”์ฒญ body ์ข…๋ฅ˜
    • Single-resource bodies(๋‹จ์ผ-๋ฆฌ์†Œ์Šค ๋ณธ๋ฌธ): ํ—ค๋” ๋‘ ๊ฐœ(Content-Type๊ณผ Content-Length)๋กœ ์ •์˜๋œ ๋‹จ์ผ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ
    • Multiple-resource bodies(๋‹ค์ค‘-๋ฆฌ์†Œ์Šค ๋ณธ๋ฌธ): ์—ฌ๋Ÿฌ ํŒŒํŠธ๋กœ ๊ตฌ์„ฑ๋œ ๋ณธ๋ฌธ์—์„œ๋Š” ๊ฐ ํŒŒํŠธ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ์ง€๋‹˜

๐Ÿค ์‘๋‹ต(Responses)

Status line

  • Status line: ์‘๋‹ต์˜ ์ฒซ ์ค„
    1. ํ˜„์žฌ ํ”„๋กœํ† ์ฝœ์˜ ๋ฒ„์ „(HTTP/1.1)
    2. ์ƒํƒœ ์ฝ”๋“œ - ์š”์ฒญ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„ (200, 302, 404 ๋“ฑ)
    3. ์ƒํƒœ ํ…์ŠคํŠธ - ์ƒํƒœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…
  • Status line์€ HTTP/1.1 404 Not Found. ์ฒ˜๋Ÿผ ์ƒ๊น€

Headers

  • ์‘๋‹ต์— ๋“ค์–ด๊ฐ€๋Š” HTTP headers๋Š” ์š”์ฒญ ํ—ค๋”์™€ ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†๋Š” ๋ฌธ์ž์—ด๊ณผ ์ฝœ๋ก (:), ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉฐ, ๊ฐ’์€ ํ—ค๋”์— ๋”ฐ๋ผ ๋‹ค๋ฆ„
  • ํ—ค๋” ์ข…๋ฅ˜
    • General headers
      • ๋ฉ”์‹œ์ง€ ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ํ—ค๋”
      • body๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์™€๋Š” ๊ด€๋ จ์ด ์—†๋Š” ํ—ค๋”
    • Response headers
      • ์œ„์น˜ ๋˜๋Š” ์„œ๋ฒ„ ์ž์ฒด์— ๋Œ€ํ•œ ์ •๋ณด(์ด๋ฆ„, ๋ฒ„์ „ ๋“ฑ)์™€ ๊ฐ™์ด ์‘๋‹ต์— ๋Œ€ํ•œ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ๊ฐ–๋Š” ํ—ค๋”
      • Vary, Accept-Ranges์™€ ๊ฐ™์ด ์ƒํƒœ ์ค„์— ๋„ฃ๊ธฐ์—๋Š” ๊ณต๊ฐ„์ด ๋ถ€์กฑํ–ˆ๋˜ ์ถ”๊ฐ€ ์ •๋ณด ์ œ๊ณต
    • Representation headers
      • body์— ๋‹ด๊ธด ๋ฆฌ์†Œ์Šค ์ •๋ณด(์ฝ˜ํ…์ธ  ๊ธธ์ด, MIME ํƒ€์ž… ๋“ฑ)๋ฅผ ํฌํ•จํ•˜๋Š” ํ—ค๋”
      • ์ด์ „์—๋Š” Entity headers๋กœ ๋ถˆ๋ €์Œ

Body

  • ์‘๋‹ต์˜ ๋ณธ๋ฌธ์€ HTTP messages ๊ตฌ์กฐ ๋งˆ์ง€๋ง‰์— ์œ„์น˜
  • ๋ชจ๋“  ์‘๋‹ต์— body๊ฐ€ ํ•„์š”ํ•œ ๊ฑด ์•„๋‹˜
    201, 204์™€ ๊ฐ™์€ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ์‘๋‹ต์—๋Š” ๋ณธ๋ฌธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ
  • ์‘๋‹ต body ์ข…๋ฅ˜
    • Single-resource bodies(๋‹จ์ผ-๋ฆฌ์†Œ์Šค ๋ณธ๋ฌธ)
      • ๊ธธ์ด๊ฐ€ ์•Œ๋ ค์ง„ ๋‹จ์ผ-๋ฆฌ์†Œ์Šค ๋ณธ๋ฌธ์€ ๋‘ ๊ฐœ์˜ ํ—ค๋”(Content-Type, Content-Length)๋กœ ์ •์˜
      • ๊ธธ์ด๋ฅผ ๋ชจ๋ฅด๋Š” ๋‹จ์ผ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋œ ๋‹จ์ผ-๋ฆฌ์†Œ์Šค ๋ณธ๋ฌธ์€ Transfer-Encoding์ด chunked ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ํŒŒ์ผ์€ chunk๋กœ ๋‚˜๋‰˜์–ด ์ธ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Œ
    • Multiple-resource bodies(๋‹ค์ค‘-๋ฆฌ์†Œ์Šค ๋ณธ๋ฌธ)
      • ์„œ๋กœ ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” body

Stateless

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

๐Ÿ’™ HTTP Requests

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ RESTful APIs๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ๋ฆ„์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. HTTP๋Š” pull protocol๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ†ต์‹ ์€ ํ•ญ์ƒ HTTP ์š”์ฒญ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์‹œ์ž‘๋œ๋‹ค.
  • ์„œ๋ฒ„๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€๋กœ ์‘๋‹ตํ•˜๋Š”๋ฐ ์ด ๋ฉ”์‹œ์ง€๋“ค์€ ํ–‰๋™, ์ด๋ฏธ์ง€, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ์˜ ๋ณธ๋ฌธ์ด๋‹ค.
  • ๋ชจ๋“  http ๋ฉ”์‹œ์ง€๋Š” ๋ฉ”์‹œ์ง€ ํ—ค๋”์™€ ์„ ํƒ์  ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ณต๊ฐ„์— ์˜ํ•ด ๋ถ„๋ฆฌ๋œ๋‹ค.

  • http ์š”์ฒญ์—์„œ ํ—ค๋”์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์€ ์š”์ฒญ ์ค„์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, HTTP verb, URI, HTTP version number๊ฐ€ ํฌํ•จ๋œ๋‹ค.

request line

  • ์š”์ฒญ ํ–‰ ๋’ค์— ์„ ํƒ์  ์š”์ฒญ ํ—ค๋”๊ฐ€ ์žˆ๋Š”๋ฐ, ์š”์ฒญ์— ๋Œ€ํ•œ ํŠน์ • ์†์„ฑ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์š”์ฒญ ํ—ค๋”๊ฐ€ ์ด๋ฆ„ ๊ฐ’ ์Œ์— ๋‚˜ํƒ€๋‚œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ’์€ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… Ref.

๐Ÿ’™ HTTP Responses

  • ์„œ๋ฒ„๊ฐ€ HTTP ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์‘๋‹ต์— ์š”์ฒญ๋œ ์ •๋ณด๋‚˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. ์‘๋‹ต์€ ๋ฉ”์‹œ์ง€ ํ—ค๋”์™€ ์„ ํƒ์  ๋ณธ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  • ํ—ค๋”์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์„ ์ƒํƒœ ์ค„์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์„ ํƒ ์‚ฌํ•ญ์ธ ์‘๋‹ต ํ—ค๋” ๋’ค์— ํ‘œ์‹œ๋œ๋‹ค.
  • ์ƒํƒœ ์ค„์—๋Š” HTTP ๋ฒ„์ „, ์ƒํƒœ ์ฝ”๋“œ ๋ฐ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์˜์–ด๋กœ ์„ค๋ช…ํ•˜๋Š” ์ด์œ  ๊ตฌ๋ฌธ์ด ํฌํ•จ๋œ๋‹ค.
  • ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์ƒํƒœ ์ฝ”๋“œ์™€ ์ด์œ  ๊ตฌ๋ฌธ์ธ๋ฐ,
    • ์„ ํƒ์  ์‘๋‹ต ํ—ค๋”๋Š” ์š”์ฒญ ํ—ค๋”์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ด๋ฆ„ ๊ฐ’ ์Œ์˜ ํ˜•ํƒœ๋ฅผ ์ทจํ•œ๋‹ค.
    • ์‘๋‹ต ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์—๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.

โœ… Ref.

 

'SEB > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

031 | RDBMS, SQL, ACID  (0) 2022.08.04
030 | REST API  (0) 2022.08.03
029 | ๋„คํŠธ์›Œํฌ - ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ์ˆ   (0) 2022.08.02
027 | Permutation & Combination, Greedy Implementation  (0) 2022.07.29
026 | Greedy, Brute-Force, Binary Search Algorithm  (0) 2022.07.29
Comments