-
HTTP ์ํ์ฝ๋ ์ ๋ฆฌServer 2022. 12. 23. 23:31
๐ ์ฐธ๊ณ
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
- https://www.rfc-editor.org/rfc/rfc2616#page-39
- https://evan-moon.github.io/2020/03/15/about-http-status-code/#500%EB%B2%88%EB%8C%80๋ถ๋ฅ
์๋ฒ๊ฐ ๊ฒ์ดํธ์จ์ด ์ญํ ์ ํ๊ณ ์์ผ๋ฉฐ ํ ์๋ฒ๊ฐ ์์ธ์คํ๊ณ ์๋ ๋ค๋ฅธ ์๋ฒ์ ์ ์์ ์๋ต์ ๋ฐ์ง ๋ชปํ์์ ์๋ฏธํ๋ค.
HTTP ์๋ต ์ํ์ฝ๋๋ ํน์ HTTP ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์๋์ง ์๋ ค์ฃผ๋ฉฐ ํฌ๊ฒ 5๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด์ง๋ค.
์ํ์ฝ๋๋ 3์๋ฆฌ ์ซ์๋ก, 100๋ฒ๋์์ 500๋ฒ๋๊น์ง ์๋ค. ์ฃผ๋ก 200๋ฒ๋์ 400๋ฒ๋, 500๋ฒ๋๋ฅผ ๋ณด๊ฒ ๋๋ค.
- 1xx (informational response) : ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ํ๋ก์ธ์ค๋ฅผ ๊ณ์ ์งํํ๋ค๋ ์ํ์ฝ๋
- 2xx (Successful response) : ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์์ผ๋ฉฐ(received), ์ดํดํ๊ณ (understood), ๋ฐ์๋ค์ฌ์ก๋ค๋ ์ํ์ฝ๋(accepted)
- 3xx (Redirection messages) : ์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์ก์ ์ด ๋ฐ๋์ ์ํ๋์ด์ ธ์ผ ํ๋ค๋ ์ํ์ฝ๋
- 4xx (Client error response) : ์๋ต์ด ์๋ชป๋ ๋ฌธ๋ฒ์ ํฌํจํ๊ณ ์๊ฑฐ๋ ์ํ๋ ์ ์๋ ์์ฒญ์ ๋ํ๋ด๋ ์ํ์ฝ๋
- 5xx (Server error response) : ๋ช ๋ฐฑํ ์ ํจํ ์์ฒญ์ ์๋ฒ๊ฐ ์ํํ ์ ์์ ๋ ๋ฐํํ๋ ์ํ์ฝ๋
1xx : Information response
์ด ๊ฒฝ์ฐ, ์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ์๋ฒ์ ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ๋ ์์ ์ ๊ณ์ ์งํํ๋ผ๋ ์๋ฏธ์ด๋ค. HTTP 1.0์์ ์ง์ํ์ง๋ ์๋ ์ํ์ฝ๋์ด๋ค.
--> ์ ์ฐ์ด์ง๋ ์๋ ๊ฒ ๊ฐ๋ค...?
100 Continue
์ด ์๋ต์ ์์์ ์ธ ์๋ต์ด๋ฉฐ, ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ์์๋ถ๋ถ์ ๋ฐ์๊ณ ์์ง ์๋ฒ์ ์ํด ๊ฑฐ์ ๋์ง๋ ์์์์ ์๋ฆด ๋ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๋ ๋ฐ๋์ ๋๋จธ์ง ์์ฒญ์ ๊ณ์ํด์ผ ํ๋ฉฐ ๋๋ ์์ฒญ์ด ์ด๋ฏธ ์๋ฃ๋์๋ค๋ฉด ์ด ์๋ต์ ๋ฌด์ํด๋ ๋๋ค. ์๋ฒ๋ ๋ฐ๋์ ์ต์ข ์๋ต์ ์์ฒญ์ด ์๋ฃ๋ ํ์ ๋ณด๋ด์ผ๋ง ํ๋ค.
2xx : Successful response
200 OK
์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ๋์์ต๋๋ค. ์ฑ๊ณต์ ์๋ฏธ๋ HTTP ๋ฉ์๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- GET: ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฌ์์ ๋ฉ์์ง ๋ฐ๋์ ์ ์ก๋์์ต๋๋ค.
- HEAD: ๊ฐ์ฒด ํด๋๊ฐ ๋ฉ์์ง ๋ฐ๋์ ์์ต๋๋ค.
- PUT ๋๋ POST: ์ํ ๊ฒฐ๊ณผ์ ๋ํ ๋ฆฌ์์ค๊ฐ ๋ฉ์์ง ๋ฐ๋์ ์ ์ก๋์์ต๋๋ค.
- TRACE: ๋ฉ์์ง ๋ฐ๋๋ ์๋ฒ์์ ์์ ํ ์์ฒญ ๋ฉ์์ง๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
201 Created
์์ฒญ์ด ์ฑ๊ณต์ ์ด์์ผ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋ก ์๋ก์ด ๋ฆฌ์์ค๊ฐ ์์ฑ๋์์์ ์๋ฆฌ๋ ์ํ์ฝ๋. ๋ณดํต POST์์ฒญ ๋๋ PUT ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ๋ณด๋ธ๋ค. ๋ณดํต ํ์๊ฐ์ ๊ณผ ๊ฐ์ ์์ฒญ์ ๋ํ ์๋ต์ฝ๋๋ก ๋ง์ด ์ผ๋ค.
202 Accepted
202(Accepted) ์ํ ์ฝ๋๋ ์์ฒญ์ด ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ฝ๋์์ง๋ง ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋์ง ์์์์ ๋ํ๋ธ๋ค. ์์ฒญ์ด ์ค์ ๋ก ์ฒ๋ฆฌ ๋ ๋ ํ์ฉ๋์ง ์์ ์ ์์ผ๋ฏ๋ก ์์ฒญ์ด ๊ฒฐ๊ตญ ์คํ๋๊ฑฐ๋ ์คํ๋์ง ์์ ์ ์๋ค๋ ๋ป์ด๋ค. HTTP์๋ ๋น๋๊ธฐ ์์ ์์ ์ํ ์ฝ๋๋ฅผ ๋ค์ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์, ์๋์ ์ผ๋ก ๋ชจํธํ๊ฒ 202 ์๋ต์ ๋ณด๋ด๋ ๊ฒ์ด๋ค.
์ด๋ฌํ ์ํ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๋ชฉ์ ์ ์๋ฒ๊ฐ ์์ฒญ์ ๋ํ ํ๋ก์ธ์ค๊ฐ ์๋ฃ ๋ ๋๊น์ง ์๋ฒ์ ๋ํ ์ฌ์ฉ์ ์์ด์ ํธ์ ์ฐ๊ฒฐ์ด ์ ์ง๋ ํ์๊ฐ ์์ด, ์๋ฒ๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค (์๋ง๋ ํ๋ฃจ์ ํ ๋ฒ ์คํ๋๋ ์ผ๊ด ์ฒ๋ฆฌ ์งํฅ ํ๋ก์ธ์ค)์ ๋ํ ์์ฒญ์ ์๋ฝํ ์ ์๋๋ก ํ์ฉํ๊ธฐ ์ํด์๋ผ๊ณ ํ๋ค. ์ด ์๋ต๊ณผ ํจ๊ป ์ ์ก๋ ํํ์ ์์ฒญ์ ํ์ฌ ์ํ๋ฅผ ์ค๋ช ํ๊ณ ์์ฒญ์ด ์ธ์ ์ถฉ์กฑ๋ ์ง์ ๋ํ ์ถ์ ์น๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ ์๋ ์ํ๋ฅผ ์๋ ค์ฃผ์ด์ผ ํ๋ค.
์์ง ์จ๋ณด์ง๋ ์์๋ค.
203 Non-Autoritative Inforamation
์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ํ ๋์์ผ๋, ์์ฒญ์ ๋ํ ๊ฒ์ฆ์ด ๋์ง ์์์ ์๋ฏธํ๋ค.
204 No content
์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์๊ณ , ์๋ต payload์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์์์ ์๋ฏธํ๋ค. ์ฆ, ์์ฒญ๊ณผ ๊ด๋ จ๋ data๊ฐ ๊น๋ํ ์ญ์ ๋์์์ ์๋ฏธํ๋ค. ์ฃผ๋ก DELETE ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์ฌ์ฉํ๋ค.
3xx : Redirection message
300๋ฒ๋ ์ํ์ฝ๋๋ ๋ฆฌ๋ค์ด๋ ์ ๊ณผ ๊ด๋ จ๋์ด ์๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ฆฌ์์ค๊ฐ ์ฎ๊ฒจ์ก๊ฑฐ๋ ์ญ์ ๋์ด์ ๋ค๋ฅธ url์ ํตํด ํด๋น ๋ฆฌ์์ค์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์๋ฒ๊ฐ ํด๋น url์ ๋ฆฌ๋ค์ด๋ ํธ ๊ฐ๋ฅํ url๋ก ์ ๋ฌํด์ฃผ๊ณ ์ ์ฌ์ฉํ๋ค.
301 Moved Permanetly (Redirect)
๋ธ๋ผ์ฐ์ ๋ ์์ ์ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก 301์ ๋ฐ์ผ๋ฉด HTTPํค๋์ ์๋ Location ํ๋์ ์๋ URL๋ก ์๋ ๋ฆฌ๋ค์ด๋ ์ ํ๋ค.
๋ํ ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ ๋ด๋ค์ ํน์ ํ์ด์ง์ ์ ๊ทผํ๋๋ฐ ์๋ต์ผ๋ก 301 ์ํ ์ฝ๋๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ ์๋์ผ๋ก ํ์ด์ง ์ ๋ณด๋ฅผ ๊ฐฑ์ ํ๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์, SEO(Search Engine Optimization) ๊ด์ ์์๋ ์ด ์ํ ์ฝ๋๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๋ค.
์ด๋ฐ ๋ฆฌ๋ค์ด๋ ์ ์ค์ ์ ๋ณดํต ์๋ฒ ์์ง์ ์ค์ ํ์ผ ๋ด์์๋ ํ ์ ์๊ณ , ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ง์ ํ ์๋ ์๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ์ด ์ํ์ฝ๋๋ HTTP ํ๋กํ ์ฝ๋ก ์ ์ํ ์ฌ์ฉ์๋ฅผ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ผ๋ง ์ ๊ทผ ๊ฐ๋ฅํ ํฌํธ๋ก ๋ณด๋ด๋ฒ๋ฆด ๋์๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
server { listen 80; server_name evan.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name evan.com; ... }
์ด ๊ฒฝ์ฐ 80 ํฌํธ๋ก ์ ์ํ ์ฌ์ฉ์๋ฅผ ๋ฐ๊ฒฌํ Nginx๋ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ผ๋ง ์ ๊ทผํ ์ ์๋ 443 ํฌํธ๋ก ๋ฆฌ๋ค์ด๋ ํธ์์ผ์ ํด๋น ํ๋กํ ์ฝ ์ฌ์ฉ์ ๊ฐ์ ํ ์ ์๋ค.
304 Not Modified
๋ฆฌ์์ค๊ฐ ์์ ๋์ง ์์์ ์๋ฏธํฉ๋๋ค. ์ฆ, ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ฆฌ์์ค๊ฐ ์ด์ ์์ฒญ๋์ ๋น๊ตํ์ ๋, ์ ํ ๋ฌ๋ผ์ง ์ ์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ฐ๋ผ์, ํด๋น ์๋ต์ ๋ฐ์ผ๋ฉด, ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ์ฌ์ ์ก ๋ฐ์ง ์๊ณ , ์บ์ฑ๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ค. ์ฆ, ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ์์ฒญ๋ ๋ฆฌ์์ค๋ฅผ ๋ฐ์ ๊ฒ์ด ์๋๋ผ ์์ ์ด ์บ์ฑํด๋์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ฏ๋ก ์ด ๋ํ ์บ์ฑ๋ ๋ฆฌ์์ค๋ก ๋ฆฌ๋ค์ด๋ ์ ๋์๋ค๊ณ ์๊ฐํ๋ ๊ฒ์ด๋ค.
4xx : Client error
400 Bad Request
์๋ชป๋ ๋ฌธ๋ฒ ๋ฑ์ผ๋ก ์ธํด ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฐ๋ฅด์ง ๋ชปํ ์์ฒญ์ ๋ณด๋ด ์๋ฒ๊ฐ ์ดํํ ์ ์์์ ๋ํ๋ด๋ ์ํ์ฝ๋
401 Unauthorized
์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ด ํ์ํ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ์ ์ํ์ฝ๋. ๋ณดํต ์ธ์ฆ์ด ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค. ๊ทธ๋์, ํด๋ผ์ด์ธํธ์์๋ 401์ ๋ฐ์ผ๋ฉด ๋ก๊ทธ์ธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ์ ํ๊ธฐ๋ ํ๋ค๊ณ ํ๋ค.
403 Forbidden
ํด๋ผ์ด์ธํธ๊ฐ ์ฝํ ์ธ ์ ์ ๊ทผํ ๊ถํ์ด ์์์ ๋ํ๋ธ๋ค 403์ ๊ฒฝ์ฐ, ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ฌ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์ ํ ์ ๊ฒฝ์ฐ์ง ์๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ํ์ฌ ์์ ์ด ๋๊ตฌ์ธ์ง ๋ฐํ๋ ๋ฐํ์ง ์์๋, ์ธ์ฆ์ด ๋์๋ ์ ๋์๋ ๊ฐ์, ์ด ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๋ ๊ฒ์ ๋ฌด์กฐ๊ฑด ๊ธ์ง๋ผ๊ณ ๋งํ๊ณ ์๋ ๊ฒ์ด๋ค.
HTTPS ํ๋กํ ์ฝ๋ก๋ง ์ ๊ทผํด์ผํ๋ ๋ฆฌ์์ค์ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์ ๊ทผํ์ ๊ฒฝ์ฐ์ ์๋ฒ์์ 403 ์๋ต์ ๋ณด๋ด์ฃผ๊ธฐ๋ ํ๋ค. ๋ณดํต ์ฐจ๋จ๋์ด ์๋ ์ฌ์ดํธ์ ์ ์์ ์๋ํ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ค.
404 Not Found
์์ฒญํ ๋ฆฌ์์ค๊ฐ ์กด์ฌํ์ง ์์์ ์๋ฏธํฉ๋๋ค. ์ธ์ฆ๋์ง ์์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ์จ๊ธฐ๊ธฐ ์ํด 403 ๋์ ์ด ์๋ต์ ์ ์กํ๊ธฐ๋ ํฉ๋๋ค. ์ฃผ๋ก ์ฐพ๊ณ ์ ํ๋ ๋ฆฌ์์ค๊ฐ ์๊ฑฐ๊ฐ ์์ฒญํ API Route๊ฐ ์กด์ฌํ์ง ์์ ๋ ์ฌ์ฉ.
405 Method Not Allowed
ํ์ฌ ๋ฆฌ์์ค์ ๋ง์ง ์๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์์ ์๋ฏธํฉ๋๋ค. ์๋ก๋ GET ์์ฒญ๋ง ํ์ฉ๋๋๋ฐ POST ์์ฒญ์ ํ ๊ฒฝ์ฐ์ ์๋ต์ ๋๋ค.
406 No Acceptable
์๋ง์ ์ฝํ ์ธ ํ์ ์ด ์์์ ์๋ฏธํ๋ค. ์๋ฒ์ ๋ฆฌ์์ค๊ฐ ํด๋ผ์ด์ธํธ์ HTTPํค๋์ ๋ค์ด์๋ Accept ํ๋์ ๋ช ์๋ ์ฝํ ์ธ ํ์ ์ด ์๋ ๊ฒฝ์ฐ์ ์๋ต.
408 Request Timeout
์์ฒญ์ ์๋ตํ๋ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆผ์ ์๋ฏธํ๋ค.
409 Conflict
์์ฒญ์ด ํ์ฌ ์๋ฒ ์ํ์ ์ถฉ๋๋ ๋์ ์๋ต. ์ด๋ฏธ ํ์๊ฐ์ ๋ ์ ์ ์ ๋ํด ๋ค์ ํ์๊ฐ์ ์ ์๋ํ ๋, ์ข์์ ์ฒ๋ฆฌ๊ฐ ๋ ๊ฒ์ ๋ํด ๋ค์ ์ข์์ ์์ฒญ์ ํ ๋ ๋ฑ์ ์ํฉ์์ ์ฌ์ฉ๋๋ค.
410 Gone
์ด ์๋ต์ ์์ฒญํ ์ฝํ ์ธ ๊ฐ ์๋ฒ์์ ์๊ตฌ์ ์ผ๋ก ์ญ์ ๋์์ผ๋ฉฐ, ์ ๋ฌํด ์ค ์ ์๋ ์ฃผ์ ์ญ์ ์กด์ฌํ์ง ์์ ๋ ๋ณด๋ ๋๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ทธ๋ค์ ์บ์ฌ์ ๋ฆฌ์์ค์ ๋ํ ๋งํฌ๋ฅผ ์ง์ฐ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ค. ๊ทธ๋์ ์ผ์์ ์ด๊ฑฐ๋ ํ๋ณด์ฉ ์๋น์ค์ฒ๋ผ ๊ธฐ๊ฐ ๋ง๋ฃ๊ฐ ์ ํด์ ธ ์์ ๋ ๊ธฐ๊ฐ ๋ง๋ฃ ํ ์ฌ์ฉํ๊ณค ํ๋ค.
413 Payload too large
์์ฒญ์ด ๋๋ฌด ์ปค์ ์๋ฒ๊ฐ ์ฒ๋ฆฌํ ์ ์์ ๋์ ์๋ต์ด๋ค. ํ์ผ ๋ฑ์ ์ ๋ฌ ๋ฐ์ ๋ ํ์ผ์ ํฌ๊ธฐ๊ฐ ์ ์ํ ๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ์ ๊ฐ์ ์ํฉ์ ์ฌ์ฉํ๋ค.
429 Too many requests
ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ๋ ์๊ฐ์ ๋๋ฌด ๋ง์ ์์ฒญ์ ๋ณด๋ธ ๊ฒฝ์ฐ์ ์๋ต์ด๋ค.
5xx : Server error
500 Internal Server Error
์๋ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์๋ตํ ์ ์์์ ์๋ฏธํ๋ค. ์๋ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ผ๋ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ ์ ์์ ๋ ์ฌ์ฉํ๋ค. ์ฆ, ์์ธ์ฒ๋ฆฌ๋์ง ์์ ์ค๋ฅ์ ๋ํด์ ์ฒ๋ฆฌํ ๋ ์ด ์ํ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ค. DB์ ์ค๋ฅ๊ฐ ์๊ฑฐ๋ ์์ธ์ฒ๋ฆฌ ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ์ด ์ฝ๋๊ฐ ์๋ต๋๋ค.
๋ํ ์ด๋ ๊ฒ ํธ๋ค๋ง๋์ง ์์ ์๋ฌ์ ์์ธ์ ํด๋ผ์ด์ธํธ์๊ฒ ๊ณ ์ค๋ํ ์๋ ค์ฃผ๋ ๊ฒ์ ๋ณด์ ์ฌ๊ณ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ฌด ํฌ๋ฏ๋ก, 500 ์ํ ์ฝ๋๋ก ์๋ฌ์ ๋ฐ์ ์์ฒด๋ง์ ์๋ ค์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค. ๋ง์ฝ ์ด ์ํ ์ฝ๋๋ฅผ ๋ง๋๋ค๋ฉด, ๋ฐ๋ก ์๋ฒ ๋ก๊ทธ๋ฅผ ๊น๋ณด๊ฑฐ๋ Sentry๋ Bugsnag๊ณผ ๊ฐ์ ์๋ฌ ๋ชจ๋ํฐ๋ง ์๋ฃจ์ ์ ์ ๊ทน ํ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ๋ค.
501 Not Implemented
ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ ์๋ฒ์ ์๋ต ์ํ ๊ธฐ๋ฅ์ด ์์์์ ์๋ฏธํฉ๋๋ค.
502 Bad Gateway
์๋ฒ๊ฐ ๊ฒ์ดํธ์จ์ด๋ก๋ถํฐ ์๋ชป๋ ์๋ต์ ์์ ํ์์ ์๋ฏธํ๋ค. ์๋ฒ์ ๋ถ๋ชจ ์๋ฒ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ ์๋ต์ด๋ค. ๋ณดํต ์๋ฒ๊ฐ ์ ์ํ๋ ์ฌ์ฉ์๊ฐ ๋ง์ ๊ณผ๋ถํ๋ ๋ ๋ฐ์ํ๋ค.
์ํ ์ฝ๋ 502๋ฅผ ๋ง๋ ์ ์๋ ๊ฐ์ฅ ํํ ์ํฉ์ ๋ฐ๋ก ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ฃฝ์ ์ํฉ์ด๋ค. ๊ทผ๋ฐ ์ Server Died์ ๊ฐ์ด ์ง์ ์ ์ธ ๋ฉ์ธ์ง๊ฐ ์๋๋ผ Bad Gateway์ ๊ฐ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด์ฃผ๋ ๊ฒ์ผ๊น?
๊ทธ ์ด์ ๋ ๋ฐฑ์๋ ์ํคํ ์ฒ๊ฐ ์๋ฌด๋ฆฌ ๊ฐ๋จํ ๊ตฌ์กฐ๋ผ๊ณ ํด๋ ์ ๋ ์ดํ๋ฆฌ์ผ์ด์ 1๊ฐ๋ก๋ง ๊ตฌ์ฑ๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ๊ฒ์ดํธ์จ์ด๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ถ์์ ์ธ ์ฐ๊ฒฐ์ ์ ์๋ฏธํ๋๋ฐ, ์ด ๋ฉ์ธ์ง๊ฐ ์๋ฏธํ๋ฏ ๋ฐฑ์๋์ ์ํคํ ์ฒ๋ ์ต์ 2๊ฐ ์ด์์ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค.
์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ์์ฒญ์ ๊ณง๋ฐ๋ก ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฌ๋๋ ๊ฒ์ด ์๋๋ค. ์ฌ์ค ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋จ์๋ ์ํ์น๋ Nginx ๊ฐ์ ์๋ฒ ์์ง์ด๋ ๋ก๋๋ฐธ๋ฐ์ ๊ฐ์ ์น๊ตฌ๋ค์ด ๋์ ์์ฒญ์ ๋ฐ์์ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ๋ฌํด์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๋ค.
server { listen 80; server_name evan.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Nginx๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฐ ์ค์ ์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ด๋ ๊ฒ ๋๋ฉด Nginx๋ 80๋ฒ ํฌํธ์์ ๋๊ธฐํ๋ฉฐ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์์ฒญ์ ๋ฐ์ 3000๋ฒ ํฌํธ์์ ๋๊ธฐํ๊ณ ์๋ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์๊ฒ ์ ๋ฌํด์ฃผ๋ ์ญํ ์ ์ํํ๊ฒ ๋๋ค.
์ด๋ฐ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ณด์๊ณผ ์ฒ๋ฆฌ ํจ์จ ๋๋ฌธ์ด๋ค. ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์์ฒด๊ฐ ์์ ๋ฌด๊ฒฐํ ์น๊ตฌ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์ฒญ์ ์์ฌํ๊ณ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์๊ฒ ๋จน์ฌ์ค ์๊ฐ ์๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๊ณ ๋๊ฐ ์ฌ์ฉํ๋ ์ง๋ ๋ชจ๋ฅด๋ ํด๋ผ์ด์ธํธ์์ ์์ ํ ์์ฒญ๋ง ๋ณด๋ด์ค ๊ฒ์ด๋ผ๋ ๊ธฐ๋ ๋ํ ์ด๋ถ์ฑ์ค์ด๋ค.
๊ฒ๋ค๊ฐ ๋ญ๊ฐ ์ฐ์ฐ์ด ํ์ํ ์์ฒญ์ด ์๋, ํ์ผ์ ์ฐพ์์ ๋ณด๋ด์ฃผ๊ธฐ๋ง ํ๋ ๊ฐ๋จํ ์์ฒญ ๊ฐ์ ๊ฒฝ์ฐ๋ ๊ตณ์ด ์ ๊ทธ๋๋ ๋ฐ์ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์๊ฒ ์ํฌ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ด๋ฐ ์๋ฒ ์์ง์ด ๋์ ์ฒ๋ฆฌํด์ฃผ๊ธฐ๋ ํ๋ค.
๊ทธ๋์ ๋ฐฑ์๋์์๋ ์ ๋จ์ ์์ ํ๋ก์ ์๋ฒ๋ฅผ ๋์ด์ ๋ฌธ์ง๊ธฐ ์ญํ ์ ์ํค๋ ๊ฒ์ด๋ค. ์ด๋ ์ด ํ๋ก์ ์๋ฒ์ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ฐ๊ฒฐ๋ ์ถ์์ ์ธ ํต๋ก๋ฅผ “๊ฒ์ดํธ์จ์ด”๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด๋ค. ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ฃฝ์ด๋ฒ๋ฆด ๊ฒฝ์ฐ ์ ๋จ์ ๋ฌธ์ง๊ธฐ์ธ ํ๋ก์ ์๋ฒ๋ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์๊ฒ ์๋ฌด๋ฐ ์๋ต์ ๋ฐ์ง ๋ชปํ๊ฒ ๋๊ณ , ํด๋ผ์ด์ธํธ์๊ฒ 502 Bad Gateway๋ผ๋ ์๋ต์ ๋ณด๋ด์ฃผ๋ ๊ฒ์ด๋ค.
503 Services unavailable
์ํ ์ฝ๋ 503์ ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ๋์ง ์์์์ ์๋ฏธํ๋ค. ๊ฐํน 502 Bad Gateway์ ๋น์ทํ ๋๋์ผ๋ก ์ฌ์ฉ๋๊ธฐ๋ ํ์ง๋ง, 503์ ๋ณด๋ค “์ผ์์ ์ธ ์ํฉ”์ ์๋ฏธํ๋ ์ํ ์ฝ๋์ด๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ์ ๋ถํ๊ฐ ์ฌํด์ ํ์ฌ ์์ฒญ์ ํธ๋ค๋ง ํ ์ ์๋ ์ฌ์ ๊ฐ ์๋ ๊ฒฝ์ฐ์ ๋ง์ด ์ฌ์ฉ๋๋ค.
AWS Lambda์์๋ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ์ปจํ ์ด๋์ ๋์ ์คํ ๊ฐฏ์๋ฅผ ์ด๊ณผํ ์ ๋์ ๋ฆฌ์์ค๊ฐ ํ์ํ๊ฑฐ๋ ์ด๋ค ์์ ์ ์ฒ๋ฆฌ ์๊ฐ์ด Lambda์ ์ค์ ๋ ์ปจํ ์ด๋์ ์ต๋ ์๋ช ์๊ฐ์ ์ด๊ณผํ์ ๊ฒฝ์ฐ์ ๋ฐ์ํ๊ธฐ๋ ํ๋ค.
์ด๋ ๋ฏ์ด 503์ ์ผ์์ ์ธ ์ํฉ์ ์๋ฏธํ๋ฏ๋ก 429 Too Many Requests์ ๋์ผํ๊ฒ ์๋ต ํค๋์ Retry-After ํ๋๋ฅผ ์ฌ์ฉํ์ฌ “์ด ์๊ฐ ์ดํ์ ๋ค์ ์์ฒญํด๋ด”๋ผ๋ ์๋ฏธ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํด์ค ์ ์๋ค.
504 Gateway Timeout
์ํ ์ฝ๋ 504๋ 408๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ฒญ์ ๋ํ ํ์์์์ ์๋ฏธํ๋ค. ๊ทธ๋ฌ๋ 504 ์ํ ์ฝ๋๋ ํด๋ผ์ด์ธํธ์์ ๋ณด๋ธ ์์ฒญ ๋๋ฌธ์ ํ์์์์ด ๋ฐ์ํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐฑ์๋ ์ํคํ ์ฒ ๋ด๋ถ์์ ์๋ฒ๋ผ๋ฆฌ ์ฃผ๊ณ ๋ฐ๋ ์์ฒญ์์ ๋ฐ์ํ๋ค.
์์ ์ด์ผ๊ธฐํ๋ฏ์ด ๋ฐฑ์๋์ ์ํคํ ์ฒ๋ ๋จ์ํ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ํ๋๋ก๋ง ๊ตฌ์ฑ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ฒ์ ๋ฟ์ ๋ค์๋ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ๋ผ๋ฆฌ์ ํต์ ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ๋ง์ฝ ํ๋ก์ ์๋ฒ ์ญํ ์ ๋งก์ Nginx๊ฐ ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ ๋ฌํ๋๋ฐ, ๋ฐฑ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ผ์ ์๊ฐ ๋์ ์๋ต์ ํ์ง ์๋ ๊ฒฝ์ฐ Nginx๋ ํด๋ผ์ด์ธํธ์๊ฒ 504 Geteway Timeout์ ๋ด๋ ค์ฃผ๊ฒ ๋๋ ๊ฒ์ด๋ค.
'Server' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
REST API (path parameter, query parameter) (0) 2022.11.20 API METHOD PATCH vs PUT (0) 2022.11.15 ๋ฐฑ์๋ API ํจํด - Layered Architecture (0) 2022.11.15 [์ํ์ฝ๋ฉ] Home Server (0) 2022.10.01