클라이언트가 서버를 향해 리퀘스트를 보낼 때 서버에서 그 결과가 어떻게 되었는지 알려주는 것이 상태코드의 역할
-> 정상적으로 처리했는지, 리퀘스트 결과가 에러였는지
클래스 | 설명 | |
---|---|---|
1xx | informational | 리퀘스트를 받아들여 처리중 |
2xx | Success | 리퀘스트를 정상적으로 처리했음 |
3xx | Redirection | 리퀘스트를 완료하기 위해서는 추가 동작 필요 |
4xx | Client Error | 서버는 리퀘스트 이해 불가능 |
5xx | Server Error | 서버는 리퀘스트 처리 실패 |
리퀘스트가 정상 처리되었음을 나타냄
클라이언트가 보낸 리퀘스트를 서버가 정상 처리했음을 나타냄
리퀘스트를 받아서 처리하는데는 성공했지만 리스폰스에 엔티티 바디를 포함하지 않음
-> 클라이언트에서 서버에 정보를 보내는 것으로 족하고, 클라이언트에 대해서 새로 정보를 보낼 필요가 없는 경우에 사용됨
Range에 의해서 범위가 지정된 리퀘스트에 의해서 서버가 부분적 GET 리퀘스트를 받았음을 나타냄
-> 리스폰스에 Content-Range로 지정된 범위의 엔티티가 포함됨
리퀘스트가 정상적으로 처리되기 위해 브라우저 측에서 특별한 처리를 수행해야 함을 나타냄
요청한 페이지가 영구적으로 이동되었음을 나타냄
-> 이 경우, 브라우저는 자동적으로 새로운 주소로 리다이렉트
합니다. 이 상태 코드는 웹 페이지를 옮기거나, 기존 웹 페이지를 삭제할 때 사용
요청한 페이지가 잠시 이동되었음을 나타냄
-> 이 경우, 브라우저는 일반적으로 새로운 주소로 리다이렉트하지만, 새로운 주소로 계속 요청을 합니다. 이 상태 코드는 일시적으로 웹 페이지를 옮길 때 사용
요청한 페이지를 다른 주소로 리다이렉트
하라는 것을 의미
-> 예를 들어, 사용자가 특정 웹 페이지를 요청했을 때, 서버는 이 요청을 받아들이지만, 현재 요청한 페이지를 보여주는 것이 아니라 새로운 주소로 리다이렉트 하라는 응답을 보낼 수 있습니다. 이때 서버는 HTTP 상태 코드로 303 See Other를 보내며, 이 상태 코드를 받은 브라우저는 GET 메소드를 사용하여 새로운 주소로 요청을 재시도
301,302,303 리스폰스 코드가 되돌아 오면, 대부분의 브라우저에서는 POST를 GET으로 바꾸어서 리퀘스트의 엔티티 바디를 삭제하고 리퀘스트를 자동적으로 재송신하도록 되어 있음
클라이언트가 조건부 리퀘스트를 했을 때, 리소스에 대한 엑세스는 허용하지만, 조건이 충족되지 않았음을 의미
-> 리스폰스 바디에 어느것도 포함되면 안되고, 3xx이지만 리다이렉트와는 관련이 없음
ex)
304는 요청한 페이지가 수정되지 않았음을 의미함
-> 사용자가 웹 브라우저를 통해 특정 웹 페이지를 요청했을 때, 서버는 그 요청에 대해 응답을 보내면서 해당 페이지의 마지막 수정 시간(Last-Modified) 헤더를 포함하여 보냅니다. 그리고 사용자가 그 페이지를 다시 요청 할때 클라이언트가 If-Modified-Since 헤더를 포함하여 서버에 요청을 하면 서버는 페이지의 수정시간을 다시 확인하여, 페이지가 수정되지 않았다면 HTTP 304 상태 코드를 응답으로 보내며 이때 페이지 내용은 전송되지 않음
웹 서버와 클라이언트 간의 네트워크 트래픽을 줄이고, 웹 페이지를 더 빠르게 로딩 할 수 있도록 하는 데 도움
Temporary Redirect는 요청한 페이지가 잠시적으로 다른 주소로 이동되었음을 나타내는 상태 코드 -> 302 Found와 같은 의미
307 Temporary Redirect는 서버가 요청을 처리하지 않고, 다른 주소로 요청을 전달하라는 의미
-> 잠시적으로 웹 페이지를 옮길 때 사용됨
클라이언트의 원인으로 에러가 발생했음을 의미
리퀘스트 구문이 잘못되었음을 나타냄
-> 리퀘스트 내용을 재검토하고 나서 재송신할 필요 있음
-> 브라우저는 이것을 200 OK와 같게 취급함
송신된 리퀘스트에 HTTP 인증이 필요하다는 것을 나타냄
-> ex) 클라이언트가 서버에 요청을 할 때 필요한 인증 정보(예를 들면, 사용자 이름과 비밀번호)를 제공하지 않아 인증되지 않았을 경우 반환
-> 인증에 사용되는 기술로는 Basic Authentication, Digest Authentication, OAuth
리퀘스트된 리소스의 엑세스가 거부되었음을 나타냄
-> 서버 측에서 거부 이유를 엔티티 바디에 기재해서 유저 측에 표시
-> ex) 파일 시스템의 퍼미션이 부여되지 않은 경우, 엑세스 권한에 문제가 있는 경우(ex : 허가되지 않은 송신 IP 주소의 엑세스)등
리퀘스트한 리소스가 서버상에 없다는 것을 나타냄
서버 원인으로 에러가 발생하고 있음을 나타냄
서버에서 리퀘스트를 처리하는 도중에 에러가 발생하였음을 나타냄
서버가 일시적으로 과부하 상태거나, 점검중이기 때문에 현재 리퀘스트를 처리할 수 없음을 나타냄
-> 해소 되기 까지 시간이 걸리는 경우 Retry-After 헤더 필드에 따라 클라이언트에 전달하는 것이 바람직
상태 코드가 현재 상황과 불일치 할수도 있다는 점 유의
-> ex) 애플리케이션 에러가 발생한 경우 상태 코드로는 200OK가 되돌아오는 경우