[HTTP] 6. HTTP ์ƒํƒœ ์ฝ”๋“œ

2025. 3. 6. 18:15ยทSTUDY๐Ÿ„

์•ˆ๋…•ํ•˜์„ธ์š”!

์˜ค๋Š˜๋„ ๊ณต๋ถ€ํ•˜๊ณ  ์™”์–ด์šฉ

๋ฒŒ์จ ์„น์…˜6 ๊นŒ์ง€ ์™”๋„ค์š”!!!!

์•„์ž์•„์ž ํ™”์ดํŒ…!!!

 

๊ทธ๋Ÿผ ๊ณ ๊ณ !!


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

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์‘๋‹ต์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ

 

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

2. ๋งŒ์•ฝ์— ๋ชจ๋ฅด๋Š” ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด?

๋ชจ๋ฅด๋Š” ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋„ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 299๋ผ๋Š” ์ƒํƒœ ์ฝ”๋“œ๋กœ ์‘๋‹ต์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ์šฐ๋ฆฐ ์ด๊ฑธ ๋ชจ๋ฅด์ฃ ? ๊ทผ๋ฐ 200๋ฒˆ๋Œ€๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณตํ–ˆ๋‹ค๋ผ๋Š” ๊ฒƒ์€ ์••๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ์šฐ๋ฆฐ ๊ทธ๋ƒฅ "์•„~ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณตํ–ˆ๊ตฌ๋‚˜~" ๋ผ๊ณ  ํŒŒ์•…ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


3. ์ƒํƒœ ์ฝ”๋“œ 1xx (Informational)

์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ ์ค‘

์ƒํƒœ ์ฝ”๋“œ 100๋ฒˆ๋Œ€๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


4. ์ƒํƒœ ์ฝ”๋“œ 2xx (Successful, ์„ฑ๊ณต)

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

 

์ƒํƒœ ์ฝ”๋“œ 200๋ฒˆ๋Œ€๋Š” ์ด 4๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 200: OK
  • 201: Created (POST ๋“ฑ๋ก)
  • 202: Accepted
  • 204: No Content

์‚ฌ์‹ค์ƒ ์„ฑ๊ณต์€ ๊ฑฐ์˜ 200์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€๋” 201์„ ์‚ฌ์šฉํ•˜๋Š” ์ •๋„์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์„ค๋ช…์€ ๋ฐ‘์—์„œ ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

4-1. 200 OK

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

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ํ•œํ…Œ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ž˜ ์ถœ๋ ฅํ•˜์—ฌ ์‘๋‹ต์„ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ์— ์„ฑ๊ณตํ•˜๋ฉด ๊ฐ€์žฅ ๋งŽ์ด ๋ณด๋Š” ์ผ€์ด์Šค ์ž…๋‹ˆ๋‹ค.

 

4-2. 201 Created

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

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ํ•œํ…Œ ๋ฆฌ์†Œ์Šค๋ฅผ POST ๋“ฑ๋กํ•ด๋‹ฌ๋ผ๊ณ  ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๊ฒƒ์„ ๋ณด๊ณ ์„œ ์š”์ฒญ ์„ฑ๊ณตํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋Š” ๋œป์ธ 201 ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ 201 ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐ›๊ณ , "์•„~ 200 ์‹œ๋ฆฌ์ฆˆ๋‹ˆ๊นŒ ์š”์ฒญ ์„ฑ๊ณตํ–ˆ๊ตฌ๋‚˜!"๋ผ๊ณ  ์ธ์‹์„ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ ,  201์ด๋‹ˆ๊นŒ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ์ด ๋˜์—ˆ๊ณ , Location ํ—ค๋”๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

4-3. 202 Accepted

์š”์ฒญ์ด ์ ‘์ˆ˜๋˜์—ˆ์œผ๋‚˜ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Œ

 

๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๊ฐ™์€ ๊ณณ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์š”์ฒญ ์ ‘์ˆ˜ ํ›„ 1์‹œ๊ฐ„ ๋’ค์— ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌ๋ฉด ์ ‘์ˆ˜๋งŒ ๋œ๊ฑฐ๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ผ€์ด์Šค ์ž…๋‹ˆ๋‹ค.

