📁 상태코드
서버의 요청 처리 결과를 알려주는 세자리 숫자 코드
클라이언트가 서버에 HTTP 요청을 보내면 서버는 요청을 처리하고 응답메세지를 전송한다.
응답메세지의 상태 라인에는 상태 코드가 존재하는데 이를 통해 요청 처리 결과를 확인할 수 있다.
상태코드는 개발자도구의 Network 카테고리에서 확인할 수 있다.
상태코드의 첫번째 숫자는 응답의 종류를 구분하는데에 사용된다.
나머지 두개의 숫자는 세부적인 응답 내용을 구분하는 데에 사용된다.
현재까지 상태코드는 첫자리 숫자에 따라 1XX부터 5XX까지 5가지로 분류되어 있다.
📂 1XX
정보
현재까지 요청을 제대로 받았으며 프로세스를 계속 진행한다.
HTTP 1.1버전부터 추가된 정보를 제공하기 위한 코드이다.
100 Continue
현재까지 진행상태에 문제가 없다.
101 Switching Protocol
서버에서 프로코톨을 변경할 것이다.
프로토콜을 전환할 때 사용된다.
102 Processing
서버가 요청을 받아 처리중이지만, 오랜 시간이 걸릴 것으로 예상된다.
클라이언트에서 타임 아웃이 발생하지 않도록 하기 위해 보낸다.
📂 2XX
성공
요청을 정상적으로 받아 성공적으로 처리하였다.
200 OK
요청이 성공적으로 처리되었다.
요청에 따른 응답으로 정보가 반환된다.
201 Created
요청 처리의 결과로 새로운 리소스가 생성되었다,
주로 POST 요청의 결과로 따라온다.
202 Accepted
요청을 받았지만 처리가 완료되지 않았다.
📂 3XX
리다이렉션
요청을 완벽하게 처리하기 위해 추가적인 작업이 필요하다.
서버의 주소나 요청한 URI의 웹 문서가 다른 곳으로 이동했으니 그 주소로 다시 시도하라는 경우이다.
301 Moved Permanently
요청한 리소스의 URI가 변경되었다.
변경된 URI는 응답 헤더 Location에 기록되어 있다.
303 See Other
다른 위치로 요청하라.
요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때 보내는 응답이다.
브라우저의 폼 요청을 POST로 처리하고 그 결과 화면으로 리다이렉트 시킬 때 자주 사용된다.
📂 4XX
클라이언트 오류
요청 메세지에 오류가 있어 서버가 요청을 받을 수 없다.
400 Bad Request
요청의 구문이 잘못되었다.
잘못된 문법으로 인해 서버가 요청을 이해할 수 없을 때 보내는 응답이다.
401 Unauthorized
비인증 상태로 리소스에 엑세스할 수 없다.
HTTP 표준에서는 미승인(unauthorized)라고 하지만, 사실상 비인증(unauthenticated) 상태를 의미한다.
요청에 대한 응답을 받기 위해서는 반드시 인증이 선결되어야 한다.
403 Forbidden
요청한 리소스에 접근할 권한이 없다.
401과 다른 점은 서버는 클라이언트가 누구인지 알고 있다는 것이다.
404 Not Found
요청한 리소스를 찾을 수 없다.
브라우저에 알려지지 않은 URL을 통해 접근했을 때 주로 나타난다.
권한이 없는 사용자로부터 존재 자체를 은폐하고 싶을 때, 403 대신 404를 반환하기도 한다.
📂 5XX
서버 오류
클라이언트의 요청은 유효하지만 서버 내부의 문제로 요청을 처리하는 데에 오류가 발생했다.
500 Internal Service Error
서버에 에러가 발생했다.
클라이언트에서는 정확한 문제에 대해 구체적으로 알 수 없다.
501 Not Implemented
요청한 URI의 메서드를 서버가 구현하지 않았다.
502 Bad Gateway
서버가 게이트웨이로부터 잘못된 응답을 수신했다.
서버가 다른 서버로부터 유효하지 않은 응답을 받은 경우 발생한다.