Skip to content

Latest commit

ย 

History

History
241 lines (150 loc) ยท 9.45 KB

File metadata and controls

241 lines (150 loc) ยท 9.45 KB

HTTP ์ƒํƒœ์ฝ”๋“œ

์š”์•ฝ : ์ƒํƒœ ์ฝ”๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ ์ฃผ๋กœ 1xx(Informational), 2xx(Successful), 3xx(Redirection), 4xx(Client Error), 5xx(Server Error)๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค. ๋ชจ๋ฅด๋Š” ์ƒํƒœ ์ฝ”๋“œ๋Š” ์ƒ์œ„ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” ์ƒˆ๋กœ์šด ์ƒํƒœ ์ฝ”๋“œ ์ถ”๊ฐ€์—๋„ ๋ณ€๊ฒฝ ์—†์ด ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ตฌ๋ถ„์€ ์š”์ฒญ ๋ฐ ์‘๋‹ต์˜ ์ƒํƒœ๋ฅผ ๋ช…ํ™•ํžˆ ์ „๋‹ฌํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋„์™€์ค€๋‹ค.

1. HTTP ์ƒํƒœ์ฝ”๋“œ

์‚ฌ์ง„ ๋ฐ ๊ฐ•์˜ ์ถœ์ฒ˜ : ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹

๐Ÿ–• ์ƒํƒœ ์ฝ”๋“œ

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์‘๋‹ต์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ
  1. 1xx (Informational): ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ์ค‘(๊ฑฐ์˜ ์‚ฌ์šฉ X)
  2. 2xx (Successful): ์š”์ฒญ ์ •์ƒ ์ฒ˜๋ฆฌ
  3. 3xx (Redirection): ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ํ–‰๋™์ด ํ•„์š”
  4. 4xx (Client Error): ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜, ์ž˜๋ชป๋œ ๋ฌธ๋ฒ•๋“ฑ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ
  5. 5xx (Server Error): ์„œ๋ฒ„ ์˜ค๋ฅ˜, ์„œ๋ฒ„๊ฐ€ ์ •์ƒ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•จ

๐Ÿ‘† ๋งŒ์•ฝ ๋ชจ๋ฅด๋Š” ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด?

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋ฉด?
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์ƒ์œ„ ์ƒํƒœ์ฝ”๋“œ๋กœ ํ•ด์„ํ•ด์„œ ์ฒ˜๋ฆฌ
  • ๋ฏธ๋ž˜์— ์ƒˆ๋กœ์šด ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด๋„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„ ๋จ
  • ์˜ˆ)
    • 299 ??? -> 2xx (Successful)
    • 451 ??? -> 4xx (Client Error)
    • 599 ??? -> 5xx (Server Error)

2. 2XX -์„ฑ๊ณต

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ

1) 200 OK

  • ์š”์ฒญ ์„ฑ๊ณต

2) 201 Created

  • ์š”์ฒญ ์„ฑ๊ณตํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ๋จ

3) 202 Accepted

  • ์š”์ฒญ์ด ์ ‘์ˆ˜๋˜์—ˆ์œผ๋‚˜ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Œ
  • ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๊ฐ™์€ ๊ณณ์—์„œ ์‚ฌ์šฉ
  • ์˜ˆ) ์š”์ฒญ ์ ‘์ˆ˜ ํ›„ 1์‹œ๊ฐ„ ๋’ค์— ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•จ
  • ์ž˜ ์‚ฌ์šฉ X

4) 204 No Content

  • ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ, ์‘๋‹ต ํŽ˜์ด๋กœ๋“œ ๋ณธ๋ฌธ์— ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ
  • ์˜ˆ) ์›น ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์—์„œ save ๋ฒ„ํŠผ
  • save ๋ฒ„ํŠผ์˜ ๊ฒฐ๊ณผ๋กœ ์•„๋ฌด ๋‚ด์šฉ์ด ์—†์–ด๋„ ๋œ๋‹ค.
  • save ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๊ฐ™์€ ํ™”๋ฉด์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ฒฐ๊ณผ ๋‚ด์šฉ์ด ์—†์–ด๋„ 204 ๋ฉ”์‹œ์ง€(2xx)๋งŒ์œผ๋กœ ์„ฑ๊ณต์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. 3XX - ๋ฆฌ๋‹ค์ด๋ ‰์…˜1

  • ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์œ ์ € ์—์ด์ „ํŠธ(=์›น ๋ธŒ๋ผ์šฐ์ €)์˜ ์ถ”๊ฐ€ ์กฐ์น˜ ํ•„์š”

๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ดํ•ด

  • ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” 3xx ์‘๋‹ต์˜ ๊ฒฐ๊ณผ์— Location ํ—ค๋”๊ฐ€ ์žˆ์œผ๋ฉด, Location ์œ„์น˜๋กœ ์ž๋™ ์ด๋™(๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)

์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ๋ฆ„

์ข…๋ฅ˜

  1. ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ : ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ URI๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ด๋™
  • ์˜ˆ) /members -> /users
  • ์˜ˆ) /event -> /new-event
  1. ์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ : ์ผ์‹œ์ ์ธ ๋ณ€๊ฒฝ
  • ์ฃผ๋ฌธ ์™„๋ฃŒ ํ›„ ์ฃผ๋ฌธ ๋‚ด์—ญ ํ™”๋ฉด์œผ๋กœ ์ด๋™
  • PRG: Post/Redirect/Get
  1. ํŠน์ˆ˜ ๋ฆฌ๋‹ค์ด๋ ‰์…˜
  • ๊ฒฐ๊ณผ ๋Œ€์‹  ์บ์‹œ๋ฅผ ์‚ฌ์šฉ

1) ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(301, 308)

  • ๋ฆฌ์†Œ์Šค์˜ URI๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ด๋™
  • ์›๋ž˜์˜ URL๋ฅผ ์‚ฌ์šฉX, ๊ฒ€์ƒ‰ ์—”์ง„ ๋“ฑ์—์„œ๋„ ๋ณ€๊ฒฝ ์ธ์ง€

301 Moved Permanently

  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ , ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Œ(MAY)
  • ์™„์ „ ์ƒˆ๋กœ์šด ์ด๋ฒคํŠธ ํŽ˜์ด์ง€(๋ฉ”์„ธ์ง€ ์ œ๊ฑฐ๋กœ ์ธํ•ด)

308 Permanent Redirect

  • 301๊ณผ ๊ธฐ๋Šฅ์€ ๊ฐ™์Œ
  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ ์œ ์ง€(์ฒ˜์Œ POST๋ฅผ ๋ณด๋‚ด๋ฉด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋„ POST ์œ ์ง€)

2) ์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(302, 307, 303)

  • ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
  • ๋ฆฌ์†Œ์Šค์˜ URI๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ๋ณ€๊ฒฝ
  • ์˜ค๋˜๋ฐ๋กœ ๋“ค์–ด์™€์•ผ ํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ฒ€์ƒ‰ ์—”์ง„ ๋“ฑ์—์„œ URL์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ๋จ

302 Found

  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ , ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Œ(MAY) - ๋Œ€๋ถ€๋ถ„ ๋ฐ”๋€Œ์ง€๋งŒ ์•„๋งˆ๋ผ์„œ ํ™•์‹ค์น˜๋Š” ์•Š์Œ

307 Temporary Redirect

  • 302์™€ ๊ธฐ๋Šฅ์€ ๊ฐ™์Œ
  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ ์œ ์ง€(์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ๋œ๋‹ค. MUST NOT)

303 See Other

  • 302์™€ ๊ธฐ๋Šฅ์€ ๊ฐ™์Œ
  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€๊ฒฝ

3) PRG: Post/Redirect/Get(์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ - ์˜ˆ์‹œ)

  • POST๋กœ ์ฃผ๋ฌธํ›„์— ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด?
  • ์ƒˆ๋กœ๊ณ ์นจ์€ ๋‹ค์‹œ ์š”์ฒญ
  • ์ค‘๋ณต ์ฃผ๋ฌธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค,

PRG ์‚ฌ์šฉ ์ „

  • ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜๋ฉด ์ค‘๋ณต์ฃผ๋ฌธ์ด ๋˜์–ด๋ฒ„๋ฆผ
  • ์ƒˆ๋กœ๊ณ ์นจ : ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์ฒญ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— POST๋กœ ํ•œ ๋ฒˆ ๋” ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ค‘๋ณต์ฃผ๋ฌธ์ด ๋˜์–ด๋ฒ„