์–ด์ฐŒ๋˜์—ˆ๋“  ์š”์ฒญ์€ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๊ณต์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ 200๋ฒˆ๋Œ€ ์ƒํƒœ ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

์ž˜ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

 

4-4. 204 No Content 

์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ, ์‘๋‹ต ํŽ˜์ด๋กœ๋“œ ๋ณธ๋ฌธ์— ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ๋ฌธ์„œ ํŽธ์ง‘๊ธฐ์—์„œ save ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

save ๋ฒ„ํŠผ์˜ ๊ฒฐ๊ณผ๋กœ ์•„๋ฌด ๋‚ด์šฉ์ด ์—†์–ด๋„ ๋˜๊ณ , save ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ๋„ ๊ฐ™์€ ํ™”๋ฉด์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ๋Š” ์ €์žฅํ•˜๊ณ  ๋‚˜์„œ ๋ณด๋‚ผ ๊ฒƒ์ด ์—†์ฃ ?

๊ฒฐ๊ณผ ๋‚ด์šฉ์€ ์—†์ง€๋งŒ 204 ๋ฉ”์‹œ์ง€ ๋งŒ์œผ๋กœ ์„ฑ๊ณต์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


5. ์ƒํƒœ ์ฝ”๋“œ 3xx (Redirection, ๋ฆฌ๋‹ค์ด๋ ‰์…˜)

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

 

์—ฌ๊ธฐ ์„ค๋ช…์— ๋‚˜์™€์žˆ๋Š” ์œ ์ € ์—์ด์ „ํŠธ๋ž€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฃผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์ข…๋ฅ˜๋Š” ์ด 7๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 300: Multiple Choices
  • 301: Moved Permanently
  • 302: Found
  • 303: See Other
  • 304: Not Modified
  • 307: Temporary Redirect
  • 308: Permanent Redirect

์—ฌ๊ธฐ์—์„œ 300๋ฒˆ์€ ๊ฑฐ์˜ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

301๋ฒˆ๋ถ€ํ„ฐ 308๋ฒˆ๊นŒ์ง€๋Š” ์ค‘์š”ํ•˜๋ฏ€๋กœ ๋ฐ‘์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

5-1. ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ดํ•ด

300๋ฒˆ๋Œ€๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋จผ์ € ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด๋ž‘ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์˜ ๋œป์„ ์•Œ๊ณ  ๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๊ณ ํ”ˆ ๊ฒƒ์„ ์„œ๋ฒ„ํ•œํ…Œ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ๋‹ค์‹œ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
์ด ์ž‘์—…์„ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

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

์ด๊ฒƒ์„ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์ž๋™ ์ด๋™์„ ํ•œ๋‹ค๋Š” ๊ฒŒ ๋ญ˜๊นŒ์š”?

์š”๊ฑด ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ๋ฆ„์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ €, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜ˆ์ „์— ์“ฐ๋˜ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€ /event๋ฅผ GET ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฐ”๋€Œ์–ด์„œ ์ด์   /new-event๋ผ๋Š” ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ, ์„œ๋ฒ„ ์ž…์žฅ์—์„œ๋Š” "/event ๋” ์ด์ƒ ์•ˆ ์“ฐ๋Š”๋ฐ..? ์ด์   ๊ฒฝ๋กœ /new-event๋ฅผ ์จ." ๋ผ๊ณ  ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

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

๋งˆ์ง€๋ง‰์œผ๋กœ, ์„œ๋ฒ„๋Š” ์š”์ฒญ ์„ฑ๊ณตํ–ˆ๋‹ค๊ณ  200 OK๋ฅผ ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ์‚ฌ์šฉ์ž๋Š” ์ƒˆ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฑฐ์ฃ .

 

๋ฆฌ๋‹ค์ด๋ ‰์…˜์€ ์ด 3๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

 

๊ทธ๋Ÿผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐ‘์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

5-2. ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜

