티스토리 뷰


목 차



    웹 개발을 하다 보면 다양한 오류코드에 직면하게 됩니다. 오류코드는 웹 서버나 브라우저가 요청을 처리하는 과정에서 발생하는 문제를 나타내는 코드입니다. 오류코드를 이해하고 적절한 해결법을 알아야 웹 개발의 효율성과 품질을 높일 수 있습니다.

    이 글에서는 웹 개발 시 자주 마주치는 오류코드 30가지와 그에 대한 해결법 및 확인사항을 소개합니다. 오류코드는 크게 1XX, 2XX, 3XX, 4XX, 5XX로 구분할 수 있으며, 각각의 의미와 예시를 설명하겠습니다.

    1. 1XX 오류코드: 정보 전달

    1XX 오류코드는 정보 전달을 의미하는 코드입니다. 서버가 클라이언트의 요청을 받았으며, 처리를 계속 진행하고 있다는 것을 알려줍니다. 일반적으로 이러한 코드는 잘 보이지 않으며, 특별한 조치가 필요하지 않습니다.

    • 100 Continue: 서버가 일부 요청을 받았으며, 나머지 요청 정보를 계속 보내달라는 의미입니다.
    • 101 Switching Protocols: 서버가 클라이언트의 요청대로 다른 프로토콜로 바꿀 것임을 의미합니다.

    2. 2XX 오류코드: 성공

    2XX 오류코드는 성공을 의미하는 코드입니다. 서버가 클라이언트의 요청을 성공적으로 처리했음을 알려줍니다. 가장 흔히 볼 수 있는 코드는 200 OK입니다.

    • 200 OK: 서버가 요청을 성공적으로 처리했음을 의미합니다.
    • 201 Created: 서버가 새로운 자원을 생성했음을 의미합니다.
    • 202 Accepted: 서버가 클라이언트의 요청을 수락했으나 아직 완료하지 않았음을 의미합니다.
    • 204 No Content: 서버가 요청을 처리했으나 보낼 데이터가 없음을 의미합니다.
    • 206 Partial Content: 서버가 클라이언트가 요청한 범위의 데이터를 보냈음을 의미합니다.

    3. 3XX 오류코드: 리다이렉션

    3XX 오류코드는 리다이렉션을 의미하는 코드입니다. 서버가 클라이언트에게 요청한 자원의 위치가 바뀌었음을 알려주고, 다른 URL로 이동하도록 유도합니다. 브라우저는 자동으로 새로운 URL로 요청을 다시 보내거나, 사용자에게 이동 여부를 물어봅니다.

    • 300 Multiple Choices: 서버가 여러 개의 옵션을 제공하고, 클라이언트가 선택하도록 함을 의미합니다.
    • 301 Moved Permanently: 요청한 자원이 영구적으로 다른 URL로 이동되었음을 의미합니다. 브라우저는 새로운 URL로 요청을 다시 보냅니다.
    • 302 Found: 요청한 자원이 일시적으로 다른 URL로 이동되었음을 의미합니다. 브라우저는 새로운 URL로 요청을 다시 보냅니다.
    • 303 See Other: 요청한 자원이 다른 URL에 있으며, GET 메서드로 접근해야 함을 의미합니다.
    • 304 Not Modified: 요청한 자원이 변경되지 않았으며, 캐시 된 버전을 사용하라는 의미입니다.
    • 307 Temporary Redirect: 요청한 자원이 일시적으로 다른 URL로 이동되었으며, 원래의 메서드를 유지해야 함을 의미합니다.

    4. 4XX 오류코드: 클라이언트 오류

    4XX 오류코드는 클라이언트 오류를 의미하는 코드입니다. 클라이언트의 요청이 잘못되었거나, 서버가 처리할 수 없음을 알려줍니다. 가장 흔히 볼 수 있는 코드는 404 Not Found입니다.

    • 400 Bad Request: 클라이언트의 요청이 잘못된 문법으로 되어 있어서 서버가 이해할 수 없음을 의미합니다.
    • 401 Unauthorized: 클라이언트의 요청이 인증이 필요한 자원에 접근하려고 함을 의미합니다. 서버는 인증 방법을 알려줍니다.
    • 403 Forbidden: 클라이언트의 요청이 서버에 의해 거부되었음을 의미합니다. 권한이 없거나, 접근이 금지된 경우입니다.
    • 404 Not Found: 클라이언트의 요청한 자원이 서버에 존재하지 않음을 의미합니다.
    • 405 Method Not Allowed: 클라이언트의 요청 메서드가 서버에서 허용되지 않음을 의미합니다.
    • 406 Not Acceptable: 클라이언트의 요청에 따라 서버가 만족스러운 응답을 할 수 없음을 의미합니다.
    • 408 Request Timeout: 클라이언트의 요청이 서버에서 정한 시간 내에 완료되지 않았음을 의미합니다.
    • 409 Conflict: 클라이언트의 요청이 서버의 상태와 충돌함을 의미합니다. 보통 동시 수정 등의 경우에 발생합니다.
    • 410 Gone: 클라이언트의 요청한 자원이 영구적으로 삭제되었음을 의미합니다.
    • 413 Payload Too Large: 클라이언트의 요청 본문이 서버가 처리할 수 있는 크기보다 큼을 의미합니다.
    • 414 URI Too Long: 클라이언트의 요청 URI가 너무 길어서 서버가 처리할 수 없음을 의미합니다.
    • 415 Unsupported Media Type: 클라이언트의 요청 본문의 미디어 타입이 서버에서 지원되지 않음을 의미합니다.
    • 429 Too Many Requests: 클라이언트가 너무 많은 요청을 보내서 서버가 거부함을 의미합니다.

    5. 5XX 오류코드: 서버 오류

    5XX 오류코드는 서버 오류를 의미하는 코드입니다. 서버가 올바른 요청임에도 불구하고 처리할 수 없음을 알려줍니다. 가장 흔히 볼 수 있는 코드는 500 Internal Server Error입니다.

    • 500 Internal Server Error: 서버 내부에 오류가 발생했음을 의미합니다. 원인은 다양할 수 있습니다.
    • 501 Not Implemented: 서버가 클라이언트의 요청 메서드를 인식하지 못하거나 지원하지 않음을 의미합니다.
    • 502 Bad Gateway: 서버가 업스트림 서버로부터 잘못된 응답을 받았음을 의미합니다. 업스트림 서버는 보통 웹 서버와 연결된 프락시 서버나 로드 밸런서를 말합니다.
    • 503 Service Unavailable: 서버가 일시적으로 요청을 처리할 수 없음을 의미합니다. 보통 과부하나 유지보수로 인해 발생합니다. 서버는 Retry-After 헤더를 통해 재시도할 시간을 알려줄 수 있습니다.
    • 504 Gateway Timeout: 서버가 업스트림 서버로부터 요청을 완료하기 위한 시간 내에 응답을 받지 못했음을 의미합니다.
    • 505 HTTP Version Not Supported: 서버가 클라이언트의 요청에서 사용한 HTTP 버전을 지원하지 않음을 의미합니다.
    • 507 Insufficient Storage: 서버가 요청을 처리하기 위해 필요한 저장 공간이 부족함을 의미합니다.
    • 508 Loop Detected: 서버가 요청을 처리하는 과정에서 무한 루프에 빠졌음을 의미합니다.
    • 510 Not Extended: 서버가 클라이언트의 요청에 필요한 확장 기능을 지원하지 않음을 의미합니다.
    • 511 Network Authentication Required: 클라이언트가 네트워크에 접속하기 위해 인증이 필요함을 의미합니다. 보통 공공 와이파이나 핫스팟에서 발생합니다.