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

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

์ธํŒŒ_ 2023. 1. 4. 08:33

http-3xx

3XX Redirection 

3xx ๋ฒˆ๋Œ€์˜ ์ƒํƒœ ์ฝ”๋“œ๋“ค์€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Š” ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€์ ์ธ ์ž‘์—…(ํŽ˜์ด์ง€ ์ด๋™)์ด ํ•„์š”ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ด€์‹ฌ ์žˆ์–ด ํ•˜๋Š” ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ๋งํ•ด์ฃผ๊ฑฐ๋‚˜ ๊ทธ ๋ฆฌ์†Œ์Šค์˜ ๋‚ด์šฉ ๋Œ€์‹  ๋‹ค๋ฅธ ๋Œ€์•ˆ ์‘๋‹ต์„ ์ œ๊ณตํ•œ๋‹ค.

http-3xx

 

๋ฆฌ๋‹ค์ด๋ ‰์…˜(Redirection)์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ URL์— ๋Œ€ํ•ด ๋‹ค๋ฅธ URL์„ ๋‹ค์‹œ(re) ์ง€์‹œ(direct)ํ•˜์—ฌ ๋‹ค๋ฅธ ์ฃผ์†Œ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. HTTP ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฆฌ๋‹ค์ด๋ ‰์…˜์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(Permanent) : ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ URL ์ด ์˜๊ตฌ์ ์œผ๋กœ ์ด๋™
  • ์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(Temporary) : ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ URL ์ด ์ผ์‹œ์ ์œผ๋กœ ์ด๋™
  • ํŠน์ˆ˜ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(Special) : ์บ์‹œ๋ฅผ ํ™œ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€

์œ„์˜ ์–ด๋Š ์ข…๋ฅ˜์˜ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ์ด์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ HTTP Status Code๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.

์ด์ œ๋ถ€ํ„ฐ ๋‹ค๋ฃฐ 3XX ๋ฒˆ๋Œ€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๊ด€๋ จ ์ƒํƒœ ์ฝ”๋“œ๋“ค์€ ๋‚œ์ด๋„๊ฐ€ ๋‚ฎ์ง€ ์•Š์€ ํŽธ์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ๊ฐ ์ƒํƒœ ์ฝ”๋“œ๋“ค์˜ ํŠน์ง•์„ ๋น„๊ตํ•ด ๋†“์€ ํ‘œ๋ฅผ ๋จผ์ € ์„ ๋ณด์ธ๋‹ค. ๋งŒ์ผ ๊ฐ ์ƒํƒœ ์ฝ”๋“œ๋“ค์— ๋Œ€ํ•ด ์ฐจ์ด์ ์ด ํ–‡๊น”๋ฆฌ๋‹ค๋ฉด ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

  301 308 302 303 307
๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ข…๋ฅ˜ ์˜๊ตฌ(Permanent) ์˜๊ตฌ(Permanent) ์ผ์‹œ(Temporary) ์ผ์‹œ(Temporary) ์ผ์‹œ(Temporary)
๋ฆฌ๋‹ค์ด๋ ‰์…˜์‹œ ๋ฉ”์†Œ๋“œ๋ฅผ.. ๋ณ€๊ฒฝ ์œ ์ง€ ๋ณ€๊ฒฝ ๋ณ€๊ฒฝ (๋ณด์žฅ) ์œ ์ง€

3XX Redirection


300 Multiple Choices

  • Multiple Choices โ‡ข ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ๋‘˜ ์ด์ƒ์˜ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต์ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” URL์„ ์š”์ฒญํ•œ ๊ฒฝ์šฐ, ๊ทธ ๋ฆฌ์†Œ์Šค์˜ ๋ชฉ๋ก๊ณผ ํ•จ๊ป˜ ๋ฐ˜ํ™˜๋œ๋‹ค.
  • ์–ด๋–ค ์„œ๋ฒ„๊ฐ€ ํ•˜๋‚˜์˜ HTML ๋ฌธ์„œ๋ฅผ ์˜์–ด์™€ ํ”„๋ž‘์Šค์–ด ๋ชจ๋‘๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ์‘๋‹ต ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ด ์‘๋‹ต ์ฝ”๋“œ๋Š” ์‹ค๋ฌด์—์„  ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

300 Multiple Choices


301 Moved Permanently

  • Moved Permanently โ‡ข ์˜๊ตฌ์ ์œผ๋กœ ์ด๋™ (์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜)
  • ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ Location ํ—ค๋”๊ฐ€ ์ง€์ •ํ•œ URL๋กœ ์ด๋™๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ํ•ด๋‹น URL๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๋˜๋ฉด, ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ  ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋ ์ˆ˜ ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ 301 ์ฝ”๋“œ๋Š” GET ๋˜๋Š” HEAD ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ , ๋Œ€์‹  POST, PUT ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๊ฐ™์€ ์˜๊ตฌ ๋ฆฌ๋””๋ ‰์…˜์ธ 308 Permanent Redirect ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

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

