๊ฐœ๋ฐœ ์ง€์‹/HTTP ์ง€์‹

๐ŸŒ 2XX (Successful) ์ƒํƒœ ์ฝ”๋“œ - ์ด์ •๋ฆฌ ๋ชจ์Œ

์ธํŒŒ_ 2023. 1. 3. 08:29

http-2xx

2XX Success

2xx ๋ฒˆ๋Œ€์˜ ์ƒํƒœ ์ฝ”๋“œ๋“ค์€ ์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

๋‹จ์ˆœํžˆ ์š”์ฒญ์— ๋Œ€ํ•œ ์„ฑ๊ณต์„ ๋‚˜ํƒ€๋‚ด์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋– ํ•œ ํ–‰์œ„์— ๋Œ€ํ•œ ์„ฑ๊ณต์ธ์ง€์— ๋Œ€ํ•œ ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์—, ์‘๋‹ต์„ ๋ฐ›๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ทจํ•  ํ–‰์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•˜๋ฉด์„œ๋„ ์ •๋ง ์ž์ฃผ ๋ณด๊ฒŒ๋  ์ƒํƒœ ์ฝ”๋“œ์ผ ๊ฒƒ์ด๋‹ค.

http-2xx


200 OK

  • OK โ‡ข ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ
  • ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์—๋Š” HTTP ๋ฉ”์„œ๋“œ์—๋”ฐ๋ผ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จ
    • GET : ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์™”๊ณ  ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋“ค์–ด์žˆ์Œ
    • POST : ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ช…์‹œํ•˜๋Š” ํ–‰๋™์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋“ค์–ด์žˆ์Œ
    • PUT : 200 OK (์ˆ˜์ • ์™„๋ฃŒ) /  201 Created (์ˆ˜์ •ํ•  ๊ฐœ์ฒด๊ฐ€ ์—†์–ด ์ƒˆ๋กœ ์—…๋กœ๋“œ)
    • DELETE : 200 OK (์‚ญ์ œ ์™„๋ฃŒ) / 204 No Content (์‚ญ์ œํ•  ๊ฐœ์ฒด๊ฐ€ ์—†์„๋•Œ)
    • HEAD : ๊ฐœ์ฒด ํ—ค๋”๊ฐ€ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋“ค์–ด์žˆ์Œ
    • TRACE : ์ตœ์ข… ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ๋ฐ›์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐ”๋””์— ๋“ค์–ด์žˆ์Œ
  • 200 ์‘๋‹ต์€ ์บ์‰ฌ๋  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“ 200 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

  1. ํด๋ผ์ด์–ธํŠธ์—์„œ '/members/100' ๋ฆฌ์†Œ์Šค๋ฅผ GET ์œผ๋กœ ์š”์ฒญ
  2. ์„œ๋ฒ„์—์„œ ๊ทธ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ณด๋‚ด๋ฉด์„œ 200 OK ์˜ ์ƒํƒœ์ฝ”๋“œ๋ฅผ ํ•จ๊ป˜ ์ „์†ก
  3. ์‘๋‹ต ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์—๋Š” HTTP ๋ฉ”์„œ๋“œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ๋ฐ์ดํ„ฐ(username, age)๊ฐ€ ๋“ค์–ด์žˆ์Œ

200 OK


201 Created

  • Created โ‡ข ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ๊ณ  ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ๊น€
  • ์‘๋‹ต ํ—ค๋”์—๋Š” ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ๋งํฌ๋ฅผ ์ œ๊ณต
  • 201 ์ƒํƒœ ์ฝ”๋“œ๋Š” POST, PUT ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์— ์ฃผ๋กœ ์ด์šฉ๋œ๋‹ค.
    • POST : ๊ฐœ์ฒด๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑ
    • PUT : ๋งŒ์ผ ์ˆ˜์ •ํ•  ๊ฐœ์ฒด๊ฐ€ ์—†์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑ
ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ด๋ค„์กŒ๋‹ค๋Š” ์˜๋ฏธ ์ž์ฒด๋Š” 200๊ณผ ๋™์ผํ•œ๋ฐ, ์„ฑ๊ณต๊ณผ ๋™์‹œ์— ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ํฌํ•จํ•œ๋‹ค๋Š” ์ ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
์ƒ์„ฑ ์š”์ฒญ์— ๋Œ€ํ•ด 200 OK๋กœ ์‘๋‹ตํ•ด๋„ ๋˜๊ธด ํ•˜์ง€๋งŒ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์„œ๋ฒ„๋Š” ๋ฐ˜๋“œ์‹œ ์ •ํ™•ํ•œ ์˜๋ฏธ๋ฅผ ์œ„ํ•ด ํ•ด๋‹น ์ฝ”๋“œ๋กœ ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๐Ÿ“ 201 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ '/members' ์ปฌ๋ ‰์…˜์— POST ๋กœ ์‹ ๊ทœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์š”์ฒญ์„ ์ „๋‹ฌ
  2. ์„œ๋ฒ„๊ฐ€ ์‹ ๊ทœ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑํ•œ ๋’ค 201 Created ์ƒํƒœ์ฝ”๋“œ๋ฅผ ๋‹ด์•„ ์ „์†ก
    1. Location / Content-Location ํ—ค๋” : ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐ URL
    2. ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์—๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ์Œ