PRG ์‚ฌ์šฉ ํ›„

  • POST๋กœ ์ฃผ๋ฌธํ›„์— ์ƒˆ๋กœ ๊ณ ์นจ์œผ๋กœ ์ธํ•œ ์ค‘๋ณต ์ฃผ๋ฌธ ๋ฐฉ์ง€
  • URL์ด POST๋กœ ์ฃผ๋ฌธํ›„์— ์ฃผ๋ฌธ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ GET ๋ฉ”์„œ๋“œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ
  • ์ƒˆ๋กœ๊ณ ์นจํ•ด๋„ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ GET์œผ๋กœ ์กฐํšŒ
  • ์ค‘๋ณต ์ฃผ๋ฌธ ๋Œ€์‹ ์— ๊ฒฐ๊ณผ ํ™”๋ฉด๋งŒ GET์œผ๋กœ ๋‹ค์‹œ ์š”์ฒญ
  • ์„œ๋ฒ„์˜ ๋ถ€๋‹ด๋„ ์ค„์–ด๋“ฆ(๋ฌผ๋ก  ์„œ๋ฒ„๋„ ๊ฐ™์€ ์ฃผ๋ฌธ๋ฒˆํ˜ธ ์•ˆ๋˜๊ฒŒ ๋ง‰์•„์•ผ )

4) ๊ทธ๋ž˜์„œ ๋ญ˜ ์จ์•ผ ํ•˜๋‚˜์š”?(302, 307, 303)

์ž ๊น ์ •๋ฆฌ

  1. 302 Found -> GET์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Œ
  2. 307 Temporary Redirect -> ๋ฉ”์„œ๋“œ๊ฐ€ ๋ณ€ํ•˜๋ฉด ์•ˆ๋จ
  3. 303 See Other -> ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€๊ฒฝ

์—ญ์‚ฌ

  • ์ฒ˜์Œ 302 ์ŠคํŽ™์˜ ์˜๋„๋Š” HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ
  • ๊ทธ๋Ÿฐ๋ฐ ์›น ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ๋Œ€๋ถ€๋ถ„ GET์œผ๋กœ ๋ฐ”๊พธ์–ด๋ฒ„๋ฆผ**(์ผ๋ถ€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘)**
  • ๊ทธ๋ž˜์„œ ๋ชจํ˜ธํ•œ 302๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ๋ช…ํ™•ํ•œ 307, 303์ด ๋“ฑ์žฅํ•จ(301 ๋Œ€์‘์œผ๋กœ 308๋„ ๋“ฑ์žฅ)

ํ˜„์‹ค

  • 307, 303์„ ๊ถŒ์žฅํ•˜์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ ์ด๋ฏธ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด 302๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
  • ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์‹œ์— GET์œผ๋กœ ๋ณ€ํ•ด๋„ ๋˜๋ฉด ๊ทธ๋ƒฅ 302๋ฅผ ์‚ฌ์šฉํ•ด๋„ ํฐ ๋ฌธ์ œ ์—†์Œ

5) ๊ธฐํƒ€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(300 304)

  1. 300 Multiple Choices: ์•ˆ์“ด๋‹ค.
  2. 304 Not Modified
  • ์บ์‹œ๋ฅผ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ
  • ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Œ์„ ์•Œ๋ ค์ค€๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ์ปฌPC์— ์ €์žฅ๋œ ์บ์‹œ๋ฅผ ์žฌ์‚ฌ์šฉํ•œ๋‹ค. (์บ์‹œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•œ๋‹ค.)
  • ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
  1. 304 ์‘๋‹ต์€ ์‘๋‹ต์— ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํฌํ•จํ•˜๋ฉด ์•ˆ๋œ๋‹ค. (๋กœ์ปฌ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ)
  • ์กฐ๊ฑด๋ถ€ GET, HEAD ์š”์ฒญ์‹œ ์‚ฌ์šฉ

4. 4XX - ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜, 5XX - ์„œ๋ฒ„ ์˜ค๋ฅ˜

๐Ÿ–• 4xx (Client Error) : ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜

  • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์ž˜๋ชป๋œ ๋ฌธ๋ฒ•๋“ฑ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ
  • ์˜ค๋ฅ˜์˜ ์›์ธ์ด ํด๋ผ์ด์–ธํŠธ์— ์žˆ์Œ
  • ์ค‘์š”! ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด๋ฏธ ์ž˜๋ชป๋œ ์š”์ฒญ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋˜‘๊ฐ™์€ ์žฌ์‹œ๋„๊ฐ€ ์‹ค ํŒจํ•จ

