Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

스터디

HTTP 상태 코드 본문

백엔드

HTTP 상태 코드

_민영 2023. 4. 6. 22:37

< HTTP 상태 코드 >

클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단한다.

 

> HTTP 상태 코드 분류

  • 1xx (Informational): 조건부 응답
  • 2xx (Successful): 성공
  • 3xx (Redirection): 리다이렉션 완료
  • 4xx (Client Error): 요청 오류
  • 5xx (Server Error): 서버 오류

 

> 1xx (Informational): 조건부 응답

요청이 수신되어 처리 중을 의미한다. (이 상태 코드를 만날 일은 거의 없다고 한다.)

상태 코드 설명
100 Continue (클라이언트가 서버로 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미한다.)

 

> 2xx (Successful): 성공

요청을 정상적으로 처리했음을 의미한다.

상태 코드 설명
200 OK (요청이 성공적으로 수행되었음을 의미한다.)
201 Created (요청이 성공적으로 수행되었으며, 그 결과로 새로운 리소스가 생성됨을 의미한다.)
202 Accepted (요청은 접수되었지만 처리는 완료되지 않음을 의미한다.)
203 Non-Authoritative Information (요청이 성공적으로 수행되었으나 요청에 대한 검증이 되지 않음을 의미한다.)
204 No Content (요청이 성공적으로 수행되었고 응답 payload에 보낼 데이터가 없음을 의미한다.)
205 Reset Content (서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 클라이언트가 콘텐츠를 재설정할 것을 요구한다.)
206 Partial Content (서버가 GET 요청의 일부만 성공적으로 처리했음을 의미한다.)

 

> 3xx (Redirection): 리다이렉션 완료

요청 완료를 위해 추가 작업 조치가 필요함을 의미한다.

주로 리다이렉트를 할 때 많이 사용된다.

해당 응답을 받으면 브라우저는 HTTP 헤더에 들어있는 Location 필드를 찾아 해당 필드가 존재할 경우 Location 필드에 담긴 URL로 자동으로 리다이렉트한다.

상태 코드 설명
300 Multiple Choices (요청에 대해 하나 이상의 리소스가 존재함을 의미한다.)
301 Moved Permanently (요청한 리소스의 URI가 변경되었음을 의미한다.)
302 Found (요청한 리소스의 URI가 일시적으로 변경되었음을 의미한다.)
303 See Other (요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때의 응답이다.)
304 Not Modified (리소스가 수정되지 않았음을 의미한다.)
307 Temporary Redirect (302와 유사하며, 클라이언트는 HTTP 메소드를 유지한 채 요청을 재송신할 필요가 있음을 의미한다.)
308 Permanent Redirect (301과 유사하며, 클라이언트는 HTTP 메소드를 유지한 채 요청을 재송신할 필요가 있음을 의미한다.)

리다이렉션 종류

  • 영구적인 리다이렉션 (301, 308)
    • 301은 리다이렉트시킬 때 HTTP 메소드를 GET으로 바꾸고 Body 없이 전송한다.
    • 308은 전송받은 HTTP 메소드를 유지하고 Body도 유지하여 전송한다.
  • 일시적인 리다이렉션 (302, 307, 303)
    • 302는 리다이렉트시킬 때, HTTP 메소드를 GET으로 바꾸고 Body 없이 전송한다.
    • 307은 전송받은 HTTP 메소드를 유지하고 Body도 유지하여 전송한다.
    • 303은 리다이렉트시킬 때 HTTP 메소드를 무조건 GET으로 바꾼다. (302가 애매모호해서 303으로 명확하게 정의되었다고 한다.)
    • 일시적인 리다이렉션(302, 303)을 사용하면 POST->GET 요청으로 변경하여 페이지 새로고침 등의 동작으로 POST 요청 중복 처리 되는 것을 방지할 수 있다.
  • 특수 리다이렉션 (304)
    • 캐싱된 리소스를 사용한다.

 

> 4xx (Client Error): 요청 오류

클라이언트 오류(잘못된 문법 등)로 인해 서버가 요청을 처리할 수 없음을 의미한다.

상태 코드 설명
400 Bad Request (잘못된 문법 등으로 인해 클라이언트가 올바르지 못한 요청을 보내 서버가 요청을 이해할 수 없음을 의미한다.)
401 Unauthorized (인증되지 않은 사용자가 인증이 필요한 리소스를 요청하는 경우의 응답이다. 보통 로그인이 필요한 API를 비로그인 사용자가 호출했을 때 사용된다.)
403 Forbidden (클라이언트가 콘텐츠에 접근할 권한을 가지고 있지 않음을 의미한다. 401과 다른ㄹ 점은 서버가 클라이언트가 누구인지 알고 있다는 것이다. 보통 특정 IP나 국가가 차단되어있는 사이트에 접속을 시도한 경우 사용된다.)
404 Not Found (요청한 리소스가 존재하지 않음을 의미한다. 인증되지 않은 클라이언트로부터 리소스를 숨기기 위해 403 대신 이 응답을 전송하기도 한다.)
405 Method Not Allowed (현재 리소스에 맞지 않는 메소드를 사용했음을 의미한다.)
406 No Acceptable (알맞은 콘텐츠 타입이 없음을 의미한다. 서버의 리소스가 클라이언트의 HTTP 헤더에 들어있는 Accept 필드에 명시된 콘텐츠 타입이 아닌 경우의 응답이다.)
408 Request Timeout (요청에 응답하는 시간이 너무 오래 걸림을 의미한다.)
409 Conflict (요청이 현재 서버의 상태와 충돌될 때의 응답이다.)
412 Precondition Failed (서버가 요청자가 요청 시 부과한 사전 조건을 만족하지 않을 때의 응답이다.)
413 Payload Too Large (요청이 너무 커서 서버가 처리할 수 없을 때의 응답이다.)
429 Too many Requests (클라이언트가 지정된 시간에 너무 많은 요청을 보낸 경우의 응답이다.)

 

> 5xx (Server Error): 서버 오류

서버 오류로 인해 서버가 정상 요청을 처리하지 못함을 의미한다.

상태 코드 설명
500 Internal Server Error (서버에 오류가 발생하여 응답할 수 없음을 의미한다. 서버에 오류가 발생했으나 처리 방법을 알 수 없을 경우의 응답이다.)
501 Not Implemented (클라이언트 요청에 대한 서버의 응답 수행 기능이 없음을 의미한다.
502 Bad Gateway (서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미한다. 서버의 부모 서버에서 오류가 발생한 경우의 응답이다. 보통 서버에 접속하는 사용자가 많아 과부화될 때 발생한다.)
503 Service Unavailable (서버가 요청을 처리할 준비가 되지 않음을 의미한다. 일반적으로 유지보수를 위해 작동이 중단되거나 과부하가 걸린 경우의 응답이다.)
504 Gateway Timeout (서버가 게이트웨이 역할을 하고 있으며, 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미한다.)

 

 

 

 

 

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 

'백엔드' 카테고리의 다른 글

[JavaScript] async/await  (0) 2023.04.06
JavaScript promise  (1) 2023.04.06
HTTP Method  (0) 2023.04.06
객체와 인스턴스 차이  (0) 2023.04.05
객체지향 5원칙(SOLID)  (2) 2023.04.04