201 Created


202 Accepted

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

 

๐Ÿ‘Œ 202 ์ƒํƒœ์ฝ”๋“œ ์ดํ•ดํ•˜๊ธฐ

202 ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋งฅ๋„๋‚ ๋“œ์—์„œ ํ–„๋ฒ„๊ฑฐ๋ฅผ ์ฃผ๋ฌธํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ์‹ค์ƒํ™œ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  1. ๊ณ ๊ฐ(ํด๋ผ์ด์–ธํŠธ)์€ ์นด์šดํ„ฐ ์ง์›(URI)์—๊ฒŒ ํ–„๋ฒ„๊ฑฐ ์ฃผ๋ฌธ(HTTP Request)๋ฅผ ํ•œ๋‹ค.
  2. ๊ทธ๋Ÿฌ๋ฉด ์ฃผ๋ฌธ ์š”์ฒญ์„ ๋ฐ›์€ ์ง์›์ด ํ•ด๋‹น ์ฃผ๋ฌธ์„ ์ฃผ๋ฐฉ์žฅ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
  3. ์ฃผ๋ฐฉ์žฅ์€ ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. (๋น„๋™๊ธฐ)
  4. ์ง์›์€ ๋ฒˆํ˜ธํ‘œ(์ž์› ์‹๋ณ„์ž)๋ฅผ ๊ณ ๊ฐ์—๊ฒŒ ์ฃผ๊ณ (202 ์‘๋‹ต) ๋‹ค์Œ ๊ณ ๊ฐ์˜ ์ฃผ๋ฌธ์„ ๋ฐ›๋Š”๋‹ค.

์ฆ‰, ๋‹จ์ˆœํžˆ ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ ‘์ˆ˜๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋ฒˆํ˜ธํ‘œ๋ฅผ ์ฃผ๋“ฏ์ด 202 ์ƒํƒœ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…(ํ–„๋ฒ„๊ฑฐ๊ฐ€ ๋‹ค ๋งŒ๋“ค์–ด์ง)์˜ ์™„๋ฃŒ ์—ฌ๋ถ€๋Š” ์–ธ์ œ ํ™•์ธํ• ๊นŒ?

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์˜ ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ Callback ๊ณผ Polling ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

202 Accepted

  • ์ฝœ๋ฐฑ(Callback)์€ ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์•Œ์•„์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ํ–„๋ฒ„๊ฑฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉด ์ง์›(Callback)์ด ๋ฒˆํ˜ธ(์ž์› ์‹๋ณ„์ž)๋ฅผ ๋ถ€๋ฅด๊ณ  ๊ณ ๊ฐ์€ ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋ฐ›์•„๊ฐ„๋‹ค.
  • ํด๋ง(Polling)์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ•ด๋‹น ์ž‘์—…์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ณ ๊ฐ์€ ๋ฒˆํ˜ธํ‘œ(์ž์› ์‹๋ณ„์ž)๋ฅผ ๋“ค๊ณ  ์ง์›(Polling)์—๊ฒŒ ๊ฐ€์„œ ํ–„๋ฒ„๊ฑฐ ์ฃผ๋ฌธ์ด ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ๋ฌผ์–ด๋ณด๊ณ  ์™„๋ฃŒ๋˜๋ฉด ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋ฐ›์•„๊ฐ„๋‹ค.

๐Ÿ“ 202 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ (Polling)

1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— XML ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•ด POST ์š”์ฒญ ํ•œ๋‹ค.

202 Accepted

 