301 Moved Permanently

  1. ํด๋ผ์ด์–ธํŠธ๋Š” '/event' ๋ผ๋Š” URL ์„ ์›น์„œ๋ฒ„์— ์ „์†กํ•˜์—ฌ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ GET ์š”์ฒญํ•œ๋‹ค..
  2. ํ•˜์ง€๋งŒ, '/event' ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” URL ์ด๋ฉฐ, ํ˜„์žฌ๋Š” '/new-event' ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์—ฌ ์„œ๋ฒ„์—์„œ 301 ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ƒํƒœ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ํ—ค๋”์˜ Location ํ•„๋“œ์— ์ƒˆ๋กœ์šด URL ์ธ '/new-event' ๋ฅผ ๋‹ด์•„ ์‘๋‹ต๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•œ๋‹ค.
  3. ์‘๋‹ต๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” 301 ์ƒํƒœ ์ฝ”๋“œ์™€ Location ํ•„๋“œ์˜ URL ์„ ์ฐธ๊ณ ํ•˜์—ฌ, ์ƒˆ๋กœ์šด URL ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ํ•˜๋ผ๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•œ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๊ธฐ ์œ„ํ•ด '/new-event' ๋ผ๋Š” URL ์„ ์›น์„œ๋ฒ„์— ์ „์†กํ•˜์—ฌ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ GET ์š”์ฒญํ•œ๋‹ค.
  5. ์„œ๋ฒ„๋Š” 200 OK ์™€ ํ•จ๊ป˜ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์˜ html ์„ ์ „์†กํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค.

๐Ÿ“ 301 ์ƒํƒœ์ฝ”๋“œ ์•ˆ์ข‹์€ ์˜ˆ์‹œ

์•„๋ž˜ ์˜ˆ์‹œ๋Š” ์™œ 301 ์ƒํƒœ ์ฝ”๋“œ๋ฅผ POST ์š”์ฒญ์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ํ๋ฆ„์„ ๋ณด์—ฌ์ค€๋‹ค.

301 Moved Permanently

  1. ํด๋ผ์ด์–ธํŠธ๋Š” '/event' ์˜ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์— 'name' ๊ณผ 'age' ๋ฐ”๋”” ์ •๋ณด๋ฅผ ๋‹ด์€ POST ์š”์ฒญ์„ ํ•œ๋‹ค.
  2. ์ด ๋•Œ ์„œ๋ฒ„๋Š” 301์ƒํƒœ์ฝ”๋“œ์™€ Location ํ•„๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๊ฐ€ '/new-event' ๋ผ๋Š” ์ƒˆ๋กœ์šด ์ฃผ์†Œ๋กœ ์˜๊ตฌ์  ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๋ฆฌ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋กœ ํ•˜์—ฌ๊ธˆ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์ง€์‹œํ•œ๋‹ค.
  3. ๊ทธ๋Ÿผ ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น Location์œผ๋กœ ์š”์ฒญํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๊ทธ๋Ÿฐ๋ฐ ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ GET ์œผ๋กœ ๋ณ€๊ฒฝ์‹œํ‚ค๊ณ  '/new-event'์— ์š”์ฒญํ•˜๊ฒŒ ๋œ๋‹ค. ๋˜ํ•œ ์ด๋•Œ ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋˜๋Š”๋ฐ, POST ๊ฐ€ GET ์œผ๋กœ ๋ณ€๊ฒฝ๋ ๋•Œ 'name' ๊ณผ 'age' ์ •๋ณด๋Š” ๋ณธ๋ฌธ์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ์ œ๊ฑฐ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  4. ๋”ฐ๋ผ์„œ ๋ณธ๋ž˜ ํด๋ผ์ด์–ธํŠธ์˜ ์˜๋„๋Œ€๋กœ ํ˜๋Ÿฌ๊ฐ€์ง€ ์•Š๊ฒŒ ๋˜์–ด ๊ฒฐ๊ตญ์€ ๋ณธ๋ฌธ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์—ฌ POST ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ๋•Œ๋ฌธ์— POST ์š”์ฒญ์€ 308 Permenant Redirect ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ๊ถŒ๊ณ ํ•œ๋‹ค.
