클라이언트가 HTTP 리퀘스트를 보낸 결과를 알려준다.
상태 코드
: 클라이언트가 보낸 리퀘스트를 서버에서 처리한 결과를 알려준다.
클래스 정의만 지킨다면, 정의된 상태코드를 변경하거나 서버 독자의 상태 코드를 만들 수도 있다.
리퀘스트가 정상으로 처리되었다.
200 ok
: 클라이언트의 리퀘스트를 서버가 정상 처리한 경우
: 메소드에 따라 리스폰스에 포함된 정보가 달라진다
204 No Content
: 서버가 리퀘스트를 처리했으나, 리스폰스에 엔티티 바디가 포함되지 않은 경우
: 클라이언트가 새로운 정보 받을 필요 없이 정보를 보내기만 하면 되는 경우.
206 Partial Content
: Range에 의해 지정된 리퀘스트에 의해서 서버가 부분적 GET 리퀘스트를 받은 경우
리퀘스트의 처리를 위해 브라우저 측에서 특별한 처리를 수행해야 한다.
301 Moved Permanently
: 리소스에 새로운 URI가 부여되었으니 새로운 URI를 사용해라
: 마지막에 슬래시(/) 잊은 경우 등
302 Not Found
: 리소스에 새로운 URI가 부여되었으니 새로운 URI를 사용해라
: 일시적 이동이라는 점에서 301과 차이
: 북마크의 경우, 북마크 변경이 아닌 302 리턴 페이지에 대해 북마크
303 See Other
: 리퀘스트에 대한 리소스가 다른 URI에 있으니 GET을 사용해라
: 리다이렉트 장소를 GET 메소드로만 얻어야 한다는 점에서 302와 차이
301, 302, 303 리스폰스 코드의 경우, 대부분의 브라우저가 POST를 GET으로 바꾸어 리퀘스트를 재송신한다.
304 Not Modified
: 클라이언트의 조건부 리퀘스트에 대해 리소스에 대한 액세스는 허용하나, 조건은 충족하지 못한 경우
: 리스폰스 바디에 아무것도 포함 X
: 리다이렉트랑 관계 없음
307 Temporary Redirect
: 302와 같은 의미
: 302는 POST를 GET으로 치환함 (금지되어 있는데)
: 307은 브라우저 사양에 따라 POST를 GETt으로 치환하지 않는다
클라이언트의 원인으로 에러가 발생했다.
400 Bad Request
: 리퀘스트 구문이 잘못되었다
: 리퀘스트 내용 수정 후 재송신 필요. 브라우저는 200 OK와 동일하게 취급한다
401 Unauthorized
: 송신한 리퀘스트에 HTTP 인증 정보가 필요하다.
: 1번 리퀘스트가 이루어진 경우, 유저 인증에 실패했음을 알린다.
403 Forbidden
: 리퀘스트된 리소스의 액세스가 거부되었다.
: 서버측의 거부 이유를 명확하게 할 경우, 엔티티 바디에 기재한다.
: 파일 시스템의 퍼미션 문제, 액세스 권한 문제 등
404 Not Found
: 리퀘스트한 리소스가 서버상에 없다.
: 서버 측에 해당 리퀘스트를 거부하고 싶은 이유를 명시하고 싶지 않은 경우도 해당
서버 원인으로 에러가 발생했다.
500 Internal Server Error
: 서버에서 리퀘스트를 처리하는 도중에 에러가 발생했다.
: 웹 어플리케이션의 일시적 에러 등
503 Service Unavaliable
: 일시적으로 서버가 과부하 상태이거나 점검중이기 때문에 리퀘스트를 처리할 수 없다
: 해소될 때까지 시간이 걸린다면 Retry-After 헤더 필드에 따라 클라이언트에 전달하는 것이 좋다