1) 400 Bad Request

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž˜๋ชป๋œ ์š”์ฒญ์„ ํ•ด์„œ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ
  • ์š”์ฒญ ๊ตฌ๋ฌธ, ๋ฉ”์‹œ์ง€ ๋“ฑ๋“ฑ ์˜ค๋ฅ˜
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ ๋‚ด์šฉ์„ ๋‹ค์‹œ ๊ฒ€ํ† ํ•˜๊ณ , ๋ณด๋‚ด์•ผํ•จ
  • ์˜ˆ) ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ž˜๋ชป๋˜๊ฑฐ๋‚˜, API ์ŠคํŽ™์ด ๋งž์ง€ ์•Š์„ ๋•Œ(๋ฐฑ์—”๋“œ์—์„œ ๋ง‰์•„์ค˜์•ผ ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋จ)

2) 401 Unauthorized

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ธ์ฆ์ด ํ•„์š”ํ•จ
  2. ์ธ์ฆ(Authentication) ๋˜์ง€ ์•Š์Œ
  • 401 ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ์‘๋‹ต์— WWW-Authenticate ํ—ค๋”์™€ ํ•จ๊ป˜ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…
  1. ์ฐธ๊ณ 
  • ์ธ์ฆ(Authentication): ๋ณธ์ธ์ด ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธ, (๋กœ๊ทธ์ธ)
  • ์ธ๊ฐ€(Authorization): ๊ถŒํ•œ๋ถ€์—ฌ (ADMIN ๊ถŒํ•œ์ฒ˜๋Ÿผ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ, ์ธ์ฆ์ด ์žˆ์–ด์•ผ ์ธ๊ฐ€๊ฐ€ ์žˆ์Œ)
  • ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ Unauthorized ์ด์ง€๋งŒ ์ธ์ฆ ๋˜์ง€ ์•Š์Œ (์ด๋ฆ„์ด ์•„์‰ฌ์›€)

3) 403 Forbidden

  • ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ดํ•ดํ–ˆ์ง€๋งŒ ์Šน์ธ์„ ๊ฑฐ๋ถ€ํ•จ
  • ์ฃผ๋กœ ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช…์€ ์žˆ์ง€๋งŒ, ์ ‘๊ทผ ๊ถŒํ•œ์ด ๋ถˆ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ
  • ์˜ˆ) ์–ด๋“œ๋ฏผ ๋“ฑ๊ธ‰์ด ์•„๋‹Œ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์€ ํ–ˆ์ง€๋งŒ, ์–ด๋“œ๋ฏผ ๋“ฑ๊ธ‰์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ

4) 404 Not Found

  • ์š”์ฒญ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
  • ์š”์ฒญ ๋ฆฌ์†Œ์Šค๊ฐ€ ์„œ๋ฒ„์— ์—†์Œ
  • ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ถŒํ•œ์ด ๋ถ€์กฑํ•œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ๋•Œ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆจ๊ธฐ๊ณ  ์‹ถ์„ ๋•Œ

๐Ÿ‘† 5xx (Server Error) : ์„œ๋ฒ„ ์˜ค๋ฅ˜

  • ์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‹œ๋„ ํ•˜๋ฉด ์„ฑ๊ณตํ•  ์ˆ˜๋„ ์žˆ์Œ(๋ณต๊ตฌ๊ฐ€ ๋˜๊ฑฐ๋‚˜ ๋“ฑ๋“ฑ)

1) 500 Internal Server Error

  • ์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ, ์• ๋งคํ•˜๋ฉด 500 ์˜ค๋ฅ˜
  • ์„œ๋ฒ„ ๋‚ด๋ถ€ ๋ฌธ์ œ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ์• ๋งคํ•˜๋ฉด 500 ์˜ค๋ฅ˜
  • nullpointexception

2) 503 Service Unavailable : ์„œ๋น„์Šค ์ด์šฉ ๋ถˆ๊ฐ€

  • ์„œ๋ฒ„๊ฐ€ ์ผ์‹œ์ ์ธ ๊ณผ๋ถ€ํ•˜ ๋˜๋Š” ์˜ˆ์ •๋œ ์ž‘์—…์œผ๋กœ ์ž ์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ
  • Retry-After ํ—ค๋” ํ•„๋“œ๋กœ ์–ผ๋งˆ๋’ค์— ๋ณต๊ตฌ๋˜๋Š”์ง€ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Œ