2. ์„œ๋ฒ„๋Š” ์š”์ฒญ์ด ์Šน์ธ๋˜์—ˆ๊ณ  ์•„์ง ์ฒ˜๋ฆฌ์ค‘์ด๋ผ 202 ์‘๋‹ต์„ ํ•œ๋‹ค.

202 Accepted

 

3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ GET ์š”์ฒญ์„ ํ•œ๋‹ค.

202 Accepted

 

4. ์„œ๋ฒ„๋Š” ์•„์ง ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์ƒํƒœ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•œ๋‹ค. (๋˜‘๊ฐ™์ด 202)

202 Accepted

 

3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žฌ์ฐจ GET ์š”์ฒญ์„ ํ•œ๋‹ค.

202 Accepted

 

4. ์š”์ฒญ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋œ ์„œ๋ฒ„๋Š” ์ƒํƒœ ์š”์ฒญ์— ๋Œ€ํ•œ 200 ์„ฑ๊ณต ์‘๋‹ต์„ ํ•œ๋‹ค.

202 Accepted

 

5. ํด๋ผ์ด์–ธํŠธ๋Š” 200 ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•œ ํ›„ ํด๋ง์„ ์ค‘์ง€ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์กฐ์น˜๋ฅผ ์ทจํ•œ๋‹ค.


203 Non-Authoritative Information

  • Non Authoritative Information โ‡ข ํ—ค๋”์— ๋“ค์–ด์žˆ๋Š” ์ •๋ณด๊ฐ€ ์›๋ž˜ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํ”„๋ก์‹œ์˜ ์‚ฌ๋ณธ์—์„œ ์™€์„œ ์‹ ๋ขฐ ํ•  ์ˆ˜ ์—†๋Š” ์ •๋ณด๋ฅผ ์˜๋ฏธ
  • ์›น์‚ฌ์ดํŠธ๊ฐ€ ํ”„๋ก์‹œ ์„œ๋ฒ„(CDN ๋˜๋Š” VPN ๋˜๋Š” ๊ธฐํƒ€)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ์ƒํƒœ ์ฝ”๋“œ
  • ์ฆ‰, ์š”์ฒญ์€ ์„ฑ๊ณตํ–ˆ์ง€๋งŒ payload๊ฐ€ ์›๋ณธ ์„œ๋ฒ„์˜ 200(OK) ์‘๋‹ต์ด ๋ณ€ํ™˜ ํ”„๋ก์‹œ์— ์˜ํ•ด ์ˆ˜์ •๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ํ”„๋ก์‹œ๊ฐ€ ๋ฆฌ์†Œ์Šค์˜ ์‚ฌ๋ณธ์„ ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ, ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ์ •๋ณด(ํ—ค๋”)๋ฅผ ๊ฒ€์ฆํ•˜์ง€ ๋ชปํ•œ(ํ˜น์€ ์•ˆ ํ•œ) ๊ฒฝ์šฐ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹จ, 203(์‹ ๋ขฐ ํ• ์ˆ˜์—†๋Š” ์ •๋ณด) ์ƒํƒœ ์ฝ”๋“œ ๋Œ€์‹  214(๋ณ€ํ™˜์ด ์ ์šฉ๋œ ๊ฒฝ๊ณ ) ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค.

203 Non-Authoritative Information


204 No Content

  • No Content โ‡ข ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์€ ์ •์ƒ์ ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ œ๊ณตํ•  ์ปจํ…์ธ ๊ฐ€ ์—†๋‹ค.
  • ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ, ์‘๋‹ต ํŽ˜์ด๋กœ๋“œ ๋ณธ๋ฌธ์— ๋‹ด์„ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ ˆ๋Œ€์ ์ธ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋‹ค์Œ ๋ฉ”์„œ๋“œ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
    • POST : ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์š”์ฒญ์„ ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์‘๋‹ต์€ ํ•„์š”์—†์„๋•Œ
    • PUT : ์ž์› ์ˆ˜์ • ์š”์ฒญ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ์—†์„ ๋•Œ
    • DELETE : ์‚ญ์ œํ•  ์ž์›์ด ์—†์–ด ์‘๋‹ต์ด ๋ฌด์˜๋ฏธ ํ• ๋•Œ (์ฒ˜๋ฆฌ ์ž์ฒด๋Š” ์„ฑ๊ณต์ด๋‹ˆ 2XX ๋ฒˆ๋Œ€ ์ด์ง€๋งŒ ์ž์›์ด ์‚ญ์ œ๋˜์ง€๋Š” ์•Š์•˜์œผ๋‹ˆ ์ด๋Ÿฐ ์• ๋งค๋ชจํ˜ธํ•œ ์ƒํ™ฉ์— ์‚ฌ์šฉ)
  • ์ด๋Ÿฐ ๋ชจํ˜ธ์„ฑ ๋•Œ๋ฌธ์— 204 ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” HTTP API๋Š” ํ”ํ•˜์ง€ ์•Š๋‹ค.
  • 204 ์‘๋‹ต์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์บ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“ 204 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