301, 308
  • ๋ฆฌ์†Œ์Šค์˜ URI๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์›๋ž˜์˜ URL๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋˜๊ณ , ๊ฒ€์ƒ‰ ์—”์ง„ ๋“ฑ์—์„œ๋„ ๋ณ€๊ฒฝ์„ ์ธ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋งŒ์•ฝ์— ๊ฒฝ๋กœ๊ฐ€ /event์—์„œ /new-event๋กœ ๋ฐ”๋€Œ๋ฉด ๊ฒ€์ƒ‰์—”์ง„์—์„œ๋„ ๋ฐ”๋€ ๊ฒƒ์„ ์•Œ๊ณ  /new-event๋ฅผ ์จ์•ผํ•ฉ๋‹ˆ๋‹ค.
  • 301 Moved Permanently
    • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ , ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • POST๋กœ ์š”์ฒญ์„ ํ•ด๋„ GET์œผ๋กœ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.
  • 308 Permanent Redirect
    • 301๊ณผ ๊ธฐ๋Šฅ์€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์ฒ˜์Œ POST๋ฅผ ๋ณด๋‚ด๋ฉด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋„ POST ์œ ์ง€)
  • 301๊ณผ 308 ๋‘˜ ๋‹ค ๊ธฐ๋Šฅ์€ ๊ฒฝ๋กœ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š”๊ฑฐ ์•Œ๋ ค์ค€๋‹ค๋Š” ์ !!

5-2(1). ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ - 301

ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์— ๋“ฑ๋ก์„ ์›ํ•ด์„œ /event์— POST ๋ฉ”์„œ๋“œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•ด์„œ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„์—์„œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธํ•œํ…Œ 301 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํ™•์ธํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ฒฝ๋กœ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค ์„œ๋ฒ„ํ•œํ…Œ GET์œผ๋กœ ํ•œ ๋ฒˆ ๋” ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์ƒˆ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ๋•Œ, ๊ธฐ์กด์— POST๋กœ ๋ณด๋ƒˆ๋˜ ๋ฉ”์‹œ์ง€๋Š” ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” "์•„.. ๋‹ค์‹œ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด์•ผํ•˜๋„ค.." ํ•˜๊ณ  ์„œ๋ฒ„ํ•œํ…Œ ๋‹ค์‹œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 308๋กœ ํ•ด๊ฒฐ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

5-2(2). ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ - 308

ํด๋ผ์ด์–ธํŠธ์—์„œ ์•„๊นŒ์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์— ๋“ฑ๋ก์„ ์›ํ•ด์„œ /event์— POST ๋ฉ”์„œ๋“œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•ด์„œ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ์„œ๋ฒ„์—์„œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธํ•œํ…Œ 308 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํ™•์ธํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ฒฝ๋กœ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค์— POST ๋ฉ”์„œ๋“œ๋ฅผ ์œ ์ง€ํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„์—์„œ๋Š” ์ด๋ฒคํŠธ ์ฐธ์—ฌ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์„ฑ๊ณต ์‘๋‹ต์ฝ”๋“œ 200๋ฒˆ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

์‹ค๋ฌด์—์„œ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์™„์ „ํžˆ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ 308๋ฒˆ๋ณด๋‹ค๋Š” 301๋ฒˆ์„ ์”๋‹ˆ๋‹ค.

๊ทผ๋ฐ.. ์‚ฌ์‹ค ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์€ ๋งŽ์ด ์“ฐ์ง€๋Š” ์•Š๊ณ  ๋ฐ‘์—์„œ ์„ค๋ช…ํ•  ์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ๋งŽ์ด ์”๋‹ˆ๋‹ค.

5-3. ์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜

302, 307, 303
  • ๋ฆฌ์†Œ์Šค์˜ URI๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. (๋‚˜์ค‘์—๋Š” ์•ˆ ๋ฐ”๋€” ์ˆ˜๋„..?)
    • ๊ฒ€์ƒ‰ ์—”์ง„ ๋“ฑ์—์„œ URL์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. (์š”๊ฒƒ์ด ์˜๊ตฌ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜๊ณผ์˜ ์ฐจ์ด์ )
  • 302 Found
    • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ , ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (301์ด๋ž‘ ์ƒํ™ฉ ๊ฐ™์Œ, ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ GET ๋ณ€๊ฒฝ..)
    • GET์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์‚ฌ์‹ค ๋Œ€๋ถ€๋ถ„ ๋ณ€ํ•˜๊ณ  ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  • 307 Temporary Redirect
    • 302์™€ ๊ธฐ๋Šฅ์€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. (์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ ˆ๋Œ€ ์•ˆ ๋ผ์š”!!)
    • POST๋กœ ๋ณด๋‚ด๋ฉด POST๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • 303 See Other
    • 302์™€ ๊ธฐ๋Šฅ์€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. (302๋ณด๋‹ค ๋ช…ํ™•ํžˆ GET์œผ๋กœ ๋ณ€๊ฒฝ)
    • ๊ทผ๋ฐ ์›๋ž˜ ๊ฑ GET์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋„ ๋˜๋Š”๊ฑฐ๋ฉด 302๋ฅผ ์จ๋„ ๋ฉ๋‹ˆ๋‹ค.

 

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

