본문 바로가기

개발/WEB

[REST API] HttpStatus 일반적인 표준

WEB 개발을 기준으로 보통 CRUD라는 용어를 사용하는데 REST API 와 CRUD를 기준으로 설명해 봅시다.

 

CRUD 작업은 Create, Read, Update, Delete의 약자로, 웹 개발에서 데이터를 관리하는 기본적인 작업입니다. 각 작업에 따라 사용하는 표준 HttpStatus는 다음과 같습니다.

 

1. Create (생성)

  • 성공:
    • 201 Created: 리소스가 성공적으로 생성되었음을 나타냅니다.
    • 202 Accepted: 요청은 처리되었지만 아직 완료되지 않았음을 나타냅니다. (비동기 작업)
  • 실패:
    • 400 Bad Request: 요청에 오류가 있음을 나타냅니다.
    • 401 Unauthorized: 사용자가 인증되지 않았음을 나타냅니다.
    • 403 Forbidden: 사용자에게 권한이 없음을 나타냅니다.
    • 409 Conflict: 리소스가 이미 존재하는 경우 나타냅니다.

2. Read (조회)

  • 성공:
    • 200 OK: 요청이 성공적으로 처리되었음을 나타냅니다.
    • 204 No Content: 리소스가 존재하지만 내용이 없는 경우 나타냅니다.
  • 실패:
    • 400 Bad Request: 요청에 오류가 있음을 나타냅니다.
    • 401 Unauthorized: 사용자가 인증되지 않았음을 나타냅니다.
    • 403 Forbidden: 사용자에게 권한이 없음을 나타냅니다.
    • 404 Not Found: 리소스가 존재하지 않는 경우 나타냅니다.

3. Update (수정)

  • 성공:
    • 200 OK: 리소스가 성공적으로 업데이트되었음을 나타냅니다.
    • 204 No Content: 리소스가 업데이트되었지만 내용이 없는 경우 나타냅니다.
  • 실패:
    • 400 Bad Request: 요청에 오류가 있음을 나타냅니다.
    • 401 Unauthorized: 사용자가 인증되지 않았음을 나타냅니다.
    • 403 Forbidden: 사용자에게 권한이 없음을 나타냅니다.
    • 404 Not Found: 리소스가 존재하지 않는 경우 나타냅니다.

4. Delete (삭제)

  • 성공:
    • 200 OK: 리소스가 성공적으로 삭제되었음을 나타냅니다.
    • 204 No Content: 리소스가 삭제되었지만 내용이 없는 경우 나타냅니다.
  • 실패:
    • 400 Bad Request: 요청에 오류가 있음을 나타냅니다.
    • 401 Unauthorized: 사용자가 인증되지 않았음을 나타냅니다.
    • 403 Forbidden: 사용자에게 권한이 없음을 나타냅니다.
    • 404 Not Found: 리소스가 존재하지 않는 경우 나타냅니다.

예시:

GET /users/{id}

  • 사용자 존재:
    • 200 OK: 사용자 정보를 JSON 형식으로 반환합니다.
  • 사용자 없음:
    • 404 Not Found: "사용자가 존재하지 않습니다."라는 메시지를 반환합니다.

POST /users

  • 사용자 생성 성공:
    • 201 Created: 생성된 사용자의 URI를 Location 헤더에 포함하여 반환합니다.
  • 사용자 생성 실패:
    • 400 Bad Request: "유효하지 않은 요청입니다."라는 메시지를 반환합니다.

위의 예시는 일반적인 표준이며, 상황에 따라 다른 HttpStatus를 사용할 수 있습니다.

참고 자료:

 

※ 리소스 = 서버로 부터 생성된 자원(?) 정도로 생각하면 web서버에서 왜 그런 코드로 응답을 했었던 건지 이해가 쉬운것 같습니다.