204๋ฅผ ์ดํ•ดํ•˜๋Š” ์ข‹์€ ์˜ˆ๋กœ๋Š” ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์˜ SAVE ๋ฒ„ํŠผ์„ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ๊นŒ์ง€ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ €์žฅ๋งŒ ํ•˜๊ณ  ๋ณ„๋‹ค๋ฅธ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†๊ณ  ํŽ˜์ด์ง€ ์ „ํ™˜๋„ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„๋Š” SAVE ์˜ ๊ฒฐ๊ณผ๋กœ ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋„ ์ „์†กํ•ด์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค.

204 No Content
204 No Content

์ฃผ์˜ํ•  ์ ์€ 200์œผ๋กœ ์‘๋‹ตํ•˜๊ณ  body์— null, {}, [] ๋“ฑ์œผ๋กœ ๋นˆ ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ตํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 204์˜ ๊ฒฝ์šฐ ์•„์˜ˆ HTTP ์‘๋‹ต body๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋‹ค.


205 Reset Content

  • Reset Content โ‡ข ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ผ๋Š” ์˜๋ฏธ
  • ํ˜„์žฌ ํŽ˜์ด์ง€์— ์žˆ๋Š” HTML ํผ์— ์ฑ„์›Œ์ง„ ๋ชจ๋“  ๊ฐ’์„ ๋น„์šฐ๊ฑฐ๋‚˜, ์บ”๋ฒ„์Šค ์ƒํƒœ๋ฅผ ์žฌ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ• ๋•Œ, ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ํ™”๋ฉด์˜ UI๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๋„๋ก ์ง€์‹œํ•œ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
  • PUT ๋ฉ”์„œ๋“œ ๋™์ž‘๊ณผ ํ•จ๊ป˜ ์ด์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

206 Partial Content

  • Partial Content โ‡ข ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฒ€์ƒ‰๋˜์—ˆ์ง€๋งŒ ๋ฆฌ์†Œ์Šค ๋ฒ”์œ„์˜ ์ผ๋ถ€๋งŒ ๋ฐ˜ํ™˜๋˜๊ณ  ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ„
  • ์ด๋ฏธ์ง€๋‚˜ ๋™์˜์ƒ๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ๋ฏธ๋””์–ด ํŒŒ์ผ์„ ์š”์ฒญํ•˜์˜€์„ ๋•Œ, ์•„์ง ์™„์ „ํžˆ ๋กœ๋“œ ๋˜์ง€ ์•Š์•˜์Œ์—๋„ ํŠน์ • ๋ฒ”์œ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ํ• ๋•Œ ์“ฐ์ธ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„๋Š” ์ „์ฒด ํŒŒ์ผ ๋Œ€์‹  ์š”์ฒญ๋œ ๋ฒ”์œ„๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์กฐ๊ฐ์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ๋ฏธ๋””์–ด ํŒŒ์ผ์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•  ๋•Œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์—์„œ Range ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ด ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์‘๋‹ต ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“ 206 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์—์„œ ๋Œ€์šฉ๋Ÿ‰ ๋™์˜์ƒ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ ์ด ๊ฒฝ์šฐ ํŒŒ์ผ ์ž์ฒด๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์šด๋กœ๋“œ ํ”„๋กœ์„ธ์Šค์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ, ํด๋ผ์ด์–ธํŠธ๋Š” ํŒŒํŠธ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ฒ”์œ„ ์š”์ฒญ/์‘๋‹ต ๋ฐ›์œผ๋ ค๊ณ  ํ•œ๋‹ค. (์ŠคํŠธ๋ฆฌ๋ฐ)

206 Partial Content

 

1. ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ GET ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ Range ํ—ค๋”๋ฅผ ํ†ตํ•ด ์˜ˆ์ƒ ๋ฒ”์œ„๋ฅผ ์•Œ๋ฆฐ๋‹ค.

