HTTP Status Code

smlee·2022년 5월 27일
0

Back-end

목록 보기
7/26

개발을 진행하는 도중 HTTPS 리다이렉션 설정을 하면서 301번의 HTTP Status Code를 설정해주는 작업을 하였다. 그래서 이왕이면 자주 쓰는 HTTP 상태 코드 위주로 정리하려고 한다.

1. 1xx - Informational

100번대는 정보를 나타내는 상태 코드로, 요청을 받았으며, 프로세스를 계속 진행함을 뜻하는 상태코드이다. 해당 코드는 HTTP 1.0에서는 지원되지 않는다.

(1) 100 Continue

진행 중임을 나타내는 응답코드로, 현재까지 진행상태에 문제가 없으며 클라이언트가 계속해서 요청하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려준다.

(2) 101 Switching Protocols

이 코드는 클라이언트에 의해 보낸 업그레이드 요청 헤더에 대한 응답으로 보내지는 상태코드이다. 이 코드는 서버에서 프로토콜을 변경할 것임을 알려주는 상태코드이다.

(3) 102 Processing (WebDAV)

이 코드는 서버가 요청을 수신하였으며, 이를 처리하고 있지만 제대로된 응답을 알려줄 수 없음을 뜻하는 상태코드이다.

2. 2xx - Success

200번대는 요청을 성공적으로 받았으며 인식했고 수용했다는 뜻을 가진 상태코드이다.

(1) 200 OK

요청이 성공적으로 처리되었음을 나타내주는 상태코드이다. 클라이언트가 요청한 정보에 따른 응답으로 반환된다.

  • 요청을 성공했다는 의미는 HTTP method에 따라 달라진다
    1. GET : 리소스를 불러와서 메시지 바디에 전송되었다.
    1. HEAD : 개체 헤더가 메시지 바디에 있다
    2. PUT / POST : 수행 결과에 대한 리소스가 메시지 바디에 전송되었다.
    3. TRACE : 메시지 바디는 서버에서 수신한 요청 메시지를 포함하고 있다.

(2) 201 Created

요청이 성곡적이었으며, 그 결과로 새로운 리소스가 생성됨을 알려주는 상태코드이다. 201번의 상태코드는 일반적으로 POST 요청 또는 일부 PUT 요청 이후 따라 온다.

(3) 202 Accepted

요청을 수신하였지만 그에 응하여 행동할 수 없습니다. 이 응답은 요청 처리에 대한 결과를 이후에 HTTP로 비동기 응답을 보내는 것에 대해서 명확하게 명시하지 않습니다. 이것은 다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해 만들어졌습니다.

(4) 204 No Content

요청에 대해서 보내줄 수 있는 콘텐츠가 없지만, 헤더는 의미있을 수 있습니다. 사용자-에이전트는 리소스가 캐시된 헤더를 새로운 것으로 업데이트 할 수 있습니다.

3. 3xx - Redirection

300번대는 요청 완료를 위해 추가 작업 조치가 필요함을 나타내는 상태코드이다.

(1) 301 Moved Permanently

이 응답 코드는 요청한 리소스의 URI가 변경되었음을 의미합니다. 새로운 URI가 응답에서 아마도 주어질 수 있습니다.

(2) 304 Not Modified

이것은 캐시를 목적으로 사용됩니다. 이것은 클라이언트에게 응답이 수정되지 않았음을 알려주며, 그러므로 클라이언트는 계속해서 응답의 캐시된 버전을 사용할 수 있습니다.

(3) 308 Permanent Redirect

이것은 리소스가 이제 HTTP 응답 헤더의 Location: 에 명시된 영구히 다른 URI에 위치하고 있음을 의미합니다. 이것은 301 Moved Permanently HTTP 응답 코드와 동일한 의미를 가지고 있으며, 사용자 에이전트가 반드시 HTTP 메소드를 변경하지 말아야 하는 점만 다르다. 만약 첫 요청에 POST가 사용되었다면, 두번째 요청도 반드시 POST를 사용해야 합니다.

4. 4xx - Client Error

400번대는 클라이언트 오류를 뜻한다. 즉, 요청의 문법이 잘못되었거나 요청을 처리할 수 없음을 의미하는 상태코드이다.

(1) 400 Bad Request

이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미합니다.

(2) 401 Unauthorized

비록 HTTP 표준에서는 미승인(unauthorized)를 명확히 하고 있지만, 의미상 이 응답은 비인증(unauthenticated)을 의미합니다. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 합니다.

(3) 403 Forbidden

클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다. 예를들어 그들은 미승인이어서 서버는 거절을 위한 적절한 응답을 보냅니다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있습니다.

5. 5xx - Server Error

500번대는 서버 오류를 뜻하며, 서버가 유효한 요청에 대해 충족 실패함을 뜻하는 상태 코드이다.

(1) 500 Internal Server Error

서버가 처리 방법을 모르는 상황이 발생했습니다. 서버는 아직 처리 방법을 알 수 없습니다.

(2) 502 Bad Gateway

이 오류 응답은 서버가 요청을 처리하는 데 필요한 응답을 얻기 위해 게이트웨이로 작업하는 동안 잘못된 응답을 수신했음을 의미합니다.

(3) 503 Service Unavailable

서버가 요청을 처리할 준비가 되지 않았습니다. 일반적인 원인은 유지보수를 위해 작동이 중단되거나 과부하가 걸렸을 때 입니다. 이 응답과 함께 문제를 설명하는 사용자 친화적인 페이지가 전송되어야 한다는 점에 유의하십시오. 이 응답은 임시 조건에 사용되어야 하며, Retry-After: HTTP 헤더는 가능하면 서비스를 복구하기 전 예상 시간을 포함해야 합니다. 웹마스터는 또한 이러한 일시적인 조건 응답을 캐시하지 않아야 하므로 이 응답과 함께 전송되는 캐싱 관련 헤더에 대해서도 주의해야 합니다.


📚 레퍼런스

MDN Web Docs - HTTP Status Code

0개의 댓글