PRG ์š”๊ฑธ ๊ณผ์—ฐ ์–ธ์ œ ์“ธ๊นŒ์š”?

๋ฐ‘์—์„œ ์„ค๋ช…์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

<PRG ์‚ฌ์šฉ ์ „>

๋งŒ์•ฝ์— ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ•˜๋ ค๊ณ  ์ฃผ๋ฌธ ํŽ˜์ด์ง€์— ๋ฉ”์‹œ์ง€๋ฅผ ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. (POST ๋ฉ”์„œ๋“œ ์ด์šฉ)

๊ทธ๋Ÿฌ๊ณ  ์ƒํ’ˆ ์ฃผ๋ฌธํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด POST๋กœ ๋‚ด ๋ฉ”์‹œ์ง€๊ฐ€ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ฃผ๋ฌธ์ด ์™„๋ฃŒ๋˜์–ด ๊ฒฐ๊ณผ๊ฐ€ ๋‚จ์•„์žˆ๋Š” ์ƒํƒœ๊ณ , ์‹ค์ˆ˜๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ ํ•ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ์ฐฝ์€ ๋œจ์ง€๋งŒ YES๊นŒ์ง€ ๋ˆŒ๋Ÿฌ๋ฒ„๋ฆฌ๋ฉด POST ์ •๋ณด ๋‹ค์‹œ ๋“ค์–ด๊ฐ€์„œ ์ค‘๋ณต ์ฃผ๋ฌธ์ด ๋˜์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

<PRG ์‚ฌ์šฉ ์ „ ๊ณผ์ •>

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ํ•œํ…Œ /order ํŽ˜์ด์ง€์— POST๋กœ ๋ฉ”์‹œ์ง€ ๋“ฑ๋ก์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. (์ฃผ๋ฌธ)

์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ํ™•์ธํ•ด๋ณด๋‹ˆ ์ƒํ’ˆ ์ฃผ๋ฌธ์ด ๋“ค์–ด์™”๋„ค์š”? ํ•˜๊ณ  ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ์— ์ƒํ’ˆ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ 200 OK ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ฃผ๋ฌธ ์™„๋ฃŒ๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ง€๊ธˆ ํ˜„์žฌ POST ์š”์ฒญ์ด ๋งˆ์ง€๋ง‰ ์š”์ฒญ์ด ๋ฉ๋‹ˆ๋‹ค.

์—‡ ๊ทผ๋ฐ ๋˜ ์™œ ์ด๋Ÿฌ์‹ค๊นŒ์š”? ์‹ค์ˆ˜๋กœ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜์…จ๋„ค์š”..;;

์ƒˆ๋กœ ๊ณ ์นจ ํ•˜์ง€ ๋ง๋žฌ์ง€.

 

์ด๋Ÿฌ๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ POST ๋งˆ์ง€๋ง‰ ์š”์ฒญ์„ ์„œ๋ฒ„ํ•œํ…Œ ๋‹ค์‹œ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ๋˜ ์•ž์„  ๊ณผ์ •์„ ๋‹ค์‹œ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (์ฃผ๋ฌธ๋ฐ์ดํ„ฐ๊ฐ€ 1๊ฑด ๋” ๋“ค์–ด์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.)

๊ฒฐ๊ตญ ๋˜ ์ฃผ๋ฌธ ์™„๋ฃŒ.. ์žฌ์ฃผ๋ฌธ์ด ๋˜์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค~~

๋†€๋ฆฌ์ง€๋งˆ. ๋นต๋นต์•„.

 

 