206 Partial Content

 

2. ์„œ๋ฒ„๋Š” ํ˜„์žฌ ๋‹ค์šด๋กœ๋“œ๋œ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•ด์ค€๋‹ค.

  • ์‘๋‹ต์—๋Š” Content-Range์™€ Date ํ—ค๋”๋ฅผ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•ด์•ผ ํ•˜๋ฉฐ, Etag์™€ Content-Location์ค‘ ํ•˜๋‚˜์˜ ํ—ค๋”๋„ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.
  • Content-Range: bytes 0-1023/2048 : ์—ฌ๊ธฐ์„œ 2048๋Š” ์ „์ฒด ํŒŒ์ผ์˜ ์ด ๊ธธ์ด(๋ฐ”์ดํŠธ)์ด๊ณ , 0-1024์€ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋œ ๋ถ€๋ถ„ ์˜์ƒ ๋ฐ์ดํ„ฐ์ธ ๋ฐ”์ดํŠธ ๋ฒ”์œ„์ด๋‹ค.
  • ๋งŒ์ผ ์—ฌ๋Ÿฌ ์ฝ˜ํ…์ธ  ๋ฒ”์œ„๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด ๊ฐ ๋ฒ”์œ„๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Content-Range: bytes 0-500/1234, 1000-1500/1234

206 Partial Content

 

3. ํด๋ผ์ด์–ธํŠธ๋Š” ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์„ ๋‹ค์‹œ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์— Range ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚จ์€ ์˜ˆ์ƒ ๋ฒ”์œ„๋ฅผ ์•Œ๋ฆฐ๋‹ค.

206 Partial Content

 

4. ์„œ๋ฒ„๋Š” ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•ด์ค€๋‹ค.

206 Partial Content


207 Multi-Status

  • Multi Status โ‡ข ์—ฌ๋Ÿฌ ์‘๋‹ต์ด ํ˜ผํ•ฉ๋˜์–ด ์žˆ์„๋•Œ ๋‚˜์˜ค๋Š” ์ƒํƒœ์ฝ”๋“œ
  • ์ฆ‰, ์š”์ฒญ์ด ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์‘๋‹ต์„ 207 Multi Status ๋ฅผ ํ†ตํ•ด ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.
  • ์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์‘๋‹ต์€ ๊ธฐ๋ณธ์ ์œผ๋กœ XML๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด, ํ•˜์œ„ ์š”์ฒญ ์ˆ˜์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐœ๋ณ„ ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค. (JSON์œผ๋กœ๋„ ์‘๋‹ต ์„ค์ •์ด ๊ฐ€๋Šฅ)
  • ํ•ด๋‹น ์ฝ”๋“œ๋Š” WebDAV(Web Distributed Authoring and Vesioning)์— ์ด์šฉ๋œ๋‹ค.
[ WebDAV ๋ž€? ]

WebDAV(Web Distributed Authoring and Vesioning)๋Š” ํ•˜์ดํผํ…์ŠคํŠธ ์ „์†ก ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์œผ๋กœ, ์›น ์„œ๋ฒ„์— ์ €์žฅ๋œ ๋ฌธ์„œ์™€ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งค๊ฐœ์ฒด๋กœ ๋งŒ๋“ค์–ด์„œ, ํŽธ์ง‘ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค ์‚ฌ์ด์— ํ˜‘์—…์„ ์†์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

207 Multi-Status
207 Multi-Status

 

๐Ÿ“ 207 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

1. ํด๋ผ์ด์–ธํŠธ๋Š” XML ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ๊ฒŒ์‹œํ•˜๊ธฐ์œ„ํ•ด POST ์š”์ฒญํ•œ๋‹ค (๋‹จ ์ด ์ž‘์—…์—๋Š” 3๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”)

207 Multi-Status

 

2. ๋”ฐ๋ผ์„œ ์„œ๋ฒ„๋Š” ๊ฐ ๋ฆฌ์†Œ์Šค์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

3. ๋ฉ”์„ธ์ง€ ๋ณธ๋ฌธ์„ ๋ณด๋ฉด, ์ฒ˜์Œ ๋‘ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉ์€ ์„ฑ๊ณต์ ์ด์ง€๋งŒ ์„ธ ๋ฒˆ์งธ ๋ฆฌ์†Œ์Šค๋Š” ์ž ๊ฒจ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์ด ์„ฑ๊ณต์ธ์ง€ ์‹คํŒจ์ธ์ง€ ๊ฒฐ์ •ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ํ–‰๋™ํ•˜๋Š” ๊ฒƒ์€ ํด๋ผ์ด์–ธํŠธ์˜ ๋ชซ์ด๋‹ค.