๋‹ค๋งŒ 301 ์ƒํƒœ์ฝ”๋“œ๊ฐ€ ๋ฌด์กฐ๊ฑด ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋ฉฐ, ๋ณธ๋ฌธ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์€ ์œ ์˜ํ•˜์ž.
์ด ๋ถ€๋ถ„์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ 301 ์‘๋‹ต์— ๋Œ€ํ•œ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด๋†“์•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ GET ๋ฉ”์„œ๋“œ๋กœ ๋ณ€๊ฒฝ์‹œํ‚ค๊ณ  ๋ณธ๋ฌธ์„ ์ œ๊ฑฐํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์œผ๋ฏ€๋กœ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ˆ˜ํ–‰๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

302 Found

  • Found โ‡ข๋‹ค๋ฅธ URL์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์Œ (์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜)
  • ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ Location ํ—ค๋”๊ฐ€ ์ง€์ •ํ•œ URL๋กœ ์ผ์‹œ์ ์œผ๋กœ ์ด๋™๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (๋ง์ด ์ผ์‹œ์ด์ง€ ์ƒˆ URL๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋˜๋Š”๊ฑด ๊ฐ™์Œ)
  • 302๋Š” ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ 301๊ณผ ๊ฐ™์ด ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ  ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ ๋ ์ˆ˜์žˆ์ง€๋งŒ, ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ์ž‘์—… ์ˆ˜ํ–‰์ด ๋‹ฌ๋ผ์ง€๋Š” ๋ถˆํ™•์‹ค์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๋ถˆํ™•์‹ค์„ฑ ๋•Œ๋ฌธ์— 303, 307 ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ์ผ ์‚ฌ์šฉ๋œ ๋ฉ”์„œ๋“œ๋ฅผ GET๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋Œ€์‹  303 See Other๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

 

๐Ÿ†š 301 vs 302 ์ฐจ์ด์  (์ผ์‹œ vs ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜)

301์€ ์š”์ฒญํ•œ ์ •๋ณด๊ฐ€ ์ƒˆ๋กœ์šด ์ฃผ์†Œ๋กœ ์˜๊ตฌ์ ์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ”๋‹ค๋Š”๊ฒƒ์„ ๋งํ•ด์ฃผ๋ฉฐ, 302๋Š” ์ผ์‹œ์ ์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ”๋‹ค๋Š”๊ฒƒ์„ ๋งํ•ด์ค€๋‹ค.

์ด '์˜๊ตฌ์ ' ๊ณผ '์ผ์‹œ์ ' ์ฐจ์ด๊ฐ€ ์• ๋งค๋ชจํ˜ธํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‘˜์ด ๋™์ž‘ ํ˜•ํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ํ‘œ๋ฉด์ƒ์œผ๋กœ๋Š” ๋‘˜๋‹ค ์ž๋™์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๋‹ˆ ์‚ฌ๋žŒ์˜ ์œก์•ˆ์œผ๋กœ๋Š” ๊ตฌ๋ณ„ํ• ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

301-302-http

์‚ฌ์‹ค ์ด ๋‘˜์„ ๊ตฌ๋ณ„ํ•˜๋Š” ์ฃผ์ฒด ๋Œ€์ƒ์€ ์‚ฌ๋žŒ์ด ์•„๋‹Œ ๊ฒ€์ƒ‰ ์—”์ง„, ๊ฒ€์ƒ‰ ๋ด‡์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ์“ฐ๋Š๋ƒ์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๊ฝค ํฌ๋‹ค. ์ด์— ๋Œ€ํ•ด์„  ๋‹ค์Œ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

 

[HTTP] ๐ŸŒ 301 vs 302 ์ƒํƒœ ์ฝ”๋“œ ์ฐจ์ด์  (SEO)

301 vs 302 Redirection ๋ฆฌ๋‹ค์ด๋ ‰์…˜(Redirection)์€ ๋ณดํ†ต ์›น์‚ฌ์ดํŠธ๋ฅผ ์ƒˆ๋กœ์šด ๋„๋ฉ”์ธ์œผ๋กœ ์˜ฎ๊ฒผ๊ฑฐ๋‚˜ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ์—†์„๋•Œ, ์ด์šฉ์ž๋“ค์„ ํ•˜์—ฌ๊ธˆ ๋ณ€๊ฒฝ๋œ ์ฃผ์†Œ๋กœ ์ž๋™์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ€๊ฒŒ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

inpa.tistory.com


๐ŸŒ PRG (Post - Redirect - Get) ํŒจํ„ด

์ƒ๊ฐํ•ด๋ณด๋‹ˆ 301 Moved Permantly ์™€ 302 Found ๋ชจ๋‘ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๋’ค ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ GET์œผ๋กœ ๋ฐ”๊พธ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค. ์™œ ์ด๋Ÿฐ์‹์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์„๊นŒ? 

