본문 바로가기
IT/IT 지식

HTTP 에러코드 . 응답코드 . 상태코드 종류와 의미

by SidePower 2021. 2. 22.

 

가끔 스프링부트(springboot) 웹프로젝트를 통해 간단히 서버를 만들고

자바로 구현한 HTTP URL 클라이언트로 업무와 관련된

여러 가지 단편적인 기능 테스트를 진행하면서 공부도 하고 있습니다. 

 

한 번만에 기대했던 결과값을 받으면 좋겠지만

제가 아직 스킬이 부족해서 그런지 꼭 에러가 발생해서

수신받은 HTTP 응답코드에 대한 의미를 구글링해서 이리저리 찾고 있더라고요. ^^;;

가끔씩 하다보니깐 기억이 가물해서 알고 있는 게 맞는지도 헷갈리게 되더라고요.

그래서 이번에 HTTP 응답코드를 정리하면서 다시 확인해 보려고요. ^^

 

 

HTTP 응답 상태 코드는 숫자 3자리입니다.

 

첫번째 자리 숫자를 기준으로 크게 5가지 영역이 상태를 나타내고 있습니다.

 

범위 영역 의미
1XX 정보 전달 임시 통신 연결 상태 또는
요청 진행에 대한 응답 요청 된 작업을 완료하고
최종 결과를 보내기 전에 응답
2XX 성공 클라이언트의 요청이 성공적으로 수신, 이해 및 수락됨.
3XX 리다이렉션 처리 완료를 위해 클라이언트에서 추가 조치를 취해야합니다.
4XX 클라이언트 오류 클라이언트 요청에 오류가 있는 것 같습니다.
5XX 서버 오류 서버에 오류가 있어 처리할수가 없습니다.

 

 1XX

정보 전달

임시 통신 연결 상태 또는
요청 진행에 대한 응답 요청된 작업을 완료하고
최종 결과를 보내기 전에 응답 

 

응답코드 메시지 의미
100 Continue 클라이언트는 요청을 계속해야합니다. 
이 중간 응답은 지금까지 모든 것이 정상이며 클라이언트가 요청을 계속하거나 요청이 이미 완료된 경우 응답을 무시해야 함을 나타냅니다.
101 Switching Protocols 서버는 이 연결에서 사용되는 응용 프로그램 프로토콜의 변경에 대한
업그레이드 메시지 헤더 필드를 통해 클라이언트의 요청을 이해하고
이를 기꺼이 준수합니다. 
서버는 101 응답을 종료하는 빈 줄 바로 다음에 응답의 Upgrade 헤더 필드에 정의 된 프로토콜로 프로토콜을 전환합니다.
102 Processing 서버가 요청을 수신하고 처리 중이지만 아직 응답을 사용할 수 없음을 나타냅니다.
103 Early Hints Link해더와 함께 사용되며 주로 서버가 응답을 준비하는 동안 사용자가 사전로딩(PreLoading)을 할수 있도록 하는 응답코드.

2XX

성공

클라이언트의 요청이 성공적으로 수신, 이해 및 수락됨.

 

응답코드 메시지 의미
200 OK 요청이 성공했습니다. 
201 Created 요청이 성공되어 새 리소스가 생성되었습니다. 
202 Accepted

처리를 위해 요청이 승인되었지만 처리가 완료되지 않았습니다. 
처리가 실제로 수행될 때 허용되지 않을 수 있으므로 요청은 결국 처리될 수도 있고 그렇지 않을 수도 있습니다. 
이와 같은 비동기 작업에서 상태 코드를 다시 보낼 수 있는 기능은 없습니다.

203 Non-Authoritative Information 엔터티 헤더에 반환 된 메타 정보는
원본 서버에서 사용할 수있는 최종 집합이 아니지만 로컬 또는
타사 복사본에서 수집됩니다. 
제시된 세트는 원래 버전의 하위 세트 또는 상위 세트 일 수 있습니다. 
204 No Content

서버가 요청을 수행했지만 엔티티 본문을 반환할 필요가 없으며
업데이트된 메타 정보를 반환 할 수 있습니다. 
응답은 엔티티 헤더 형태의 새로운 또는 업데이트 된 메타 정보를 포함할 수 있으며, 존재하는 경우 요청된 변형과 연관되어야 합니다.