207 Multi-Status


208 Already Reported

  • Already Reported โ‡ข ์ด๋ฏธ ์•ž์—์„œ ์—ด๊ฑฐ๋˜์—ˆ์Œ์„ ์˜๋ฏธ
  • ์ฆ‰, ์•ž์—์„œ ์ด๋ฏธ ๋ณด๊ณ ๋œ ์ •๋ณด์ด๋‹ˆ๊นŒ, ์ด ์ •๋ณด๋ฅผ ๋‹ค์‹œ ํฌํ•จํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ์ด์ „์— ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.
  • PROPFIND ์ด๋ผ๋Š” HTTP ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์‘๋‹ต ์†์„ฑ์œผ๋กœ์จ ์“ฐ์ด๋ฉฐ, ๋™์ผ ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ฐ”์ธ๋“œ๋œ ๋ณต์ˆ˜์˜ ๋‚ด๋ถ€ ๋ฉค๋ฒ„๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์—ด๊ฑฐํ•˜๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • ๋˜ํ•œ 208 ์ƒํƒœ ์ฝ”๋“œ๋Š” HTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ณ , ํŽ˜์ด๋กœ๋“œ ๋ณธ๋ฌธ์—๋งŒ ์“ฐ์ด๋Š” ํŠน์„ฑ์ด ์žˆ๋‹ค.
  • ํ•ด๋‹น ์ฝ”๋“œ๋Š” WebDAV(Web Distributed Authoring and Vesioning)์— ์ด์šฉ๋œ๋‹ค.
[ WebDAV ํ™•์žฅ ๋ฉ”์„œ๋“œ ]

COPY - ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์œ„์น  ๋ณต์‚ฌ ์‹œ ์‚ฌ์šฉํ•œ๋‹ค.
MOVE - ํŒŒ์ผ ์ด๋™ ๋ฐ ํŒŒ์ผ ํ™•์žฅ์ž ๋ณ€๊ฒฝ ์‹œ ์‚ฌ์šฉํ•œ๋‹ค.
LINK - ๋‹ค๋ฅธ ์œ„์น˜๋กœ์˜ ๋งํฌ๋‚˜ ๋งํฌ ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉํ•œ๋‹ค.
UNLINK - LINK์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๋งํฌ ์‚ญ์ œ ์‹œ ์‚ฌ์šฉํ•œ๋‹ค.
CONNECT - ์›น ์„œ๋ฒ„์— ํ”„๋ก์‹œ ๊ธฐ๋Šฅ์„ ์š”์ฒญํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
PROPFIND - ๋ฆฌ์†Œ์Šค๋ฅผ ์œ„ํ•œ ์†์„ฑ์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ์›น์˜ ํŒŒ์ผ ๋ชฉ๋ก๊ณผ ์†์„ฑ์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค.
PROPPATCH - ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์†Œ๋“œ
MKCOL - ์ปฌ๋ ‰์…˜(๋””๋ ‰ํ† ๋ฆฌ , ํด๋”)์„ ์ƒ์…ฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ
LOCK - ๋ฆฌ์†Œ์Šค์— Overwrite ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ LOCK์„ ๊ฑด๋‹ค.
UNLOCK - ๋ฆฌ์†Œ์Šค์— Overwrite ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ LOCK์„ ๊ฑด๋‹ค.

 

๐Ÿ“ 208 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์›น์˜ ํŒŒ์ผ ๋ชฉ๋ก๊ณผ ์†์„ฑ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” PROFIND ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

208 Already Reported

 

2. ์„œ๋ฒ„๋Š” ํŒŒ์ผ ๋ชฉ๋ก์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ์„œ ์œ„์—์„œ ๋ฐฐ์šด 207 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•œ๋‹ค.

3. ์ด๋•Œ ๊ฐ ์‘๋‹ต์— ๋Œ€ํ•œ resource๊ฐ€ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋Š” ์ด๋ฏธ ์—ด๊ฑฐ๋œ ๊ฒƒ์„ ์ธ์‹ํ•˜๊ณ  208 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ธ๋‹ค.

208 Already Reported