<PRG ์‚ฌ์šฉ ํ›„ - ํ•ด๊ฒฐ>

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

 

<PRG ์‚ฌ์šฉ ํ›„ ๊ณผ์ •>

ํด๋ผ์ด์–ธํŠธ๊ฐ€ /order ํŽ˜์ด์ง€์— POST ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„ํ•œํ…Œ ์ƒํ’ˆ ์ฃผ๋ฌธ ๋ฉ”์‹œ์ง€ ๋“ฑ๋ก์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ์ด ๋“ค์–ด๊ฐ€๋ฉด ์„œ๋ฒ„๊ฐ€ DB์— ์ฃผ๋ฌธ ์ƒํ’ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ 200 OK๊ฐ€ ์•„๋‹Œ 302 Found(303 ๋ณด๋‚ด๋„ ๋จ)๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ณ  Location ์ •๋ณด๋ฅผ ์ค๋‹ˆ๋‹ค. (ex. 19๋ฒˆ ์ฃผ๋ฌธ)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ "์˜ค! 302๋ฒˆ ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์™”๋„ค?" ํ•˜๊ณ  ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ GET์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” 19๋ฒˆ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด์„œ html ํ™”๋ฉด(๊ฒฐ๊ณผ ํ™”๋ฉด)์„ ๋งŒ๋“ค๊ณ  200 OK๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์‹ค์ˆ˜๋กœ ์ƒˆ๋กœ ๊ณ ์นจํ•ด๋„ GET ์š”์ฒญ(5๋ฒˆ)์œผ๋กœ ๋‹ค์‹œ ์ด๋™์„ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ์™„๋ฃŒ!

 

<PRG ์ดํ›„ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ>

  • URL์ด ์ด๋ฏธ POST -> GET์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ ๊ณ ์นจํ•ด๋„ GET์œผ๋กœ ๊ฒฐ๊ณผ ํ™”๋ฉด๋งŒ ์กฐํšŒ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ์ž…์žฅ๐Ÿ‘ง๐Ÿป: ์‚ฌ์šฉ์„ฑ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค. (๊ฒฝ๊ณ ์ฐฝ๋„ ์—†๊ณ ! ์‹ค์ˆ˜๋กœ ์ƒˆ๋กœ ๊ณ ์นจํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†๊ณ !)
    • ์„œ๋ฒ„ ์ž…์žฅ๐Ÿ’ป: ์˜ค๋ฅ˜๊ฐ€ ์ค„์–ด์„œ ์ข‹์•„์ง‘๋‹ˆ๋‹ค. (๊ฐ™์€ ์ฃผ๋ฌธ ๋ฒˆํ˜ธ๋ฉด ์žฌ์ฃผ๋ฌธ์ด ๋˜์ง€ ์•Š๊ฒŒ ๋ง‰์Šต๋‹ˆ๋‹ค.)

 

5-3(2). ๊ทธ๋ž˜์„œ ๋ญ˜ ์จ์•ผ ํ• ๊นŒ?

302, 307, 303
  • ์ •๋ฆฌ!!
    • 302 Found: GET์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ฑฐ์˜ GET์œผ๋กœ ๋ณ€ํ•จ)
    • 307 Temporary Redirect: ๋ฉ”์„œ๋“œ๊ฐ€ ๋ณ€ํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
    • 303 See Other: ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์—ญ์‚ฌ
    • ์ฒ˜์Œ 302 ์ŠคํŽ™์˜ ์˜๋„๋Š” HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ๋Ÿฐ๋ฐ ์›น ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ๋Œ€๋ถ€๋ถ„ GET์œผ๋กœ ๋ฐ”๊พธ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. (์ผ๋ถ€๋Š” ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘)
    • ๊ทธ๋ž˜์„œ ๋ชจํ˜ธํ•œ 302๋ฅผ ๋Œ€์‹ ํ•˜๋Š” ๋ช…ํ™•ํ•œ 307, 303์ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. (301 ๋Œ€์šฉ์œผ๋กœ 308๋„ ๋“ฑ์žฅ)
  • ํ˜„์‹ค
    • 307, 303์„ ๊ถŒ์žฅํ•˜์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ ์ด๋ฏธ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด 302๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์‹œ์— GET์œผ๋กœ ๋ณ€ํ•ด๋„ ๊ดœ์ฐฎ์€ ๊ฑฐ๋ฉด ๊ทธ๋ƒฅ 302๋ฅผ ์‚ฌ์šฉํ•ด๋„ ํฐ ๋ฌธ์ œ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

 