205 Reset Content 사용자 에이전트에게이 요청을 보낸 문서를 재설정하도록 지시합니다.
206 Partial Content Range리소스의 일부만 요청하기 위해 클라이언트에서 헤더를 보낼 때 사용됩니다 .
207 Multi-Status 여러 상태 코드가 적절할 수있는 상황에 대해 여러 리소스에 대한 정보를 전달합니다.
208 Already Reported 동일한 컬렉션에 대한 여러 바인딩의 내부 멤버를 반복적으로 열거하지 않도록 응답 요소 내에서 사용됩니다 .
226 IM Used 서버가 GET리소스에 대한 요청을 이행 했으며 응답은 현재 인스턴스에 적용된 하나 이상의 인스턴스 조작 결과를 나타냅니다.

 

 

3XX

리다이렉션

처리 완료를 위해 클라이언트에서 추가 조치를 취해야 합니다.

 

응답코드 메시지 의미
300 Multiple Choices 요청에 둘 이상의 가능한 응답이 있습니다. 
사용자 에이전트 또는 사용자는 그중 하나를 선택해야합니다.
301 Moved Permanently 요청 된 리소스에 새로운 영구 URI가 할당되었으며
이 리소스에 대한 향후 참조는 반환 된 URI 중 하나를 사용해야합니다
302 Found 요청 된 리소스의 URI가 일시적 으로 변경되었음을 의미합니다 
303 See Other 서버는이 응답을 전송하여 클라이언트가 GET 요청으로 다른 URI에서 요청 된 리소스를 가져 오도록 지시했습니다.
304 Not Modified 캐싱 목적으로 사용됩니다. 
클라이언트에게 응답이 수정되지 않았 음을 알려주므로 클라이언트는 동일한 캐시 된 응답 버전을 계속 사용할 수 있습니다.
305 Use Proxy 요청 된 리소스는 Location 필드에서 제공하는 프록시를 통해 액세스해야합니다. 
위치 필드는 프록시의 URI를 제공합니다. 
수신자는 프록시를 통해이 단일 요청을 반복해야합니다.

305 응답은 원 서버에서만 생성되어야합니다.
306 unused 이전 버전의 사양에서 사용되었으며
이 코드는 더 이상 사용되지 않으며 단지 예약만 되어 있습니다.
307 Temporary Redirect 요청 된 리소스는 일시적으로 다른 URI에 있습니다. 
리디렉션이 가끔 변경 될 수 있으므로 클라이언트는 향후 요청에 대해 Request-URI를 계속 사용해야합니다. 
이 응답은 Cache-Control 또는 Expires 헤더 필드로 표시된 경우에만 캐시 할 수 있습니다.
308 Permanent Redirect 301과 같은 의미입니다. 새로운 영구 URI가 할당됨을 나타낼때 사용됩니다.

4XX

클라이언트 오류

클라이언트 요청에 오류가 있는 것 같습니다.

 

