HTTP Status Codes

HTTP status codes의 완벽한 참고자료예요. 검색하고, 카테고리별로 필터링하고, 각 코드의 사용 시점을 배워봐요.

작동 방식: 아래에서 모든 HTTP status codes를 확인해요. 검색창으로 코드 번호나 이름으로 찾거나, 카테고리별(1xx-5xx)로 필터링할 수 있어요. 아무 코드를 클릭하면 복사돼요.

34개 중 34개 status codes 표시 중

100

Continue

클릭해서 복사

서버가 요청 헤더를 받았고, 클라이언트가 요청 body를 계속 전송해도 된다는 뜻이예요.

101

Switching Protocols

클릭해서 복사

서버가 클라이언트가 요청한 대로 프로토콜을 전환하고 있어요(예: WebSocket으로 업그레이드).

102

Processing

클릭해서 복사

서버가 요청을 받았고 처리 중이지만, 아직 응답이 없어요(WebDAV).

103

Early Hints

클릭해서 복사

최종 HTTP 메시지 전에 일부 응답 헤더를 반환해요. 브라우저가 리소스를 미리 로드할 수 있게 해요.

200

OK

클릭해서 복사

요청이 성공했어요. 의미는 HTTP 메서드에 따라 달라요: GET은 리소스를 반환하고, POST는 작업 결과를 반환해요.

201

Created

클릭해서 복사

요청이 성공했고 새로운 리소스가 생성됐어요. 보통 POST 요청에 대한 응답으로 사용돼요.

202

Accepted

클릭해서 복사

요청이 처리를 위해 받아들여졌지만, 처리가 완료되지 않았어요. 비동기 작업에 사용돼요.

204

No Content

클릭해서 복사

서버가 요청을 성공적으로 처리했지만 반환할 내용이 없어요. DELETE 작업에 흔한 응답이예요.

206

Partial Content

클릭해서 복사

서버가 클라이언트가 보낸 Range 헤더 때문에 리소스의 일부만 제공하고 있어요.

207

Multi-Status

클릭해서 복사

여러 리소스에 대한 정보를 전달하고, 여러 status codes가 적절할 수 있어요(WebDAV).

301

Moved Permanently

클릭해서 복사

리소스가 영구적으로 새 URL로 이동했어요. 검색 엔진이 링크를 업데이트할 거예요. 영구적인 URL 변경에 사용해요.

302

Found

클릭해서 복사

리소스가 임시로 다른 URL에 있어요. 클라이언트는 앞으로 원래 URL을 계속 사용해야 해요.

303

See Other

클릭해서 복사

응답을 GET 요청으로 다른 URL에서 찾을 수 있어요. POST 후 확인 페이지로 리다이렉트할 때 자주 써요.

304

Not Modified

클릭해서 복사

리소스가 마지막 요청 이후 수정되지 않았어요. 캐싱에 사용돼요 — 클라이언트가 캐시된 버전을 사용할 수 있어요.

307

Temporary Redirect

클릭해서 복사

리소스가 임시로 다른 URL에 있어요. 302와 달리, 요청 메서드가 바뀌면 안 돼요(POST는 POST로 유지).

308

Permanent Redirect

클릭해서 복사

리소스가 영구적으로 이동했어요. 301과 달리, 요청 메서드가 바뀌면 안 돼요(POST는 POST로 유지).

400

Bad Request

클릭해서 복사

서버가 잘못된 문법, 잘못된 파라미터, 필수 필드 누락으로 인해 요청을 처리할 수 없어요.

401

Unauthorized

클릭해서 복사

인증이 필요해요. 클라이언트는 이 리소스에 접근하려면 유효한 자격증명(API key, 토큰, 로그인)을 제공해야 해요.

403

Forbidden

클릭해서 복사

서버가 요청을 이해했지만 승인을 거부했어요. 인증이 도움이 안 될 거예요 — 사용자에게 권한이 없어요.

404

Not Found

클릭해서 복사

요청한 리소스를 서버에서 찾을 수 없어요. URL이 잘못되었거나 리소스가 삭제되었을 수 있어요.

405

Method Not Allowed

클릭해서 복사

사용한 HTTP 메서드가 이 리소스에서 지원되지 않아요. 예를 들어 읽기 전용 엔드포인트에 POST를 사용한 경우예요.

408

Request Timeout

클릭해서 복사

서버가 요청을 기다리다가 시간 초과했어요. 클라이언트가 완전한 요청을 보내는 데 너무 오래 걸렸어요.

