[HTTP] Redirection
HTTP Redirection
๐3xx (Redirection)
์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ์ ์ ์์ด์ ํธ(์น ๋ธ๋ผ์ฐ์ )์ ์ถ๊ฐ์กฐ์น ํ์
์น ๋ธ๋ผ์ฐ์ ๋ 3xx ์๋ต์ ๊ฒฐ๊ณผ์ Location ํค๋
๊ฐ ์์ผ๋ฉด, Location ์์น๋ก ์๋ ์ด๋
๐Redirection ์ข ๋ฅ 3๊ฐ์ง
๐ป1. ์๊ตฌ ๋ฆฌ๋ค์ด๋ ์
- ํน์ ๋ฆฌ์์ค์ URI๊ฐ ์๊ตฌ์ ์ผ๋ก ์ด๋
- ์๋์ URL์ ์ฌ์ฉโ, ๊ฒ์ ์์ง ๋ฑ์์๋ ๋ณ๊ฒฝ ์ธ์ง
- HTTP ์ํ ์ฝ๋
301
Moved Permanently- ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ์ด ์ ๊ฑฐ๋ ์ ์์
308
Permanent Redirect- 301๊ณผ ๊ธฐ๋ฅ ๋์ผ
- ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง
- ie) /members โ /users
- ie) /event โ /new-event
๐ป2. ์ผ์ ๋ฆฌ๋ค์ด๋ ์
์ผ์์ ์ธ ๋ณ๊ฒฝ
- ๋ฆฌ์์ค์ URI๊ฐ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝ
- ๊ฒ์ ์์ง ๋ฑ์์ URL์ ๋ณ๊ฒฝํ๋ฉด ์๋จ
- HTTP ์ํ ์ฝ๋
302
Found- ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ์ด ์ ๊ฑฐ๋ ์ ์์
307
Temporary Redirect- 302์ ๊ธฐ๋ฅ ๋์ผ
- ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง(์์ฒญ ๋ฉ์๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋๋ค)
303
See Other- 302์ ๊ธฐ๋ฅ ๋์ผ
- ๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณ๊ฒฝ
- PRG : Post/Redirect/Get
- POST๋ก ์ฃผ๋ฌธ ํ์ ์๋ก ๊ณ ์นจ์ผ๋ก ์ธํ ์ค๋ณต ์ฃผ๋ฌธ ๋ฐฉ์ง
- POST๋ก ์ฃผ๋ฌธ ํ์ ์ฃผ๋ฌธ ๊ฒฐ๊ณผ ํ๋ฉด์ GET ๋ฉ์๋๋ก ๋ฆฌ๋ค์ด๋ ํธ
- ์๋ก๊ณ ์นจํด๋ ๊ฒฐ๊ณผ ํ๋ฉด์ GET์ผ๋ก ์กฐํ
- ์ค๋ณต ์ฃผ๋ฌธ ๋์ ๊ฒฐ๊ณผ ํ๋ฉด๋ง GET์ผ๋ก ๋ค์ ์์ฒญ
- 302 ? 307 ? 303 ? ์ด๋ค ๊ฒ ์ฌ์ฉ?
- 302 : GET์ผ๋ก ๋ณ๊ฒฝ ๋ ์ ์์
- 307 : ๋ฉ์๋๊ฐ ๋ณํ๋ฉด ์ ๋จ
- 303 : ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณ๊ฒฝ
- ์์น
- 302 ์คํ์ ์๋๋ HTTP ๋ฉ์๋ ์ ์ง, ํ๋ ์น ๋ธ๋ผ์ฐ์ ๋๋ถ๋ถ 302 ์ฝ๋์ ๋ํด GET์ผ๋ก ๋ณ๊ฒฝ
- ๋ชจํธํ 302 ๋์ 307, 303 ๋ฑ์ฅ
- ํ์ค
- ๊ตฌ์ฒด์ ์ธ 307, 303 ์ฌ์ฉ์ ๊ถ์ฅํ๋ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด 302 ๊ธฐ๋ณธ ์ฌ์ฉ
- ์๋ ๋ฆฌ๋ค์ด๋ ์ ์ GET์ผ๋ก ๋ณํด๋ ๋๋ฉด 302 ์ฌ์ฉํด๋ ํฐ ๋ฌธ์ โ
๐ป3. ํน์ ๋ฆฌ๋ค์ด๋ ์
๊ฒฐ๊ณผ ๋์ ์บ์
๋ฅผ ์ฌ์ฉ
- HTTP ์ํ ์ฝ๋
300
Multiple Choices- ์ฌ์ฉ โ
304
Not Modified- ์บ์๋ฅผ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๊ฐ ์์ ๋์ง ์์์์ ์๋ ค์ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๋ ๋ก์ปฌ PC์ ์ ์ฅ๋ ์บ์๋ฅผ ์ฌ์ฌ์ฉ(์บ์๋ก ๋ฆฌ๋ค์ด๋ ํธ)
- 304 ์๋ต์ ์๋ต์ ๋ฉ์์ง ๋ฐ๋๋ฅผ ํฌํจํ๋ฉด โ (๋ก์ปฌ ์บ์ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ)
- ์กฐ๊ฑด๋ถ GET, HEAD ์์ฒญ์ ์ฌ์ฉ
๐2.2.์ฐธ์กฐ
- https://developer.mozilla.org/ko/docs/Web/HTTP/Redirections
- ์ธํ๋ฐ, ๊น์ํ๋์ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์