5-4. ๊ธฐํƒ€(ํŠน์ˆ˜) ๋ฆฌ๋‹ค์ด๋ ‰์…˜

300, 304
  • 300 Multiple Choices: ์•ˆ ์”๋‹ˆ๋‹ค.
  • 304 Not Modified: ๋งŽ์ด ์“ฐ๋Š”๋ฐ, ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋’ท ์„น์…˜์—์„œ ๋” ์„ค๋ช…ํ•  ์˜ˆ์ •.

304์— ๊ด€ํ•ด์„œ ์กฐ๊ธˆ ๋” ์„ค๋ช…์„ ํ•˜์ž๋ฉด...

๊ฒฐ๊ณผ ๋Œ€์‹ ์— ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ , ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Œ์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ์ปฌ PC์— ์ €์žฅ๋œ ์บ์‹œ๋ฅผ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (์บ์‹œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•จ)

๋˜ํ•œ, 304 ์‘๋‹ต์€ ๋กœ์ปฌ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์‘๋‹ต์— ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํฌํ•จํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์กฐ๊ฑด๋ถ€ GET, HEAD ์š”์ฒญ ์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๊ณผ์ •์„ ์„ค๋ช…ํ•˜์ž๋ฉด, ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์บ์‹œ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ธฐ๊ฐ„์ด ๋งŒ๋ฃŒ๋œ ๊ฒƒ ๊ฐ™์•„์„œ ์„œ๋ฒ„ํ•œํ…Œ ์บ์‹œ ๊ธฐ๊ฐ„ ๋งŒ๋ฃŒ๋œ ๊ฑฐ ๋งž๋ƒ๊ณ  ์ƒ์„ฑ ์ผ์ž ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๋„˜๊ธฐ๊ณ ์„œ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์„œ๋ฒ„๊ฐ€ ๋ณด๊ณ ์„œ ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์บ์‹œ ๊ทธ๋ƒฅ ๊ณ„์† ์จ๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์บ์‹œํ•ด์„œ ๋‹ค์‹œ ์กฐํšŒํ•˜๋ผ๊ณ  ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 


6. ์ƒํƒœ ์ฝ”๋“œ 4xx (Client Error, ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜)

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์ž˜๋ชป๋œ ๋ฌธ๋ฒ• ๋“ฑ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ

์˜ค๋ฅ˜์˜ ์›์ธ์ด ํด๋ผ์ด์–ธํŠธํ•œํ…Œ ์žˆ์Šต๋‹ˆ๋‹ค.

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

 

500๋ฒˆ๋Œ€์™€ ์ฐจ์ด์ ์€ 400๋ฒˆ๋Œ€๋Š” ๋˜‘๊ฐ™์€ ์žฌ์‹œ๋„๊ฐ€ ์‹คํŒจํ•˜์ง€๋งŒ...

500๋ฒˆ๋Œ€ ์˜ค๋ฅ˜๋Š” DB ๋ณต๊ตฌ๋˜๋ฉด ๋˜‘๊ฐ™์€ ์žฌ์‹œ๋„๊ฐ€ ์„ฑ๊ณตํ•  ์ˆ˜๋„..?

 

6-1. 400 Bad Request

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž˜๋ชป๋œ ์š”์ฒญ์„ ํ•ด์„œ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ

์š”์ฒญ ๊ตฌ๋ฌธ, ๋ฉ”์‹œ์ง€ ๋“ฑ๋“ฑ์˜ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ์„ ๋•Œ ๋œจ๋Š” ์ƒํƒœ ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ ๋‚ด์šฉ์„ ๋‹ค์‹œ ๊ฒ€ํ† ํ•˜๊ณ  ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด, ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ API ์ŠคํŽ™์ด ๋งž์ง€ ์•Š์„ ๋–„..?