์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ์—์„œ POST๋ฅผ ํ†ตํ•ด ์ฃผ๋ฌธ์„ ์š”์ฒญํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ(refresh) ํ•˜์˜€๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. refresh๋Š” ์ด์ „์˜ ์š”์ฒญ์„ ์žฌ์ „์†ก ํ•˜๊ธฐ ๋•Œ๋ฌธ์— POST ์š”์ฒญ์„ ๋‹ค์‹œํ•˜๊ฒŒ ๋˜๊ณ  ๋”ฐ๋ผ์„œ ์„œ๋ฒ„์— ์ค‘๋ณต ์ฃผ๋ฌธ์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

http-PRG

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ์ฃผ๋ฌธ์ฐฝ์—์„œ mouse ์ œํ’ˆ๊ณผ ์ˆ˜๋Ÿ‰์€ 1๊ฐœ๋กœ ์„ ํƒํ•˜๊ณ  POST ๋ฉ”์„œ๋“œ๋กœ ์ฃผ๋ฌธ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
  2. ์„œ๋ฒ„์—์„œ๋Š” ์ฃผ๋ฌธ ์š”์ฒญ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•œ๋‹ค.
  3. ๊ทธ๋ฆฌ๊ณ  200 OK ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  4. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ(refresh) ํ•˜์˜€๋‹ค.
  5. ์ด๋•Œ refresh ๋˜๋ฉด์„œ ์ด์ „ POST ์š”์ฒญ์ด ๊ทธ๋Œ€๋กœ ์žฌ์ „์†ก๋˜๊ณ , ๊ฐ™์€ ์ฃผ๋ฌธ์ด ์ค‘๋ณต๋˜์–ด ์ƒ์„ฑ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ด์ „ POST ๋ฉ”์„œ๋“œ๋ฅผ GET ๋ฉ”์„œ๋“œ๋กœ ๋ณ€ํ™˜ ์‹œ์ผœ์คŒ์œผ๋กœ์จ ์ค‘๋ณต ์ฃผ๋ฌธ์„ ๋ฐฉ์ง€ํ•˜์ž๋Š” ์ทจ์ง€์—์„œ ์„ค๊ณ„๋œ ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด๋œ๋‹ค.

 

๋ณธ๋ก ์œผ๋กœ ๋„˜์–ด์™€์„œ, PRG ํŒจํ„ด์€ ์œ„์ฒ˜๋Ÿผ ์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์—์„œ ์ค‘๋ณต ์š”์ฒญ์˜ ์ „์†ก์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ผ์ข…์˜ HTTP ํŒจํ„ด์ด๋‹ค. ๋ฐฐ๋‹ฌ ์ด๋‚˜ ์‡ผํ•‘ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฃผ๋ฌธ์ด ๋๋‚œ ํ›„ ์ž๋™์œผ๋กœ ์ฃผ๋ฌธ์ด ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ๊ฒฐ๊ณผ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๋Š” ๋™์ž‘๋“ค์ด PRG ํŒจํ„ด์˜ ์‚ฌ๋ก€์ด๋‹ค.

์œ„์˜ ์‚ฌ๋ก€์—์„œ PRG ํŒจํ„ด์ด ์ ์šฉ๋œ 302 ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋œ๋‹ค.

http-PRG

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ์ฃผ๋ฌธ์ฐฝ์—์„œ mouse ์ œํ’ˆ๊ณผ ์ˆ˜๋Ÿ‰์€ 1๊ฐœ๋กœ ์„ ํƒํ•˜๊ณ  POST ๋ฉ”์„œ๋“œ๋กœ ์ฃผ๋ฌธ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
  2. ์„œ๋ฒ„์—์„œ๋Š” ์ฃผ๋ฌธ ์š”์ฒญ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•œ๋‹ค.
  3. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•  Location ํ—ค๋”์™€ ํ•จ๊ป˜ 302 Found๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ํ—ค๋” ๋ฉ”์„ธ์ง€๋ฅผ ์ฝ๊ณ  ์ฃผ๋ฌธ ๊ฒฐ๊ณผ ํ™”๋ฉด์ธ '/order-result/19' ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ค€๋น„๋ฅผ ํ•œ๋‹ค.
  5. ํด๋ผ์ด์–ธํŠธ๋Š” '/order-result/19' ๋กœ ์š”์ฒญ์„ ํ•œ๋‹ค. ์ด๋•Œ ๋ฉ”์„œ๋“œ๋ฅผ GET์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  body๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฌธ ๊ฒฐ๊ณผ ํ™”๋ฉด์— ๋Œ€ํ•ด ๋‹จ์ˆœ ์กฐํšŒ ์š”์ฒญ์„ ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค.
  6. ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•ด๋‹น ์ฃผ๋ฌธ์„ ์กฐํšŒํ•œ๋‹ค.
  7. ๊ทธ๋ฆฌ๊ณ  200 OK ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  8. ์ฃผ๋ฌธ ๊ฒฐ๊ณผ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ ํด๋ผ์ด์–ธํŠธ๋Š”, ์ƒˆ๋กœ๊ณ ์นจ๋ฅผ ๋ฐ˜๋ณตํ•˜๋”๋ผ๋„ ์ฃผ๋ฌธ ๊ฒฐ๊ณผ ํ™”๋ฉด์— ๋Œ€ํ•œ ์กฐํšŒ ์š”์ฒญ๋งŒ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค. (5๋ฒˆ์œผ๋กœ ์ด๋™๋จ)

