201 Created는 요청이 처리되어 하나 이상의 새 리소스가 생성되었다는 뜻입니다. API는 보통 컬렉션에 대한 POST나 새 URL에 대한 PUT 다음에 이 코드를 반환합니다. 대표가 되는 새 리소스는 Location 헤더로 식별하며, Location이 없으면 요청 URL이 그 리소스를 가리킵니다.
본문에는 보통 새 리소스에 대한 설명이나 링크가 담깁니다. 응답에 있는 ETag 같은 검증자는 새로 생성된 표현(representation)에 적용되므로, 클라이언트는 이를 이후의 조건부 요청에 사용할 수 있습니다.
3xx 응답과 달리 201의 Location 헤더는 리디렉션이 아닙니다. 브라우저와 HTTP 클라이언트는 이를 자동으로 따라가지 않습니다.
응답 예시
HTTP
HTTP/1.1 201 Created
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://api.example.com/v1/orders/8412
Content-Type: application/json
Content-Length: 30
{"id":8412,"status":"pending"} SEO 및 리디렉션 검사
201은 API와 폼 처리기에 쓰는 코드이며, 색인되어야 할 페이지에 쓰는 코드가 아닙니다. 크롤러는 201을 받으면 성공으로 처리하지만, 공개 페이지 URL은 200을 반환해야 합니다. 브라우저에서 폼을 제출한 뒤에는 그 대신 303 See Other로 응답하는 것이 일반적입니다. 그래야 결과 페이지를 새로 고쳐도 폼이 다시 제출되지 않습니다.
주요 원인과 사용 사례
- REST API가 레코드를 생성하고(
POST /orders)Location에 그 URL을 담아 반환합니다. - 이전에 없던 URL로
PUT을 사용해 파일을 업로드했습니다. - 페이지일 것이라 예상한 URL의 리디렉션 검사 결과가 201로 나옵니다. 해당 엔드포인트가 API이거나, 검사에 POST를 사용한 것입니다. 고급 설정에서 HTTP 메서드를 확인하세요.