๋” ์‰ฌ์šด ์˜ˆ์‹œ๋ฅผ ๋“ค์ž๋ฉด, ์ˆซ์ž๋ฅผ ๋ณด๋‚ด์•ผํ•˜๋Š”๋ฐ ๋ฌธ์ž๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ

 

6-2. 401 Unauthorized

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ธ์ฆ์ด ํ•„์š”ํ•จ

์ธ์ฆ(Authentication)์ด ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ๋œจ๋Š” ์ƒํƒœ ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

401 ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์‘๋‹ต์— WWW-Authenticate ํ—ค๋”์™€ ํ•จ๊ป˜ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

 

<์ฐธ๊ณ ํ•ด์•ผ ํ•  ์šฉ์–ด - ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์ด์’€์š”>

  • ์ธ์ฆ(Authentication): ๋ณธ์ธ์ด ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธ (๋กœ๊ทธ์ธ, ๋กœ๊ทธ์ธ์ด ์ผ๋‹จ ์•ˆ ๋˜๋ฉด ์ธ์ฆ์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.)
  • ์ธ๊ฐ€(Authorization): ๊ถŒํ•œ ๋ถ€์—ฌ (ADMIN ๊ถŒํ•œ์ฒ˜๋Ÿผ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ, ์ธ์ฆ์ด ์žˆ์–ด์•ผ ์ธ๊ฐ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.)

6-3. 403 Forbidden

์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ดํ•ดํ–ˆ์ง€๋งŒ ์Šน์ธ์„ ๊ฑฐ๋ถ€ํ•จ

์ฃผ๋กœ ์ธ์ฆ ์ž๊ฒฉ ์ฆ๋ช…์€ ์žˆ์ง€๋งŒ, ์ ‘๊ทผ ๊ถŒํ•œ์ด ๋ถˆ์ถฉ๋ถ„ํ•œ ๊ฒฝ์šฐ์— ๋‚˜ํƒ€๋‚˜๋Š” ์ƒํƒœ ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ADMIN ๋“ฑ๊ธ‰์ด ์•„๋‹Œ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์€ ํ–ˆ์ง€๋งŒ, ADMIN ๋“ฑ๊ธ‰์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ..?

๋“ค์–ด์˜ค๋ฉด ์งฑ๊ตฌ ๋Œ€์‹  ์˜ค์ˆ˜๊ฐ€ ๋ฐ˜๊ฒจ์คŒ

์˜ค์ˆ˜๊ฐ€ ๋ˆ„๊ตฌ๋ƒ๊ณ ?

์–˜.

6-4. 404 Not Found

์š”์ฒญ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ

์ด ์ƒํƒœ ์ฝ”๋“œ๋Š” ๋งŽ์ด ๋ดค์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ค‘์š”ํ•œ๋ฐ์š”.

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

 

- ์„œ๋ฒ„: ํด๋ผ์ด์–ธํŠธ์•ผ! ๋‚œ ์ด ๋ฆฌ์†Œ์Šค ๋„ˆํ•œํ…Œ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์—†์–ด!

- ํด๋ผ์ด์–ธํŠธ: ๐Ÿ˜ญ


7. ์ƒํƒœ ์ฝ”๋“œ 5xx (Server Error, ์„œ๋ฒ„ ์˜ค๋ฅ˜)

์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

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

 

7-1. 500 Internal Server Error

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

์„œ๋ฒ„ ๋‚ด๋ถ€ ๋ฌธ์ œ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‚˜ํƒ€๋‚˜๋Š” ์ƒํƒœ ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

์• ๋งคํ•˜๋ฉด 500 ์˜ค๋ฅ˜๋ž˜์š”.

 

7-2. 503 Service Unavailable

์„œ๋น„์Šค ์ด์šฉ ๋ถˆ๊ฐ€

์„œ๋ฒ„๊ฐ€ ์ผ์‹œ์ ์ธ ๊ณผ๋ถ€ํ•˜ ๋˜๋Š” ์˜ˆ์ •๋œ ์ž‘์—…์œผ๋กœ ์ž ์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์„ ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ์ƒํƒœ ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