218 This is fine

  • This is fine โ‡ข ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์—ฌ๊ธด(apache ์„œ๋ฒ„) ๊ดœ์ฐฎ์•„~ ์˜๋ฏธ
  • ์•„ํŒŒ์น˜(Apache) ์›น ์„œ๋ฒ„ ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋น„๊ณต์‹ HTTP ์‘๋‹ต ์ฝ”๋“œ
  • ๊ทธ๋ž˜์„œ 218 ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์ˆ˜์‹ ๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” Apache ์›น ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ  ์žˆ์Œ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณดํ†ต ์˜ค๋ฅ˜ ์ƒํƒœ ์ฝ”๋“œ(4XX ๋˜๋Š” 5XX)์— ๋Œ€ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ์˜ค๋ฅ˜ ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€๋งŒ, 218 ์‘๋‹ต์„ ์ด์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  Apache๊ฐ€ ํ•˜๋ผ๋Š” ๋Œ€๋กœ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ํ–‰์œ„๊ฐ€ ๋ณ€ํ˜•๋  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ง‘(์„œ๋ฒ„)๊ฐ€ ํ™”์žฌ(์˜ค๋ฅ˜)๊ฐ€ ๋‚˜๊ณ  ์žˆ๋Š”๋ฐ ๊ฐœ(์•„ํŒŒ์น˜)๊ฐ€ 218(์—ฌ๊ธด ๊ดœ์ฐฎ์•„) ๋ผ๊ณ  ํ—›์ง“๊ฑฐ๋ฆฌ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

218 This is fine


226 IM Used

  • IM Used โ‡ข ์„œ๋ฒ„๊ฐ€ GET ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์˜๋ฌด๋ฅผ ๋‹คํ–ˆ๋‹ค๋Š” ์˜๋ฏธ
  • ์ฆ‰, ์š”์ฒญ์ด ํ˜„์žฌ ์ƒํƒœ์— ๋ฐ˜์šฉ๋˜์—ˆ์Œ์„ ๋œปํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค. 
  • HTTP Delta Encoding ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜๋ฉด ๋ฐ˜ํ™˜๋˜๋Š” ์ƒํƒœ ์ฝ”๋“œ์ด๋‹ค.
  • ์—ฌ๊ธฐ์„œ IM์€ I am ์„ ๋‚˜ํƒ€๋‚ด๋Š”๊ฒƒ์ด ์•„๋‹Œ Instance Manipulation(์ธ์Šคํ„ด์Šค ์กฐ์ž‘)์˜ ์•ฝ์ž์ด๋‹ค.

 

๐Ÿ“ HTTP Delta Encoding

์˜ˆ๋ฅผ ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์‘๋‹ต๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์บ์‹œํ•ด ๋†“์•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

๋ณดํ†ต ๋ฆฌ์†Œ์Šค๊ฐ€ ์„œ๋ฒ„ ์ธก์—์„œ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ๋ฆฌ์†Œ์Šค ๋ณต์‚ฌ๋ณธ์„ ์บ์‹ฑํ•ด ๋†“์•˜์ง€๋งŒ ์ˆ˜์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ˆ˜์ • ๋ถ€๋ถ„์ด ์‚ฌ์†Œํ•œ ์ž‘์€ ๋ถ€๋ถ„์ผ ๊ฒฝ์šฐ, ์ „์ฒด ์ƒˆ ๋ฒ„์ „์„ ๋‹ค์‹œ ๋ณด๋‚ด๋Š” ๊ฑด ์–ด์ฐŒ๋ณด๋ฉด ์•ฝ๊ฐ„ ๋‚ญ๋น„ ์ผ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์—์„œ ์ž ์‹œ ์†Œ๊ฐœํ•œ HTTP Delta Encoding ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์ผ๋ถ€ ํŒจ์น˜ ํ˜•์‹ ํ˜น์€ diff ํ˜•์‹์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ๋‹ค์‹œ ๋ณด๋‚ด๋Š” ์‹์œผ๋กœ ์ฒ˜๋ฆฌ ํ• ์ˆ˜ ์žˆ๋‹ค. (ํŠธ๋ž˜ํ”ฝ ์ตœ์ ํ™”)

