티스토리 뷰
HTTP 상태 코드 목록과 각 코드의 정보
MINA 2024. 7. 20. 00:51웹 개발에서 HTTP 상태 코드는 클라이언트가 보낸 요청에 대해 서버가 응답하는 상태를 나타내는 중요한 요소입니다. 상태 코드는 클라이언트와 서버 간의 통신이 성공했는지, 실패했는지, 추가적인 조치가 필요한지 등을 알려줍니다. 이 글에서는 HTTP 상태 코드의 종류와 각 코드의 의미를 상세히 설명하겠습니다.
1xx (정보 응답)
1xx 상태 코드는 정보 응답으로, 요청을 받았으며 프로세스를 계속 진행 중임을 나타냅니다.
100 Continue
- 의미: 클라이언트가 요청을 초기화했으며, 서버는 계속 진행하라는 신호를 보냅니다.
- 설명: 클라이언트는 계속해서 요청을 보내야 하며, 서버는 이를 기다리고 있습니다.
101 Switching Protocols
- 의미: 클라이언트가 프로토콜 전환을 요청했으며, 서버가 이를 승인했다는 의미입니다.
- 설명: 클라이언트가 요청한 프로토콜로 전환이 완료되었습니다.
102 Processing (WebDAV)
- 의미: 서버가 요청을 수신했으나 처리를 완료하지 않았음을 나타냅니다.
- 설명: 이는 주로 WebDAV 요청에서 사용됩니다.
2xx (성공 응답)
2xx 상태 코드는 요청이 성공적으로 수신되고 이해되었으며 처리되었음을 나타냅니다.
200 OK
- 의미: 요청이 성공적으로 처리되었음을 나타냅니다.
- 설명: 가장 일반적인 응답 코드로, 요청이 성공적으로 완료되었을 때 사용됩니다.
201 Created
- 의미: 요청이 성공적으로 처리되었으며, 자원이 생성되었음을 나타냅니다.
- 설명: 주로 POST 요청 후 새로운 리소스가 생성된 경우 사용됩니다.
202 Accepted
- 의미: 요청이 수락되었지만 처리가 완료되지 않았음을 나타냅니다.
- 설명: 요청이 처리될 것을 보장하지는 않습니다.
203 Non-Authoritative Information
- 의미: 요청이 성공적으로 처리되었으나, 다른 소스에서 수신된 정보가 포함되어 있음을 나타냅니다.
- 설명: 원본 서버와 일치하지 않는 메타 정보가 포함되어 있을 수 있습니다.
204 No Content
- 의미: 요청이 성공적으로 처리되었으나, 반환할 콘텐츠가 없음을 나타냅니다.
- 설명: 주로 업데이트 요청 후 사용됩니다.
205 Reset Content
- 의미: 요청이 성공적으로 처리되었으며, 클라이언트는 뷰를 초기화해야 함을 나타냅니다.
- 설명: 사용자 입력 양식을 초기화할 때 유용합니다.
206 Partial Content
- 의미: 클라이언트가 요청한 일부 콘텐츠만을 제공함을 나타냅니다.
- 설명: 범위 요청에 대한 응답으로 사용됩니다.
3xx (리다이렉션 응답)
3xx 상태 코드는 클라이언트가 요청을 완료하기 위해 추가적인 조치를 취해야 함을 나타냅니다.
300 Multiple Choices
- 의미: 요청에 대해 여러 가지 가능한 응답이 있음을 나타냅니다.
- 설명: 클라이언트는 적절한 응답을 선택해야 합니다.
301 Moved Permanently
- 의미: 요청한 자원이 영구적으로 새로운 위치로 이동했음을 나타냅니다.
- 설명: 클라이언트는 앞으로 새로운 URI를 사용해야 합니다.
302 Found
- 의미: 요청한 자원이 임시로 다른 위치에 있음을 나타냅니다.
- 설명: 클라이언트는 동일한 URI로 다시 요청을 시도할 수 있습니다.
303 See Other
- 의미: 클라이언트가 다른 URI를 참조하도록 유도합니다.
- 설명: POST 요청 후 GET 요청을 통해 다른 URI로 리디렉션할 때 사용됩니다.
304 Not Modified
- 의미: 클라이언트의 캐시된 버전이 최신 상태임을 나타냅니다.
- 설명: 서버는 클라이언트가 요청한 자원을 전송하지 않고, 캐시를 사용하도록 유도합니다.
305 Use Proxy (Deprecated)
- 의미: 요청한 자원에 접근하기 위해 프록시를 사용해야 함을 나타냅니다.
- 설명: 현재는 보안상의 이유로 잘 사용되지 않습니다.
307 Temporary Redirect
- 의미: 요청한 자원이 임시로 다른 위치에 있음을 나타냅니다.
- 설명: 302 Found와 유사하지만, 클라이언트가 원래 요청 메소드를 유지해야 합니다.
308 Permanent Redirect
- 의미: 요청한 자원이 영구적으로 다른 위치로 이동했음을 나타냅니다.
- 설명: 301 Moved Permanently와 유사하지만, 클라이언트가 원래 요청 메소드를 유지해야 합니다.
4xx (클라이언트 오류 응답)
4xx 상태 코드는 클라이언트의 요청에 오류가 있음을 나타냅니다.
400 Bad Request
- 의미: 클라이언트의 요청이 잘못되었거나 손상되었음을 나타냅니다.
- 설명: 잘못된 구문, 유효하지 않은 요청 메시지 프레이밍, 또는 악의적인 요청일 수 있습니다.
401 Unauthorized
- 의미: 요청이 인증되지 않았음을 나타냅니다.
- 설명: 클라이언트는 요청을 수행하기 위해 인증이 필요합니다.
402 Payment Required
- 의미: 결제가 필요함을 나타냅니다.
- 설명: 현재는 거의 사용되지 않지만, 미래에 사용될 가능성이 있습니다.
403 Forbidden
- 의미: 서버가 요청을 거부했음을 나타냅니다.
- 설명: 클라이언트가 자원에 접근할 권한이 없습니다.
404 Not Found
- 의미: 요청한 자원을 찾을 수 없음을 나타냅니다.
- 설명: 클라이언트가 요청한 URL이 잘못되었거나 자원이 삭제된 경우 사용됩니다.
405 Method Not Allowed
- 의미: 요청한 HTTP 메소드가 허용되지 않음을 나타냅니다.
- 설명: 서버는 해당 자원에 대해 사용할 수 있는 메소드를 응답 헤더에 포함합니다.
406 Not Acceptable
- 의미: 클라이언트가 요청한 콘텐츠의 형식을 제공할 수 없음을 나타냅니다.
- 설명: 서버는 클라이언트가 요청한 형식에 맞는 응답을 제공할 수 없습니다.
407 Proxy Authentication Required
- 의미: 프록시 인증이 필요함을 나타냅니다.
- 설명: 클라이언트는 프록시 서버를 통해 요청을 수행하기 위해 인증이 필요합니다.
408 Request Timeout
- 의미: 서버가 요청을 기다리다가 시간이 초과되었음을 나타냅니다.
- 설명: 클라이언트가 정해진 시간 내에 요청을 완료하지 못했습니다.
409 Conflict
- 의미: 요청이 서버의 현재 상태와 충돌함을 나타냅니다.
- 설명: 주로 PUT 요청에서 리소스의 현재 상태와 충돌이 발생했을 때 사용됩니다.
410 Gone
- 의미: 요청한 자원이 서버에서 영구적으로 삭제되었음을 나타냅니다.
- 설명: 이전에 존재했던 자원이 더 이상 존재하지 않을 때 사용됩니다.
411 Length Required
- 의미: Content-Length 헤더 필드가 없어서 요청을 거부함을 나타냅니다.
- 설명: 서버는 요청에 Content-Length 헤더 필드가 필요합니다.
412 Precondition Failed
- 의미: 클라이언트가 설정한 전제 조건이 서버에서 충족되지 않았음을 나타냅니다.
- 설명: 조건부 요청이 실패한 경우 사용됩니다.
413 Payload Too Large
- 의미: 요청한 엔티티의 크기가 서버가 처리할 수 있는 한도를 초과했음을 나타냅니다.
- 설명: 클라이언트는 요청 엔티티를 줄여서 다시 시도해야 합니다.
414 URI Too Long
- 의미: 요청한 URI가 너무 길어서 서버가 처리할 수 없음을 나타냅니다.
- 설명: 주로 GET 요청에서 URI가 너무 길 경우 사용됩니다.
415 Unsupported Media Type
- 의미: 요청한 미디어 타입이 서버에서 지원되지 않음을 나타냅니다.
- 설명: 클라이언트는 지원되는 미디어 타입으로 요청해야 합니다.
416 Range Not Satisfiable
- 의미: 요청한 범위가 유효하지 않음을 나타냅니다.
- 설명: 클라이언트가 요청한 범위가 리소스의 범위를 벗어납니다.
417 Expectation Failed
- 의미: Expect 요청 헤더 필드의 요구사항을 서버가 충족할 수 없음을 나타냅니다.
- 설명: 서버가 요청을 이해했지만 요구 사항을 충족하지 못했습니다.
418 I'm a teapot (RFC 2324)
- 의미: 서버가 찻주전자라서 커피를 양조할 수 없음을 나타냅니다.
- 설명: 만우절 장난으로 만들어진 상태 코드입니다.
421 Misdirected Request
- 의미: 요청이 잘못된 서버로 전달되었음을 나타냅니다.
- 설명: 요청이 원래 의도된 서버가 아닌 다른 서버로 전달되었습니다.
422 Unprocessable Entity (WebDAV)
- 의미: 서버가 요청을 이해했으나 처리를 거부함을 나타냅니다.
- 설명: 주로 WebDAV 요청에서 사용되며, 구문 오류가 아닌 논리 오류일 경우 사용됩니다.
423 Locked (WebDAV)
- 의미: 리소스가 잠겨 있음을 나타냅니다.
- 설명: 주로 WebDAV 요청에서 사용되며, 리소스가 잠겨서 접근할 수 없습니다.
424 Failed Dependency (WebDAV)
- 의미: 이전 요청이 실패하여 현재 요청도 실패함을 나타냅니다.
- 설명: 주로 WebDAV 요청에서 사용되며, 전제 조건이 충족되지 않아 요청이 실패합니다.
425 Too Early
- 의미: 서버가 요청을 처리하기에 너무 이르다고 판단했음을 나타냅니다.
- 설명: 재시도하기 전에 더 기다려야 할 때 사용됩니다.
426 Upgrade Required
- 의미: 클라이언트가 다른 프로토콜로 전환해야 함을 나타냅니다.
- 설명: 서버는 클라이언트가 요청을 완료하기 위해 업그레이드해야 한다고 응답합니다.
428 Precondition Required
- 의미: 요청이 조건부여야 함을 나타냅니다.
- 설명: 서버는 조건부 요청을 요구하며, 그렇지 않으면 충돌이 발생할 수 있습니다.
429 Too Many Requests
- 의미: 클라이언트가 일정 시간 내에 너무 많은 요청을 보냈음을 나타냅니다.
- 설명: 클라이언트는 요청 속도를 줄여야 합니다.
431 Request Header Fields Too Large
- 의미: 요청 헤더 필드가 너무 커서 서버가 처리할 수 없음을 나타냅니다.
- 설명: 클라이언트는 요청 헤더 필드를 줄여서 다시 시도해야 합니다.
451 Unavailable For Legal Reasons
- 의미: 법적 이유로 인해 요청한 자원을 사용할 수 없음을 나타냅니다.
- 설명: 정부 검열이나 법적 제한으로 인해 접근할 수 없습니다.
5xx (서버 오류 응답)
5xx 상태 코드는 서버가 요청을 처리하는 도중 오류가 발생했음을 나타냅니다.
500 Internal Server Error
- 의미: 서버에 내부 오류가 발생하여 요청을 처리할 수 없음을 나타냅니다.
- 설명: 일반적인 서버 오류로, 구체적인 원인은 명시되지 않습니다.
501 Not Implemented
- 의미: 서버가 요청을 처리하는 기능을 지원하지 않음을 나타냅니다.
- 설명: 서버가 요청 메소드를 인식하지 못하거나, 기능이 구현되지 않았을 때 사용됩니다.
502 Bad Gateway
- 의미: 게이트웨이 또는 프록시 서버가 상위 서버로부터 유효한 응답을 받지 못했음을 나타냅니다.
- 설명: 서버 간의 통신에 문제가 발생했을 때 사용됩니다.
503 Service Unavailable
- 의미: 서버가 일시적으로 과부하 또는 유지보수로 인해 요청을 처리할 수 없음을 나타냅니다.
- 설명: 클라이언트는 나중에 다시 시도해야 합니다.
504 Gateway Timeout
- 의미: 게이트웨이 또는 프록시 서버가 상위 서버로부터 응답을 받는 데 시간이 초과되었음을 나타냅니다.
- 설명: 서버 간의 통신이 지연될 때 사용됩니다.
505 HTTP Version Not Supported
- 의미: 서버가 요청에 사용된 HTTP 버전을 지원하지 않음을 나타냅니다.
- 설명: 클라이언트는 지원되는 HTTP 버전으로 요청해야 합니다.
506 Variant Also Negotiates
- 의미: 서버의 내부 구성 문제로 요청을 처리할 수 없음을 나타냅니다.
- 설명: 투명 콘텐츠 협상이 순환 참조를 일으킬 때 사용됩니다.
507 Insufficient Storage (WebDAV)
- 의미: 서버가 요청을 처리하는 데 필요한 저장 공간이 부족함을 나타냅니다.
- 설명: 주로 WebDAV 요청에서 사용됩니다.
508 Loop Detected (WebDAV)
- 의미: 서버가 무한 루프를 감지하여 요청을 처리할 수 없음을 나타냅니다.
- 설명: 주로 WebDAV 요청에서 사용됩니다.
510 Not Extended
- 의미: 요청에 필요한 확장이 누락되었음을 나타냅니다.
- 설명: 클라이언트는 추가 확장 헤더를 포함하여 요청을 다시 시도해야 합니다.
511 Network Authentication Required
- 의미: 네트워크 액세스를 위해 클라이언트가 인증을 해야 함을 나타냅니다.
- 설명: 주로 로그인 페이지를 통해 네트워크 인증이 필요한 경우 사용됩니다.
결론
HTTP 상태 코드는 클라이언트와 서버 간의 통신 상태를 나타내는 중요한 요소입니다. 각 상태 코드는 특정 상황을 나타내며, 이를 통해 클라이언트는 요청의 성공 여부와 추가 조치가 필요한지 여부를 판단할 수 있습니다. 이번 글을 통해 HTTP 상태 코드에 대한 이해가 깊어졌기를 바랍니다. 앞으로 웹 개발을 할 때 이 상태 코드를 참고하여 문제를 빠르게 해결하고, 더 나은 서비스를 제공할 수 있을 것입니다.
참고자료
https://www.loggly.com/blog/http-status-code-diagram/
[다른글]
https://minabox.tistory.com/54
'IT' 카테고리의 다른 글
Rufus 다운로드 (0) | 2024.07.14 |
---|---|
광고없이 유튜브 보는 앱 - 유튜브 밴스드 대체 방법 5가지 (0) | 2023.03.23 |
인터넷사업자 DNS IP주소 총정리 (KT, SKT, LG, 헬로비전, 구글, IBM QUAD9 등) (0) | 2022.05.01 |
구글 DNS 주소 (0) | 2022.05.01 |
DNS(Domain Name System) 작동 방식과 용어 소개 (0) | 2022.05.01 |
댓글
최근에 올라온 글
최근에 달린 댓글