์ •๋ฆฌํ•˜์ž๋ฉด PRG ํŒจํ„ด์ด ์ ์šฉ๋œ ์ ์ ˆํ•œ ์ƒํƒœ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์ค‘๋ณต ์ฃผ๋ฌธ ์š”์ฒญ์„ ๋ฐฉ์ง€ํ•œ ๊ฒƒ์ด๋‹ค.


303 See Other

  • See Other โ‡ข๋‹ค๋ฅธ URL์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์Œ (์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜)
  • 302 Found ๊ณผ ๊ธฐ๋Šฅ์€ ๋™์ผํ•˜๊ฒŒ ์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET๋กœ ๊ณ ์ •๋˜๊ณ  ๋ณธ๋ฌธ์„ ์ œ๊ฑฐํ•œ๋‹ค.
  • ๋‹ค๋งŒ 302 Found ์™€ ๋‹ค๋ฅด๊ฒŒ ์š”์ฒญ ๋ฉ”์„œ๋“œ์˜ ๋ณ€๊ฒฝ๊ณผ ๋ณธ๋ฌธ ์ œ๊ฑฐ ํ–‰์œ„๋ฅผ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ๋ณด์žฅํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค๋ฅธ URI์—์„œ GET ์š”์ฒญ์„ ํ†ตํ•ด ์–ป์–ด์•ผ ํ•  ๋•Œ, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด๋Š” ์‘๋‹ต์œผ๋กœ ์ด์šฉ๋œ๋‹ค.
  • ๋ณดํ†ต PUT ๋˜๋Š” POST์˜ ๊ฒฐ๊ณผ๋กœ์„œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ํด๋ผ์—๊ฒŒ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์šฉ๋„๋กœ ์“ฐ์ธ๋‹ค.
303 ์ƒํƒœ ์ฝ”๋“œ๋Š” GET ๋ฉ”์„œ๋“œ๋ฅผ ๋ณด์žฅํ•˜์—ฌ ์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ๊ฐ€ ์ž˜๋ชป ํ•ด์„ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ๊ธฐ ๋•Œ๋ฌธ์— 302 ์ƒํƒœ ์ฝ”๋“œ ๋Œ€์‹  ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๋ฏธ ๋ฉ”์„œ๋“œ ๋ณ€๊ฒฝ๊ณผ ๋ณธ๋ฌธ ์‚ญ์ œ๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค๋ฌด์—์„œ๋Š” 302 Found ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ์‚ฌ์‹ค์ƒ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ํ•œ๋‹ค.

304 Not Modified

  • Not Modified โ‡ข ์ˆ˜์ •๋˜์ง€ ์•Š์€ ์ตœ์‹  ๋ฆฌ์†Œ์Šค์ด๋‹ˆ ์บ์‹œ ์ด์šฉํ•˜๋ผ
  • ๋ฆฌ์†Œ์Šค ๋ณต์‚ฌ๋ณธ ์ƒํƒœ๊ฐ€ ์ˆ˜์ • ๋˜์ง€ ์•Š์•„ ์ตœ์‹  ์ƒํƒœ์ด๋ฏ€๋กœ ์บ์‹œ๋ฅผ ์ด์šฉํ•˜๋ผ๋Š” ํŠน์ˆ˜ ๋ฆฌ๋‹ค์ด๋ ‰์…˜
  • ์ฆ‰, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ–ˆ๋Š”๋ฐ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ 304 ์‘๋‹ต์ด ์˜ค๋ฉด, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ์ตœ์‹  ์ƒํƒœ์ด๋‹ˆ, ์บ์‹œ์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ์บ์‹œ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ค„์ผ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ์ฃผ์˜ํ•  ์ ์€ 304 ์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” Body ๋ณธ๋ฌธ์— ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋„ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. (ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ์ปฌ์— ์žˆ๋Š” ์บ์‹œ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ)
  • 304 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›๊ธฐ ์œ„ํ•ด์„ , ํด๋ผ์ด์–ธํŠธ๋Š” If-Modified-Since ํ—ค๋” ํ˜น์€ If-None-Match ํ—ค๋”๋ฅผ ํฌํ•จํ•œ ์กฐ๊ฑด๋ถ€ ์š”์ฒญ์„ ์ „์†กํ•ด์•ผ ํ•œ๋‹ค.
  • 304 ์‘๋‹ต์€ GET ๊ณผ HEAD ๋ฉ”์†Œ๋“œ์—๋งŒ ๋™์ž‘ํ•œ๋‹ค.
