HTTP 200 OK

표준 성공 응답: 요청이 정상적으로 이해되었으며 응답 본문에 결과가 담겨 있습니다.

HTTP 200의 의미

HTTP 200 OK는 기본 성공 상태입니다. GET 요청의 경우 응답 본문에 요청한 리소스가 포함되어 있음을 의미하며, POST의 경우 작업이 완료되었고 본문에 그 결과가 설명되어 있음을 의미합니다. 웹에서 단연 가장 흔한 상태 코드로, 정상적인 페이지 조회, API 읽기, 자산 다운로드는 모두 200으로 끝납니다.

200은 항상 응답 본문을 포함하며(204와 달리), 새 리소스가 생성되었음을 의미하지 않습니다(그것은 201입니다). 오류 페이지에 200을 반환하는 것, 이른바 소프트 오류는 흔한 API 및 SEO 안티패턴입니다. 클라이언트와 검색 엔진이 해당 응답을 유효한 콘텐츠로 취급하기 때문입니다.

200 응답의 일반적인 원인

  • 페이지, API 리소스 또는 파일이 정상적으로 제공되었습니다.
  • 폼 제출 또는 API 호출이 완료되어 데이터가 반환되었습니다.
  • 캐시된 사본이 재검증되어 CDN 엣지에서 제공되었습니다(연령 및 캐시 헤더를 확인하세요).
  • 404나 500 대신 200으로 응답하도록 잘못 설정된 오류 페이지입니다(소프트 오류).

개발자를 위한 모범 사례

  • 요청이 실제로 성공했을 때만 200을 반환하세요. 생성에는 201을, 빈 성공에는 204를, 실패에는 4xx/5xx를 사용하세요.
  • “찾을 수 없음” 콘텐츠를 200 상태로 제공하지 마세요. 검색 엔진이 이를 색인하고 모니터링 도구가 실패를 놓치게 됩니다.
  • 프록시와 브라우저가 본문을 올바르게 처리할 수 있도록 정확한 Content-Type과 캐싱 헤더를 포함하세요.

응답 예시

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=300

{"status":"ok","items":[...]}

SEO 영향

SEO 관점에서 200은 URL이 살아 있고 색인 가능하다는 신호입니다. 실제 정규(canonical) 콘텐츠만 200으로 응답하도록 해야 합니다. 중복되거나 비어 있는 페이지가 200을 반환하면 크롤링 예산을 낭비하고 Google Search Console에서 소프트 404로 표시될 수 있습니다.

자주 묻는 질문

성공한 모든 요청은 200을 반환하나요?

아닙니다. 생성 성공은 201을, 빈 성공 응답은 204를, 부분 다운로드는 206을 반환해야 합니다. 200은 그저 가장 일반적인 성공 코드입니다.

소프트 404란 무엇인가요?

사용자에게는 오류 메시지를 보여주지만 HTTP 200으로 응답하는 페이지입니다. 검색 엔진이 이를 색인하거나 Search Console에서 소프트 404로 표시할 수 있습니다.

200 응답도 캐시될 수 있나요?

예. 캐시 여부와 기간은 Cache-Control, ETag, Last-Modified 같은 헤더로 제어됩니다.