409

Conflict

클릭해서 복사

요청이 서버의 현재 상태와 충돌해요. 버전 제어나 중복 리소스 생성 시도 때 흔해요.

410

Gone

클릭해서 복사

리소스가 더 이상 없고 다시 사용 가능해지지 않을 거예요. 404와 달리, 이건 영구적인 상태예요.

413

Payload Too Large

클릭해서 복사

요청 body가 서버가 받을 수 있는 크기보다 커요. 파일 업로드 제한으로 흔히 나타나요.

415

Unsupported Media Type

클릭해서 복사

요청 body의 미디어 타입이 지원되지 않아요. 예를 들어 JSON만 받는 곳에 XML을 보낸 경우예요.

418

I'm a Teapot

클릭해서 복사

서버가 영구적으로 찻주전자이기 때문에 커피를 만들기를 거부해요. RFC 2324의 만우절 농담인데 실제 HTTP status code가 되었어요.

422

Unprocessable Entity

클릭해서 복사

서버가 콘텐츠를 이해했지만 처리할 수 없어요. 검증 오류에 사용돼요 — 문법은 맞지만 데이터가 잘못됐어요.

429

Too Many Requests

클릭해서 복사

사용자가 주어진 시간 동안 너무 많은 요청을 보냈어요(rate limiting). Retry-After 헤더를 확인해서 언제 다시 시도할지 보세요.

500

Internal Server Error

클릭해서 복사

서버가 요청을 충족시키지 못하게 하는 예상치 못한 조건을 만났어요. 일반적인 서버 오류예요.

501

Not Implemented

클릭해서 복사

서버가 요청을 충족시키기 위한 기능을 지원하지 않아요. 메서드가 인식되지 않을 수 있어요.

502

Bad Gateway

클릭해서 복사

게이트웨이나 프록시 역할을 하는 서버가 상위 서버로부터 잘못된 응답을 받았어요.

503

Service Unavailable

클릭해서 복사

서버가 유지보수나 오버로딩으로 인해 임시로 요청을 처리할 수 없어요. 보통 임시 상태예요.

504

Gateway Timeout

클릭해서 복사

게이트웨이나 프록시 역할을 하는 서버가 상위 서버로부터 적시에 응답을 받지 못했어요.

HTTP Status Codes가 뭐예요?

HTTP status codes는 웹 서버가 클라이언트의 요청 결과를 나타내기 위해 반환하는 세 자리 숫자예요. 다섯 가지 카테고리로 나뉘어요: 1xx (Informational), 2xx (Success), 3xx (Redirection), 4xx (Client Error), 5xx (Server Error). 이 코드들을 이해하는 건 웹 개발, API 설계, 네트워크 문제 디버깅에 필수예요.

가장 흔한 HTTP Status Codes

가장 자주 마주치는 status codes는 200 OK (요청 성공), 301 Moved Permanently (리소스가 영구적으로 이동), 404 Not Found (리소스가 없음), 403 Forbidden (접근 거부), 500 Internal Server Error (서버 오류)예요. 이 다섯 개의 코드가 일상적인 웹 브라우징과 API 개발에서 만나는 대부분의 HTTP 응답을 차지해요.

REST API에서의 HTTP Status Codes

REST API는 status codes로 작업의 결과를 전달해요. 잘 설계된 API는 성공한 GET 요청에 200을, 성공한 POST(리소스 생성)에 201을, 성공한 DELETE(반환할 내용 없음)에 204를, 잘못된 입력에 400을, 인증 실패에 401을, 권한 부족에 403을, 리소스 없음에 404를, 검증 오류에 422를 반환해요. 일관된 status code 사용은 API를 예측 가능하고 사용하기 쉽게 만들어요.

Status Code 모범 사례

  • 항상 가장 구체적인 status code를 반환해요 — 일반적인 400보다는 404가 낫고
  • POST로 새 리소스를 생성할 때는 200이 아닌 201 Created를 사용해요
  • 성공한 DELETE 작업에는 204 No Content를 반환해요
  • rate limiting에는 429 Too Many Requests와 Retry-After 헤더를 함께 사용해요
  • 절대 200을 반환하면서 body에 에러 메시지를 담지 마세요 — 적절한 4xx/5xx 코드를 사용해요
  • 영구적 리다이렉트는 301을(SEO 친화적), 임시 리다이렉트는 307을 사용해요