CSS, JavaScript ๋˜๋Š” ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด CDN์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

 

๐Ÿ’ก ์บ์‹œ(Cache) ์™€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(Redirection) ๊ด€๊ณ„

304 ์ƒํƒœ ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ URL์„ ์ „์ดํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ์บ์‹œ๋ฅผ ์ด์šฉํ•œ ์ƒํƒœ ์ฝ”๋“œ์ธ๋ฐ ์ด๊ฒƒ์ด ์™œ 3XX ๋ฆฌ๋‹ค์ด๋ ‰์…˜๊ณผ ๋ฌด์Šจ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ์ผ๊นŒ?
์šฐ์„ , ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ๋‹จ์ˆœํžˆ ๋‹ค๋ฅธ URL๋กœ ์ „์ด์‹œํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ•˜๊ณ ๋งŒ ์žˆ์„ํ…๋ฐ, ์ •ํ™•ํ•œ ๊ธฐ์ˆ  ์˜๋ฏธ๋Š” ํŽ˜์ด์ง€ ๋‹จ์œ„์˜ ์‹ค์ œ ๋ฆฌ์†Œ์Šค, ํผ ํ˜น์€ ์ „์ฒด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ URL์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋งํฌ๋ฅผ ์กด์†์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์„ ๋งํ•œ๋‹ค.
์‚ฌ์‹ค ์›น์„œ๋ฒ„, ํ”„๋ก์‹œ, ์บ์‹œ, ๊ฒŒ์ดํŠธ์›จ์ด ๋ชจ๋‘ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ทธ๋“ค์—๊ฒŒ HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๊ทธ๋“ค์ด ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ด€์ ์—์„œ, ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์žˆ์–ด ๋ชจ๋‘ ์„œ๋ฒ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

Cache-redirection

๋”ฐ๋ผ์„œ ๋กœ์ปฌ ์บ์‹œ๋ผ๊ณ  ํ• ์ง€๋ผ๋„ ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„  ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ์žˆ๋“  ๋ฐ”๋กœ ์˜†์— ์žˆ๋“  ์–ด์จ‹๋“  ๋ฆฌ์†Œ์Šค ์ œ๊ณต์ž ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„(Server)๋กœ ์น˜๋ถ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๋ฅผ ๋‹ค๋ฅธ URL๋กœ ๋ณด์•„ ์บ์‹œ์— ๋งํฌ๋ฅผ ์กด์†์‹œํ‚ค๋‹ˆ๊นŒ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ผ๋Š” ํ‘œํ˜„์„ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค.


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

 

If-Modified-Since ํ—ค๋” ์‚ฌ์šฉ

304 Not Modified

  1. ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด If-Modified-Since ํ—ค๋”๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
  2. ์—†์œผ๋ฉด ์ตœ์ดˆ ์š”์ฒญ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋Š” ์ตœ์‹  ์ฝ˜ํ…์ธ ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ (200 OK)
  3. ๋ฐ˜๋ฉด์— If-Modified-Since ํ—ค๋”๊ฐ€ ์žˆ์œผ๋ฉด, ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŒŒ์ผ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์•ก์„ธ์Šคํ•œ ์ดํ›„ ํŒŒ์ผ์ด ํŽธ์ง‘๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
  4. ํŒŒ์ผ์ด ์ˆ˜์ •๋œ ์ƒํƒœ๋ผ๋ฉด, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ƒˆ ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ (200 OK)
  5. ํŒŒ์ผ์ด ์ตœ์‹  ์ƒํƒœ๋ผ๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์บ์‹œ์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Œ (304 Not Modified)

 

1. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ด๋ฏธ์ง€(logo.gif) ์š”์ฒญ์„ ํ•œ๋‹ค.

2. ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค์™€ ๋”๋ถˆ์–ด ํ—ค๋”์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” Last-Modified ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์‘๋‹ตํ•ด์ค€๋‹ค.

304 Not Modified

 

3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์žฌ์š”์ฒญ์„ ํ•œ๋‹ค. ์ด๋•Œ ์ตœ์ดˆ ์‘๋‹ต ์‹œ ๋ฐ›์€ Last-Modified ํ—ค๋”๋ฅผ ์ฐธ์กฐํ•˜์—ฌ If-Modified-Since ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜์—ฌ ์š”์ฒญํ•œ๋‹ค.

4. ์„œ๋ฒ„๋Š” If-Modified-Since ์š”์ฒญ ํ—ค๋”๊ฐ’๊ณผ ์›๋ณธ ์ด๋ฏธ์ง€ ์ˆ˜์ • ์‹œ๊ฐ„์„ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์œผ๋ฉด 304 Not Modified๋กœ  ์‘๋‹ตํ•œ๋‹ค.

304 Not Modified

 

5. ํด๋ผ์ด์–ธํŠธ๋Š” ์•ˆ์‹ฌํ•˜๊ณ  ๋กœ์ปฌ ์บ์‹œ์—์„œ ์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•œ๋‹ค.

304 Not Modified

 

If-None-Match ํ—ค๋” ์‚ฌ์šฉ

If-Modified-Since๊ฐ€ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ ์ƒํƒœ๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด If-None-Match ๋Š” ETag ํ—ค๋”๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ ์ƒํƒœ๋ฅผ ํŒ๋‹จํ•œ๋‹ค.

ETag ํ—ค๋”๋Š” ํŠน์ • ๋ฒ„์ „์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ  ์‹๋ณ„์ž์ด๋‹ค.
์„œ๋ฒ„๋Š” ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ ETag ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ณ  ์ด์ „ ETag ๊ฐ’์„ ์œ ์ง€ํ•œ๋‹ค.

304 Not Modified

 

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„์—์„  ๋ฆฌ์†Œ์Šค์™€ ETag ํ—ค๋”๋ฅผ ์ˆ˜์‹ 

304 Not Modified

 

2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ํŒŒ์ผ์„ ์žฌ์š”์ฒญ. ์ด๋•Œ If-None-Match ํ—ค๋”์™€ ํ•จ๊ป˜ ์„œ๋ฒ„์— ์ „์†ก

3. ์„œ๋ฒ„๋Š” If-None-Match ์™€ ETag ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ

4. ์ผ์น˜ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” ํŒŒ์ผ์˜ ์ƒˆ ๋ณต์‚ฌ๋ณธ์„ ๋ณด๋‚ด๊ณ , ์ผ์น˜ํ•˜๋ฉด 304 Not Modified ๋ฅผ ๋ฐ˜ํ™˜.

304 Not Modified


305 Use Proxy

  • Use Proxy โ‡ข ๋ฆฌ์†Œ์Šค๊ฐ€ ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šค๋  ์ˆ˜ ์žˆ์Œ์„ ํ‘œํ˜„
  • ์š”์ฒญํ•œ ์‘๋‹ต์€ ๋ฐ˜๋“œ์‹œ ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด์„œ ์ ‘์†ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.
  • ๋ณด์•ˆ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” HTTP ์ƒํƒœ ์ฝ”๋“œ

306 Switch Proxy

  • Switch Proxy โ‡ข ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋Œ€์ฒด ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฆฌ๋‹ค์ด๋ ‰์…˜(switch) ์‹œํ‚จ๋‹ค
  • ์ด ์‘๋‹ต ์ฝ”๋“œ๋Š” ๋”์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ, ํ˜„์žฌ๋Š” ๋ฏธ๋ž˜์— ์‚ฌ์šฉ์„ ์œ„ํ•ด ์˜ˆ์•ฝ๋˜์–ด ์žˆ๋‹ค. 

307 Temporary Redirect

  • Temporary Redirect โ‡ข ์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜
  • 302 Found ๊ณผ ๊ธฐ๋Šฅ์€ ๋™์ผํ•˜์ง€๋งŒ, ์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ์„ ์œ ์ง€ํ•œ๋‹ค
  • ์ฆ‰, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒ˜์Œ์— POST ๋ฉ”์„œ๋“œ์™€ ํ•จ๊ป˜ ์ƒ์„ฑํ•  ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ Body ์— ๋‹ด์•„ ์ „์†กํ•˜์˜€๋‹ค๋ฉด, ์ƒˆ๋กœ์šด URL ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋”๋ผ๋„ ๊ทธ ๋ฉ”์„œ๋“œ์™€ Body ๋‚ด์šฉ์ด ์œ ์ง€๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋‹ค๋งŒ ์ฒซ ์š”์ฒญ์— POST๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๋ฉด, ๋‘๋ฒˆ์งธ ์š”์ฒญ๋„ ๋ฐ˜๋“œ์‹œ POST๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ค๋ฅธ URI์— ์žˆ์œผ๋ฉฐ, ์ด์ „ ์š”์ฒญ๊ณผ ๋™์ผํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญํ•ด์•ผ ํ•  ๋•Œ ์‘๋‹ต์œผ๋กœ ์ด์šฉ๋œ๋‹ค.