Retry-After ํ—ค๋” ํ•„๋“œ๋กœ ์–ผ๋งˆ ๋’ค์— ๋ณต๊ตฌ๊ฐ€ ๋˜๋Š”์ง€ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทผ๋ฐ ์š”๊ฑธ ๋ณด๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ณ  ๋ณธ๋‹ค๋ฉด 500 ์œ„์ฃผ๋กœ ๋ณด๊ฒ ์ฃ .

์™œ๋ƒํ•˜๋ฉด, ์™ ๋งŒํ•˜๋ฉด ์„œ๋ฒ„์—์„œ๋Š” 500๋ฒˆ๋Œ€ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋“ค๋ฉด ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ง„์งœ ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ํ„ฐ์กŒ์„ ๋•Œ 500๋ฒˆ๋Œ€ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋ฌธ์ œ ์ƒ๊ธฐ์ง€ ๋งˆ๋ž


๊ทธ๋Ÿผ ๋„์•

์ด๋ฒˆ์—๋งŒ ์งค ๋งŽ์ด ์“ด๊ฑฐ๊ณ  ์งค ์“ฐ๊ธฐ ๊ท€์ฐฎ์•„์„œ ๋‹ค์Œ ์„น์…˜๋ถ€ํ„ฐ๋Š” ๊ฑฐ์˜ ์•ˆ ์“ธ ์˜ˆ์ •.

'STUDY๐Ÿ„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[HTTP] 8. HTTP ํ—ค๋”2 - ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ  (1) 2025.03.13
[HTTP] 7. HTTP ํ—ค๋”1 - ์ผ๋ฐ˜ ํ—ค๋”๐Ÿช  (2) 2025.03.09
[HTTP] 5. HTTP ๋ฉ”์„œ๋“œ ํ™œ์šฉ  (0) 2025.03.03
[HTTP] 4. HTTP ๋ฉ”์„œ๋“œ  (0) 2025.03.02
[HTTP] 3. HTTP ๊ธฐ๋ณธ  (2) 2025.02.28
'STUDY๐Ÿ„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [HTTP] 8. HTTP ํ—ค๋”2 - ์บ์‹œ์™€ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ
  • [HTTP] 7. HTTP ํ—ค๋”1 - ์ผ๋ฐ˜ ํ—ค๋”๐Ÿช
  • [HTTP] 5. HTTP ๋ฉ”์„œ๋“œ ํ™œ์šฉ
  • [HTTP] 4. HTTP ๋ฉ”์„œ๋“œ
์ด๋ฆฌ์ญ
์ด๋ฆฌ์ญ
ํ”„๋กœ์ ํŠธ ์ •๋ฆฌ, ๊ณต๋ถ€ ์ •๋ฆฌ ๋“ฑ๋“ฑ ํ•ฉ๋‹ˆ๋‹น๐Ÿถ / ๊นƒํ—ˆ๋ธŒ id: ssarisong
  • ์ด๋ฆฌ์ญ
    ๐Ÿ„DEV์ญ๐Ÿ„
    ์ด๋ฆฌ์ญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (18)
      • PROJECT๐Ÿ’ป (3)
      • STUDY๐Ÿ„ (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์‹ฑ๊ธ€ํ†ค
    ์ˆ˜๋™ ๋นˆ ๋“ฑ๋ก vs ์ž๋™ ๋นˆ ๋“ฑ๋ก
    ์กฐํšŒ ๋นˆ์ด 2๊ฐœ ์ด์ƒ
    @Autowired
    backend
    http
    ํ•œ์„ฑ๋Œ€ ๊ธฐ์ˆ™์‚ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
    ์Šคํ”„๋ง ๋นˆ ์กฐํšŒ
    filtertype
    ์‹ฑ๊ธ€ํ†ค ์ฃผ์˜์ 
    ํ•œ์„ฑ๋Œ€ํ•™๊ต
    ํ•œ์„ฑ๋Œ€
    Java
    ๊ฐ„๋‹จํ•œ ๊ฐœ๋ฐœ
    ์Šคํ”„๋ง
    spring
    ์บ์‹œ ๋ฌดํšจํ™”
    ์ค‘๊ณ ๋งˆ์ผ“ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
    ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ
    TypeScript
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ด๋ฆฌ์ญ
[HTTP] 6. HTTP ์ƒํƒœ ์ฝ”๋“œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”