๋งŒ์ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฅผ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„๊ฐ€ Delta ์ธ์ฝ”๋”ฉ์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ 226 IM Used ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ฒŒ ๋œ๋‹ค. ๋งŒ์ผ ์„œ๋ฒ„๊ฐ€ 200 OK ๋ฅผ ๋ณด๋‚ธ๋‹ค๋ฉด ์„œ๋ฒ„๊ฐ€ ์ธ์ฝ”๋”ฉ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์ด ๋œ๋‹ค.

 

[HTTP] ๐ŸŒ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ Cache ์ „๋žต & ํ—ค๋” ๋‹ค๋ฃจ๊ธฐ

์›น๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ(Cache) ์›๋ฆฌ ์ปดํ“จํ„ฐ ์šด์˜์ฒด์ œ์—์„œ์˜ ์บ์‹œ(Cache)๋Š” ์ฃผ๊ธฐ์–ต์žฅ์น˜์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋“œ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๋‹ˆ ์บ์‹œ ์ €์žฅ์†Œ์— ์ž„์‹œ

inpa.tistory.com


๐Ÿ“ 226 ์ƒํƒœ์ฝ”๋“œ ํ๋ฆ„ ์˜ˆ์‹œ

1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ PDF๋ฅผ ์ตœ์ดˆ ์š”์ฒญํ•œ๋‹ค. ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” Accept-encoding ํ—ค๋”๋ฅผ ์ด์šฉํ•˜์—ฌ gzip ์••์ถ•์œผ๋กœ ๋ณด๋‚ด๋ผ๊ณ  ์š”์ฒญํ•œ๋‹ค.

226 IM Used

 

2. ์„œ๋ฒ„๋Š” gzip์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ PDF ํŒŒ์ผ๊ณผ ํŒŒ์ผ์˜ ์ˆ˜์ • ์ƒํƒœ๋ฅผ ์‹๋ณ„ํ•˜๋Š” Etag ํ—ค๋” ๊ทธ๋ฆฌ๊ณ  200 OK ์ƒํƒœ ์ฝ”๋“œ ์‘๋‹ต์„ ํ•œ๋‹ค.

226 IM Used

 

3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ด PDF๋ฅผ ์บ์‹ฑํ•ด ๋†“๋Š”๋‹ค.

 

4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค์‹œ PDF๋ฅผ ์žฌ์ฐจ ์š”์ฒญํ•œ๋‹ค. ์ด๋•Œ If-none-match ํ—ค๋”๋ฅผ ํ†ตํ•ด PDF๊ฐ€ ์„œ๋ฒ„์—์„œ ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์‚ฌํ•ญ์„ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  A-IM ํ—ค๋”๋ฅผ ์ง€์ •ํ•˜์—ฌ Delta ์ธ์ฝ”๋”ฉ ํ˜•์‹์˜ ํŒŒ์ผ์„ ์ˆ˜๋ฝํ•  ์˜ํ–ฅ์ด ์žˆ์Œ์„ ์•Œ๋ฆฐ๋‹ค.

226 IM Used

 

5. ์„œ๋ฒ„๋Š” If-none-match ํ—ค๋”์™€ Etag ํ—ค๋”์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ํŒŒ์ผ ์ˆ˜์ • ์œ ๋ฌด๋ฅผ ํŒ๋‹จํ•œ๋‹ค.

5-1. ๋งŒ์•ฝ PDF๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด 304 Not Modified๋ฅผ ์‘๋‹ตํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋Š” ์บ์‹ฑํ•ด๋†“์€๊ฑธ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ฒŒ ๋œ๋‹ค. 

5-2. ๋งŒ์•ฝ PDF๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‹ค๋ฉด 226 IM Used์™€ ํ•จ๊ป˜ diff ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ถ€๋ถ„๋งŒ ๋ณด๋‚ด์ฃผ๊ฒŒ๋œ๋‹ค. (๋งŒ์ผ ์„œ๋ฒ„๊ฐ€ Delta ์ธ์ฝ”๋”ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ƒˆ PDF์™€ ํ•จ๊ป˜ 200 OK๋ฅผ ์‘๋‹ตํ•˜๊ฒŒ ๋œ๋‹ค)

226 IM Used


# ์ฐธ๊ณ ์ž๋ฃŒ

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

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

https://debugmyweb.com/status_code/203-non-authoritative-information/

https://robotecture.com/tech/206-http-status-code-what-it-is-and-how-to-use-it/

https://feel5ny.github.io/2019/08/17/HTTP_003_03/ 

https://www.bloggingbig.com/http-status/http-status-code-207-multi-status/

https://http.dev/status