201 Created란? 새로운 데이터가 만들어졌을 때 사용하는 HTTP 상태 코드 쉽게 이해하기
201 Created는 요청 성공과 함께 새 자원이 생성됐다는 뜻입니다. 200과의 차이, POST, Location, 204, 가입·주문·API까지 초보 기준으로 정리합니다.
서버는 페이지를 보여 주기만 하는 것이 아닙니다. 회원가입·게시글 작성·주문·예약·문의처럼 새로운 데이터를 만드는 요청도 많습니다.
201 Created는 요청을 정상 처리했고, 그 결과 새로운 데이터(자원)가 만들어졌을 때 쓰는 HTTP 상태 코드입니다.
쉽게 말하면 — 요청하신 작업을 처리했고, 새로운 항목도 만들었습니다.
거래처 등록과 비슷합니다
요청만 받은 것이 아니라 시스템에 새 거래처가 실제로 등록된 상태와 같습니다. Created는 「생성됨」입니다. 회원·게시글·주문·예약·댓글·프로젝트 생성과 잘 맞습니다.
200과의 차이
- 200 OK — 요청을 정상 처리
- 201 Created — 정상 처리 + 새 자원 생성
회사소개처럼 이미 있는 페이지를 보여 주는 GET은 보통 200이 자연스럽습니다. 새 글을 만드는 POST가 성공하면 201을 쓸 수 있습니다. 다만 POST가 항상 201은 아닙니다. 로그인·검색·명령 실행처럼 새 자원을 안 만들면 다른 성공 코드가 맞습니다. 전체 분류는 HTTP 상태 코드를 참고하세요.
어디에 쓰나
- 회원가입 — 새 회원 행 생성
- 게시글·댓글 — 새 ID 발급·저장
- 주문·예약 — 새 주문번호·예약 건
- 문의 저장 — DB에 새 문의로 남기면 201 가능
문의가 DB에 안 남고 이메일만내면 「새 자원 생성」이 아닐 수 있어 201이 필수는 아닙니다. 실제 처리 내용에 맞춰 고릅니다.
API · Location · 본문
일반 사용자는 「가입 완료」 화면만 보고, 프로그램은 상태 코드로 판단합니다. API에서 201이면 「생성 성공」으로 다음 단계를 이어갈 수 있습니다. 응답에 새 ID·제목·작성일을 실을 수 있고, Location 헤더로 새 주소(예: /posts/135)를 알려 줄 수 있습니다. 헤더 전반은 HTTP 헤더란?을 참고하세요.
204 · 수정·삭제와의 구분
- 201 — 새 문서를 만듦
- 204 — 작업은 끝났고 돌려줄 본문 없음
- 수정 — 기존 자원 변경 → 보통 200/204
- 삭제 — 생성 아님 → 201 아님
201은 오류가 아닙니다. 2xx 성공 계열입니다.
운영자가 알면 좋은 점
직접 설정할 일은 적어도, 「가입 API가 201」이면 새 회원 생성이 성공했다는 뜻으로 이해하면 됩니다. 상태 코드와 실제 결과가 어긋나면 문제입니다. 생성 실패인데 201을 주거나, DB에는 저장됐는데 이후 메일 오류로 500만 보이면 사용자는 실패로 착각하고 중복 주문할 수 있습니다. 결제·주문은 단계별 성공 여부를 명확히 관리해야 합니다.
버튼을 두 번 누르면 주문이 두 개 생길 수 있어, 상태 코드만으로 중복을 막을 수는 없습니다. 별도 중복 방지가 필요합니다. SEO용 기존 콘텐츠 페이지는 보통 200이고, 201은 API·생성 기능에서 더 흔합니다.
자주 묻는 질문
201 Created란?
요청 성공 + 새 자원이 생성되었다는 뜻입니다.
오류인가요?
아닙니다. 2xx 성공입니다.
200과 차이는?
200은 일반 성공, 201은 성공 + 생성이 추가됩니다.
가입에 쓸 수 있나요?
새 회원 데이터가 생기면 사용할 수 있습니다.
POST면 항상 201?
아닙니다. 실제로 새 자원이 생길 때 쓰는 것이 자연스럽습니다.
화면에서 숫자를 보나요?
드뭅니다. 안내 문장을 보고, API·개발 도구에서 코드를 확인합니다. 401·400·500과 구분하는 약속입니다.
정리
200 = 정상 처리 · 201 = 정상 처리 + 새 항목 생성
가입·글쓰기·주문처럼 「새로 만든다」는 기능에서 쓸 수 있습니다. 성공했지만 돌려줄 본문이 없으면 204 No Content를 쓰는 경우도 있습니다. 요청만 접수하고 실제 생성·처리는 뒤에서 이어가면 202 Accepted가 더 맞을 수 있습니다. 자세한 설명은 204 No Content란?, 202 Accepted란?을 참고하세요.