로그인 입점하기
← 가이드 목록
시작하기

204 뜻 | No Content — 요청은 성공했지만 보여줄 내용이 없을 때

204 뜻은 No Content, 요청 성공 후 응답 본문이 없을 때입니다. 200·201과의 차이, 삭제·설정·API, 202·404와의 구분까지 초보 기준으로 정리합니다.

204 뜻 | No Content — 요청은 성공했지만 보여줄 내용이 없을 때

요청은 정상 처리됐지만 추가로 돌려줄 본문이 없을 때 쓰는 HTTP 상태 코드가 204 No Content입니다. 오류가 아니라 2xx 성공 계열입니다.

쉽게 말하면 — 요청하신 작업은 정상적으로 끝났습니다. 따로 보여드릴 내용은 없습니다.

삭제·설정 저장·읽음 처리 등 요청이 성공하고 응답 본문 없이 204 No Content가 반환되는 흐름
요청 → 처리 완료 → 본문 없음 → 204

확인 도장만 찍어 주는 것과 비슷합니다

문서를 제출해 처리가 끝났는데, 새 결과 서류 대신 「처리 완료」만 알려 주는 상황과 같습니다. No Content는 「내용 없음」이지만, 처리할 일이 없었다는 뜻이 아니라 응답 본문을 안 보낸다는 뜻입니다.


200·201과의 차이

  • 200 OK — 정상 처리 + 결과 본문을 보낼 수 있음
  • 201 Created — 정상 처리 + 새 자원 생성
  • 204 No Content — 정상 처리 + 돌려줄 본문 없음

204 응답에 긴 JSON·HTML을 실으면 의미와 어긋납니다. 새 데이터를 돌려줘야 하면 200이 더 자연스럽습니다. 빈 {}를 보내는 200과, 본문 자체가 없는 204도 구분합니다.


어디에 쓰나

  • 게시글 삭제 — 삭제 성공 후 내용을 다시 줄 필요 없음
  • 회원·설정 수정 — 저장만 하고 프로필을 다시 안 보내도 될 때
  • 좋아요·읽음·즐겨찾기 해제 — 상태만 반영
  • 로그아웃 — 세션 제거 후 본문 없이 성공

화면이 하얗게 비는 것과는 다릅니다. 버튼 뒤에서 ajax로 요청하고 204를 받은 뒤, 현재 페이지는 유지한 채 버튼만 바꾸는 경우가 많습니다. 일반 사용자는 「저장되었습니다」 안내만 봅니다.

삭제·수정이 항상 204는 아닙니다. 메시지·수정된 데이터를 돌려주면 200을 쓸 수 있습니다. DELETE도 「본문이 없을 때 204」 정도로 이해하면 됩니다.


404·202와는 다릅니다

  • 204 — 요청 성공, 본문 없음
  • 404 — 자원을 찾을 수 없음
  • 202 Accepted — 접수는 됐지만 작업이 아직 끝나지 않았을 수 있음

없는 페이지를 204로 대신하면 안 됩니다. 「내용 없음」 단어와 404를 혼동하지 마세요. 대용량 변환처럼 오래 걸리는 작업은 먼저 접수만 알리는 202가 더 맞을 수 있습니다.


검색 0건·빈 장바구니 ≠ 204

검색 결과가 없거나 장바구니가 비어도, 「결과가 없습니다」 화면을 정상으로 보여 주면 보통 200입니다. 「데이터가 없다」와 「HTTP 응답 본문이 없다」는 다릅니다. 회사소개·블로그 같은 SEO 콘텐츠 페이지에 의도치 않은 204가 나오면 설정을 점검하세요.


운영자가 알면 좋은 점

「삭제 API가 성공하면 204」라는 말은 삭제 완료·추가 응답 데이터 없음으로 이해하면 됩니다. 실제로는 실패했는데 204만 주면 프로그램이 성공으로 오판합니다. 상태 코드와 실제 결과가 맞아야 합니다. 401·400·500과 함께 결과를 구분하는 약속입니다.


자주 묻는 질문

204 No Content란?

요청 성공 + 응답 본문이 없다는 뜻입니다.

오류인가요?

아닙니다. 2xx 성공입니다.

200과 차이는?

둘 다 성공이지만 200은 본문을 보낼 수 있고, 204는 본문이 없습니다.

삭제 성공에 쓸 수 있나요?

추가로 반환할 내용이 없으면 사용할 수 있습니다.

검색 0건이면 204?

반드시 아닙니다. 「결과 없음」 화면을 보여 주면 보통 200입니다.

404와 차이는?

204는 성공, 404는 자원을 찾지 못한 상태입니다.


정리

200 = 처리 + 결과 본문 · 201 = 처리 + 새 생성 · 204 = 처리 + 본문 없음

삭제·설정·읽음·로그아웃처럼 성공 여부만 알면 충분한 기능에서 쓸 수 있습니다. 요청은 받았지만 아직 작업이 끝나지 않은 경우에는 202 Accepted가 더 잘 어울립니다. 자세한 설명은 202 Accepted란?을 참고하세요.