HTTP์ ์๋ต ์ฝ๋๋ 5๊ฐ์ ํด๋์ค(๋ถ๋ฅ)๋ก ๊ตฌ๋ถ๋๋ค.
์ฒซ ๋ฒ์งธ ์ซ์๋ก ์๋ต ํด๋์ค๊ฐ ๊ฒฐ์ ๋๋ค.
- 1xx (์ ๋ณด, Information) : ์์ฒญ์ ๋ฐ๊ณ , ํ๋ก์ธ์ค๋ฅผ ๊ณ์ํ๋ค.
- 2xx (์ฑ๊ณต, Successful) : ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ๊ณ , ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
- 3xx (๋ฆฌ๋ค์ด๋ ์ , Redirection) : ์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ์ถ๊ฐ ์์ ์กฐ์น๊ฐ ํ์ํ๋ค.
- 4xx (ํด๋ผ์ด์ธํธ ์ค๋ฅ, Client Error) : ์์ฒญ์ ์๋ชป๋ ๋ฌธ๋ฒ ๋ฑ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- 5xx (์๋ฒ ์ค๋ฅ, Server Error) : ์๋ฒ๊ฐ ์ ์ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค.
[ 1xx (์กฐ๊ฑด๋ถ ์๋ต) ]
์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ์์ ์ ๊ณ์ํ๋ค.
- ์ค๋ฌด์์ ์ ์ฌ์ฉํ์ง ์๋๋ค.
[ 2xx (์ฑ๊ณต) ]
ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋์์ ์์ ํ์ฌ ์ดํดํ๊ณ , ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒ์ด๋ค.
- 200 OK : ์์ฒญ ์ฑ๊ณต
- 201 Created : ์ฑ๊ณต์ ์ผ๋ก ์์ฒญ๋์๊ณ , ์๋ฒ๊ฐ ์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ค.
POST(ํฌ์คํธ) ์์ฒญ์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ์ ์๋ฒ์์ Location์ ๋ง๋ ๋ค.
- 202 Accepted : ์๋ฒ๊ฐ ์์ฒญ์ ์ ์ํ์ง๋ง, ์์ง ์ฒ๋ฆฌํ์ง ์์๋ค.
๋ฐฐ์น ์ฒ๋ฆฌ ๊ฐ์ ๊ณณ์์ ์ฌ์ฉํ๋ค.
- 204 No Content : ์๋ฒ๊ฐ ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌํ์ง๋ง, ์๋ต ํ์ด๋ก๋ ๋ณธ๋ฌธ์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์๋ค.
์ค๊ฐ์ค๊ฐ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ค.
๊ฒฐ๊ณผ ๋ด์ฉ์ด ์์ง๋ง 204 ๋ฉ์์ง๋ฅผ ํ์ธํ๋ฉด ์ ์ฅ์ ์ฑ๊ณตํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
[ 3xx (๋ฆฌ๋ค์ด๋ ์ ) ]
์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ์ ์ ์์ด์ ํธ์ ์ถ๊ฐ์กฐ์น๊ฐ ํ์ํ๋ค.
โ ๋ฆฌ๋ค์ด๋ ํธ : ์น ๋ธ๋ผ์ฐ์ ๋ 3xx์๋ต์ ๊ฒฐ๊ณผ์ Locationํค๋๊ฐ ์์ผ๋ฉด, Location ์์น๋ก ์๋ ์ด๋ํ๋ค.
๐ ๋ฆฌ๋ค์ด๋ ์ ์ข ๋ฅ
- ์๊ตฌ ๋ฆฌ๋ค์ด๋ ์ : ํน์ ๋ฆฌ์์ค์ URI๊ฐ ์๊ตฌ์ ์ผ๋ก ์ด๋
- ์ผ์ ๋ฆฌ๋ค์ด๋ ์ : ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝ
์ฃผ๋ฌธ ์๋ฃ ํ ์ฃผ๋ฌธ ๋ด์ญ ํ๋ฉด์ผ๋ก ์ด๋
PRG (Post / Redirect / Get)
- ํน์ ๋ฆฌ๋ค์ด๋ ์ : ex ) ๊ฒฐ๊ณผ ๋์ ์บ์๋ฅผ ์ฌ์ฉ
๐ ์๊ตฌ ๋ฆฌ๋ค์ด๋ ์ (301, 308 ์กด์ฌ) ๐
- ๋ฆฌ์์ค์ URI๊ฐ ์๊ตฌ์ ์ผ๋ก ์ด๋
- ์๋์ URL์ ์ฌ์ฉํ์ง ์๋๋ค. ๊ฒ์ ์์ง์์๋ ๋ณ๊ฒฝ์ ์ธ์งํ๋ค.
- 301 Moved Permanently
๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ์ด ์ ๊ฑฐ ๋ ์๋ ์๋ค.
- 308 Permanent Redirect
์ค์ง์ ์ผ๋ก ์ ์ฌ์ฉํ์ง๋ ์๋๋ค.
301๊ณผ ๊ธฐ๋ฅ์ด ๊ฐ๋ค.
๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง (์ฒ์ POST๋ฅผ ๋ณด๋ด๋ฉด ๋ฆฌ๋ค์ด๋ ํธ๋ POST๋ฅผ ์ ์งํ๋ค.)
๐ ์ผ์์ ์ธ ๋ฆฌ๋ค์ด๋ ์ (302, 307, 303 ์กด์ฌ) ๐
- ๋ฆฌ์์ค์ URI๊ฐ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
- ๊ฒ์ ์์ง ๋ฑ์์ URL์ ๋ณ๊ฒฝํ๋ฉด ์๋๋ค.
- 302 Found
๋ฆฌ๋ค์ด๋ ํธ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ์ด ์ ๊ฑฐ๋ ์๋ ์๋ค.
๊ฑฐ์ ๋๋ถ๋ถ GET์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
๋ช ํํ์ง๋ ์์ ๋ฐฉ๋ฒ์ด์ง๋ง, ์ค๋ฌด์์๋ ์์ฃผ ์ฌ์ฉํ๊ณ ์๋ค.
์๋ ๋ฆฌ๋ค์ด๋ ์ ์์ GET์ผ๋ก ๋ณํด๋ ๋๋ฉด ๊ทธ๋ฅ 302๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ๋ค.
- 307 Temporary Redirect
302์ ๊ธฐ๋ฅ์ด ๊ฐ๋ค.
๋ฆฌ๋ค์ด๋ ํธ์ ์์ฒญ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง (์์ฒญ ๋ฉ์๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์๋๋ค.)
- 303 See Other
302์ ๊ธฐ๋ฅ์ด ๊ฐ๋ค.
๋ฆฌ๋ค์ด๋ ํธ ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
โ PRG (Post/Redirect/Get)
- POST๋ก ์ฃผ๋ฌธ ํ์ ์๋ก ๊ณ ์นจ์ ํ๊ฒ ๋๋ฉด ์ค๋ณต ์ฃผ๋ฌธ์ด ๋๋๋ฐ, ์ด๊ฒ์ ๋ฐฉ์งํ๋ ๊ฒ์ด๋ค.
- POST๋ก ์ฃผ๋ฌธ ํ์ ์ฃผ๋ฌธ ๊ฒฐ๊ณผ ํ๋ฉด์ GET ๋ฉ์๋๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
- ์๋ก๊ณ ์นจํด๋ ๊ฒฐ๊ณผํ๋ฉด์ GET์ผ๋ก ์กฐํํ๋ค.
- ์๋ก๊ณ ์นจ ํ ๊ฒฝ์ฐ์ ์ค๋ณต ์ฃผ๋ฌธ ๋์ ์ ๊ฒฐ๊ณผ ํ๋ฉด๋ง GET์ผ๋ก ๋ค์ ์์ฒญ (GET์ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ๋ฏ๋ก)
โ PRG ์ฌ์ฉ ์
์ด๋ ๊ฒ PRG๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋ก๊ณ ์นจํ์ ๋, POST๋ก ๊ฐ์ ์์ฒญ์ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์ฃผ๋ฌธ์ด ๋ ์ ์๋ค.
โญ PRG์ฌ์ฉ ํ์ ๋
PRG๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์๋ก๊ณ ์นจ์ ์ฌ๋ฌ๋ฒ ํด๋ GET์ผ๋ก ๊ฒฐ๊ณผํ๋ฉด๋ง ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์ฃผ๋ฌธ์ ๋ฐฉ์งํ ์ ์๋ค.
๐ ๊ธฐํ ๋ฆฌ๋ค์ด๋ ์ (300, 304 ์กด์ฌ) ๐
300 Multiple Choices ๋ ์ ์ฌ์ฉํ์ง ์๋๋ค.
304 Not Modified
- ์บ์๋ฅผ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๊ฐ ์์ ๋์ง ์์์์ ์๋ ค์ค๋ค. ํด๋ผ์ด์ธํธ๋ ๋ก์ปฌ PC์ ์ ์ฅ๋ ์บ์๋ฅผ ์ฌ์ฌ์ฉํ๋ค.
- 304์๋ต์ ์๋ต์ ๋ฉ์์ง ๋ฐ๋๋ฅผ ํฌํจํ๋ฉด ์๋๋ค. (๋ก์ปฌ ์บ์๋ฅผ ์ฌ์ฉํด์ผํ๊ธฐ ๋๋ฌธ์)
- ์กฐ๊ฑด๋ถ GET, HEAD ์์ฒญ์ ์ฌ์ฉ
[ 4xx ํด๋ผ์ด์ธํธ ์ค๋ฅ ]
- ํด๋ผ์ด์ธํธ ์์ฒญ์ ์๋ชป๋ ๋ฌธ๋ฒ์ผ๋ก ์๋ฒ๊ฐ ์์ฒญ์ ์ํํ ์ ์๋ค.
- ์ค๋ฅ์ ์์ธ์ด ํด๋ผ์ด์ธํธ์ ์๋ค.
- ํด๋ผ์ด์ธํธ์๊ฒ ์ค๋ฅ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ์์ฒญํด๋ ์คํจํ๋ค. ( 5xx์ค๋ฅ์ ๊ฐ์ฅ ๋ค๋ฅธ ์ . 5xx์ค๋ฅ๋ ์๋ฒ๊ฐ ๋ณต๊ตฌ๋๋ฉด ์ฑ๊ณตํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.)
๐ 400 Bad Request ๐
ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ ์์ฒญ์ ํด์ ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ค.
- ์์ฒญ ๊ตฌ๋ฌธ, ๋ฉ์์ง ์ค๋ฅ...
- ํด๋ผ์ด์ธํธ๋ ์์ฒญ ๋ด์ฉ์ ๋ค์ ๊ฒํ ํ๊ณ ๋ณด๋ด์ผํ๋ค.
- ex) ์์ฒญ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์ง ์์ ๋(์๋ฅผ ๋ค์ด ์ซ์๋ฅผ ๋ณด๋ด์ผํ๋๋ฐ ๋ฌธ์๋ฅผ ๋ณด๋์ ๋), API ์คํ์ด ๋ง์ง ์์ ๋.
๐ 401 Unauthorized ๐
์ธ์ฆ๋์ง ์์(๋ก๊ทธ์ธ๋์ง ์์)
๐ 403 Forbidden ๐
์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ์ง๋ง ์น์ธ์ ๊ฑฐ๋ถํ๋ค.
์ธ์ฆ์๊ฒฉ์ ์์ง๋ง, ์ ๊ทผ ๊ถํ์ด ๋ถ์ถฉ๋ถํ ๊ฒฝ์ฐ. ( ex. ํ์์ด ๊ด๋ฆฌ์์ ๊ธ์ ์ ๊ทผ์ ํ ์ ์๋ค)
๐ 404 Not Found ๐
์์ฒญ ๋ฆฌ์์ค๋ฅผ ์๋ฒ์ ์๋ ๊ฒฝ์ฐ๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ถํ์ด ๋ถ์กฑํ ๋ฆฌ์์ค์ ์ ๊ทผํ ๋, ํด๋น ๋ฆฌ์์ค๋ฅผ ์จ๊ธฐ๊ณ ์ถ์ ๋
[ 5xx ์๋ฒ ์ค๋ฅ ]
- ์๋ฒ ๋ฌธ์ ๋ก ์ค๋ฅ ๋ฐ์
- ์๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ฅผ ๋ณต๊ตฌ๋์ ๋ ์ฌ์๋ํ๋ฉด ์ฑ๊ณตํ ์๋ ์๋ค.
- ์ฌ๋ง์์๋ 5xx์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ฉด ์๋๋ค.
๐ 500 Internal Server Error ๐
- ์๋ฒ ๋ด๋ถ ๋ฌธ์ ๋ก ์ค๋ฅ ๋ฐ์
- ์ ๋งคํ๋ฉด 500์ค๋ฅ์ด๋ค.
๐ 503 Service Unavailable ๐
- ์๋ฒ๊ฐ ์ผ์์ ์ธ ๊ณผ๋ถํ ๋๋ ์์ ๋ ์์ ์ผ๋ก ์ ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ค.
- Retry-After ํค๋ ํ๋๋ก ์ผ๋ง๋ค ๋ณต๊ตฌ๋๋์ง ๋ณด๋ผ ์ ์๋ค.
- ํ์ง๋ง ์ค๋ฌด์์ ๊ฑฐ์ ๋ณด๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ถ์ฒ : HTTP ์ํ์ฝ๋-์ํค๋ฐฑ๊ณผ
์ด ๊ธ์ ์ธํ๋ฐ ๊น์ํ๋์ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์์ ๋ฃ๊ณ ์์ฑ๋ ๋ณต์ต ํฌ์คํ ์ ๋๋ค.
'Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] 401 Error vs 403 Error (0) | 2023.07.14 |
---|---|
[HTTP ์๋ฒฝ ๊ฐ์ด๋] 1 ์น์ ๊ธฐ์ด : 01 HTTP ๊ฐ๊ด (0) | 2022.07.07 |
HTTP ํค๋ [ํ์/์ ์ก/์ฟ ํค] (0) | 2021.07.24 |
HTTP ๊ธฐ์ด [URL/Stateless/๋น์ฐ๊ฒฐ์ฑ] (0) | 2021.07.21 |
HTTP ๊ธฐ์ด [์ธํฐ๋ท ๋คํธ์ํฌ/IP/TCP/ UDP] (0) | 2021.07.21 |