의미
요청이 성공해 새 리소스가 생성되었습니다. 보통 Location 헤더가 그 리소스를 가리킵니다.
흔한 원인
- 컬렉션에 대한 POST로 레코드가 생성됨
- PUT으로 새 URL에 리소스가 생성됨
해결 방법
클라이언트 또는 방문자라면
Location 헤더에서 새 리소스의 URL을 읽거나, API가 본문에 생성된 객체를 포함한다면 그것을 사용하세요.
사이트나 API 운영자라면
새 URL을 Location에 넣고 가능하면 생성된 표현도 반환하세요. 아무것도 생성하지 않았다면 201을 반환하지 마세요. 멱등 재시도에서 기존 항목을 찾으면 200이나 409를 반환할 수 있습니다.
응답 예시
HTTP/1.1
HTTP/1.1 201 Created
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Location: /users/42
Content-Type: application/json
{
"id": 42,
"name": "Ada"
} 명세
자주 묻는 질문
› 201에 Location 헤더가 필수인가요?
강력히 권장됩니다. 없으면 클라이언트가 본문에서 새 URL을 추측해야 합니다.
› 201과 202의 차이는?
201은 리소스가 이미 존재함을, 202는 요청이 접수되어 나중에 처리됨을 뜻합니다.