HTTP 상태 코드

  • 상태 코드는 서버로부터 리퀘스트 결과를 전달
  • 200 OK와 같이 3자리 숫자와 설명으로 나타남
    • 첫 째 자리는 리스폰스의 클래스를 의미
    • 나머지 2자리는 딱히 분류가 없음

2xx 성공

2xx 리스폰스는 리퀘스트가 정상으로 처리되었음을 나타냄

  • 200 OK: 클라이언트가 보낸 리퀘스트를 서버가 정상적으로 처리하였음
    • 상태 코드와 함께 되돌아 오는 정보는 메소드에 따라 다름
    • GET의 경우, 리퀘스트 리소스에 대응하는 엔티티
    • HEAD의 경우, 리퀘스트 리소스에 대응하는 헤더 필드
  • 204 No Content: 리퀘스트는 성공했지만 리소스는 돌려주지 않음
  • 206 Partial Content: Range에 의해 범위가 지정된 리퀘스트에 의해 서버가 부분적 GET 리퀘스트를 받음

3xx 리다이렉트

3xx 리스폰스는 리퀘스트가 정상적으로 처리를 종료하기 위해 브라우저 측에서 특별한 처리를 수행해야 함을 의미

  • 301 Moved Permanently: 리퀘스트된 리소스에 새로운 URI 부여되어, 이후로는 바뀐 URI를 사용해야 한다고 알림
    • 따라서 북마크가 설정되어 있는 경우, URI 변경을 할 것을 권함
  • 302 Found: 리소스 URI가 일시적으로 다른 곳에 이동되어 있음을 알림
    • 영구적으로 이동한 것은 아니기 때문에 북마크 변경을 권하지 않음
  • 303 See Other: 리소스 URI가 다른 곳에 있다는 것을 알림 + GET 메소드의 사용을 권함
    • 302 Found와 같은 기능이지만, GET 메소드의 사용을 권하기 때문에 303을 사용하는 것이 바람직함
    • 301, 302, 303 리스폰스 코드 수신 시 브라우저는 POST를 GET으로 바꾸어 리퀘스트를 자동으로 재송신
      • 301, 302에서는 POST를 GET으로 바꾸는 것을 금지하지만, 실상에서는 변경하는 것이 대부분
  • 304 Not Modified: 클라이언트가 조건부 리퀘스트를 했을 때 리소스에 대한 접근은 허락하지만, 조건이 만족되지 않았음을 알림
  • 307 Temporary Redirect: 302 Found와 같은 기능 수행

4xx 클라이언트 에러

4xx 리스폰스는 클라이언트의 원인으로 에러가 발생했음을 나타냄

  • 400 Bad Request: 리퀘스트 구문이 잘못되었음을 나타냄
    • 브라우저는 해당 상태 코드를 200 OK와 같이 취급
  • 401 Unauthorized: 리퀘스트에 HTTP 인증 정보가 필요하다는 것을 알림
    • 브라우저에서 처음 401 리스폰스를 받은 경우에는 인증을 위한 다이얼로그가 표시됨
  • 403 Forbidden: 리퀘스트된 리소스의 액세스가 거부되었음을 알림
    • 이유를 명확히 하는 경우에는 Entity Body에 기재해서 유저 측에 표시
  • 404 Not Found: 리퀘스트한 리소스가 서버 상에 없다는 것을 나타냄

5xx 서버 에러

5xx 리스폰스는 서버 원인으로 에러가 발생하고 있음을 나타냄

  • 500 Internal Server Error: 서버에서 리퀘스트를 처리하는 도중에 에러가 발생했음을 알림
  • 503 Service Unavaliable: 일시적으로 서버가 과부하 상태이거나 점검중이기 때문에 리퀘스트 처리가 불가함을 알림
    • 상태가 해소되기까지 걸리는 시간을 Retry-After 헤더 필드에 전달하는 것이 좋음

'Software Convergence > Network' 카테고리의 다른 글

Network Layer (2)  (0) 2018.10.08
Network Layer (1)  (0) 2018.10.07
Transport Layer  (0) 2018.10.07
OSI 7 Layers Overview  (0) 2018.10.01
Application Layer  (0) 2018.09.30

+ Recent posts