307๊ณผ 308 ์ฐจ์ด๋Š” ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด๋ƒ, ์ผ์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด๋ƒ ์ฐจ์ด์ด๋ฉฐ, ๋‘˜๋‹ค ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ body๋ฅผ ์œ ์ง€ํ•œ๋‹ค๋Š” ์ ์€ ๋™์ผํ•˜๋‹ค.

308 Permanent Redirect

  • Permanent Redirect โ‡ข ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰์…˜
  • 301 Moved Permanently๊ณผ ๊ธฐ๋Šฅ์€ ๋™์ผํ•˜์ง€๋งŒ, ์˜๊ตฌ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ์„ ์œ ์ง€ํ•œ๋‹ค
  • ์ฆ‰, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒ˜์Œ์— POST ๋ฉ”์„œ๋“œ์™€ ํ•จ๊ป˜ ์ƒ์„ฑํ•  ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ Body ์— ๋‹ด์•„ ์ „์†กํ•˜์˜€๋‹ค๋ฉด, ์ƒˆ๋กœ์šด URL ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•˜๋”๋ผ๋„ ๊ทธ ๋ฉ”์„œ๋“œ์™€ Body ๋‚ด์šฉ์ด ์œ ์ง€๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋‹ค๋งŒ ์ฒซ ์š”์ฒญ์— POST๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๋ฉด, ๋‘๋ฒˆ์งธ ์š”์ฒญ๋„ ๋ฐ˜๋“œ์‹œ POST๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ค๋ฅธ URI์— ์žˆ์œผ๋ฉฐ, ์ด์ „ ์š”์ฒญ๊ณผ ๋™์ผํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญํ•ด์•ผ ํ•  ๋•Œ ์‘๋‹ต์œผ๋กœ ์ด์šฉ๋œ๋‹ค.

 

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

308 Permanent Redirect

  1. ํด๋ผ์ด์–ธํŠธ๋Š” '/event' ์˜ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์— 'name' ๊ณผ 'age' ๋ฐ”๋”” ์ •๋ณด๋ฅผ ๋‹ด์€ POST ์š”์ฒญ์„ ํ•œ๋‹ค.
  2. ์ด ๋•Œ ์„œ๋ฒ„๋Š” 301 Moved Permanently ์ƒํƒœ์ฝ”๋“œ์™€ Location ํ•„๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๊ฐ€ '/new-event' ๋ผ๋Š” ์ƒˆ๋กœ์šด ์ฃผ์†Œ๋กœ ์˜๊ตฌ์  ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๋ฆฌ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋กœ ํ•˜์—ฌ๊ธˆ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์ง€์‹œํ•œ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น Location์œผ๋กœ ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋œ๋‹ค.
  4. ์—ฌ๊ธฐ๊นŒ์ง€ 301๊ณผ ๋™์ผํ•˜์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒ˜์Œ ์‚ฌ์šฉํ–ˆ๋˜ POST ๋ฉ”์„œ๋“œ๊ฐ€ ์œ ์ง€๋˜๊ณ , 'name' ๊ณผ 'age' ์ •๋ณด๊ฐ€ ๋ณธ๋ฌธ์— ์œ ์ง€๋˜์–ด ์žˆ๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณต์Šตํ•ด๋ณด์ž๋ฉด 301 Moved Permanently ์™€ 308 Permanent Redirect ๋Š” ๋™์ผํ•˜๊ฒŒ ์˜๊ตฌ์  ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์š”์ฒญ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ๋ฉ”์„œ๋“œ๋ฅผ GET ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ณธ๋ฌธ ๋‚ด์šฉ์„ ์‚ญ์ œํ•˜๋Š๋ƒ์— ์žˆ์–ด ์ค‘์š”ํ•œ ์ฐจ์ด์ ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.


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

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

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

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

https://www.seobility.net/en/wiki/HTTP_302

http://irooti.tistory.com/8

https://kinsta.com/knowledgebase/307-redirect/ 

https://medium.com/@codebyamir/a-web-developers-guide-to-browser-caching-cc41f3b73e7c