응답코드 메시지 의미
400 Bad Request 잘못된 구문으로 인해 서버에서 요청을 이해할 수 없습니다. 
클라이언트는 수정없이 요청을 반복해서는 안됩니다.
401 Unauthorized 요청에는 사용자 인증이 필요합니다.
402 Payment Required 향후 사용을 위해 예약된 코드입니다.
403 Forbidden 클라이언트는 콘텐츠에 대한 액세스 권한이 없습니다. 
즉, 권한이 없으므로 서버가 요청 된 리소스 제공을 거부합니다. 
404 Not Found 서버가 요청 된 리소스를 찾을 수 없습니다. 
브라우저에서 이는 URL이 인식되지 않음을 의미합니다.
405 Method Not Allowed 요청 방법은 서버에서 알고 있지만 비활성화되어 사용할 수 없습니다.
즉 허용되지 않는 메소드로 요청을 한 경우입니다.
406 Not Acceptable 웹 서버가 서버 기반 콘텐츠 협상(방화벽)을 수행 한 후 사용자 에이전트가 제공 한 기준에 맞는 콘텐츠를 찾지 못할 때 전송됩니다 .
407 Proxy Authentication Required 클라이언트가 먼저 프록시로 자신을 인증해야 함을 나타냅니다.
408 Request Timeout 클라이언트는 서버가 대기 할 준비가 된 시간 내에 요청을 생성하지 않았습니다.
409 Conflict 리소스의 현재 상태와 충돌하여 요청을 완료 할 수 없습니다.
410 Gone 요청 된 리소스는 더 이상 서버에서 사용할 수 없으며 전달 주소를 알 수 없습니다.
411 Length Required 서버는 정의 된 Content- Length 값 없이 요청해서 수락을 거부합니다.
412 Precondition Failed 클라이언트는 서버 해더에 맞지 않는 정보로 전제 조건을 표시했습니다.
413 Payload Too Large 요청 엔터티가 서버에서 정의한 제한보다 큽니다. 
414 URI Too Long 클라이언트가 요청한 URI가 서버가 해석하려는 것보다 깁니다.
415 Unsupported Media Type 요청 된 데이터의 미디어 형식이 서버에서 지원되지 않으므로 서버가 요청을 거부합니다.
416 Requested Range Not Satisfiable Range요청 의 헤더 필드에 지정된 범위를 충족 할 수 없습니다. 
범위가 대상 URI의 데이터 크기를 벗어날 수 있습니다.
417 Expectation Failed Expect요청 헤더 필드에 표시된 예상을 서버에서 충족 할 수 없음을 의미합니다.
418 I'm a teapot 서버는 커피 포트 제어 프로토콜(HTCPCP)를 추출하려는 시도를 거부합니다.
421 Misdirected Request 요청이 응답을 생성 할 수없는 서버로 보내졌습니다. 
422 Unprocessable Entity 요청이 잘 구성되었지만 의미 오류로 인해 따를 수 없습니다.
423 Locked 액세스중인 리소스가 잠겨 있습니다.
424 Failed Dependency 이전 요청이 실패하여 요청이 실패했습니다.
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

서버 오류

서버에 오류가 있어 처리할 수가 없습니다.

 

응답코드 메시지 의미
500 Internal Server Error 서버에 예상치 못한 상황이 발생하여 요청을 수행하지 못했습니다.
501 Not Implemented 요청에 대해 서버에서 지원하지 않아 처리 할 수 ​​없습니다.
502 Bad Gateway 서버가 요청을 처리하는 데 필요한 응답을 얻기 위해 게이트웨이 역할을 하며 엑세스 서버로부터 잘못된 응답을 받았음을 의미합니다.
503 Service Temporarily Unavailable 서버가 요청을 처리 할 준비가되지 않았습니다. 
일반적인 원인은 유지 보수를 위해 다운되었거나 과부하 된 서버입니다.
504 Gateway Timeout 서버가 게이트웨이로 작동하고 엑세스 서버로 부터 시간 내에 응답을받을 수 없을 때 제공됩니다.
505 HTTP Version Not Supported 요청에 사용 된 HTTP 버전이 서버에서 지원되지 않습니다.
506 Variant Also Negotiates 서버에 내부 구성 오류가 있습니다. 
507 Insufficient Storage 서버가 요청을 성공적으로 완료하는 데 필요한 표현을 저장할 수 없기 때문에 리소스에서 메서드를 수행 할 수 없습니다.
508 Loop Detected 서버가 요청을 처리하는 동안 무한 루프를 감지했습니다.
509 Apache bw/limited extension 대역폭 제한 초과 - 비표준
510 Not Extended 서버가 요청을 수행하려면 요청에 대한 추가 확장이 필요합니다.
511 Network Authentication Required 클라이언트가 네트워크 액세스를 얻기 위해 인증해야 함을 나타냅니다.
520 Unknown Error 알수 없는 에러 - 비표준
522 Connection timed out 연결 시간 초과 - 비표준 
525 SSL Handshake Failed SSL 인증 오류 - 비표준
526 Invalid SSL certificates 서버 SSL 인증서 오류 - 비표준

 

감사합니다.

반응형

댓글