Oh MyUtils

HTTP 상태 코드 레퍼런스 - HTTP 응답 코드 전체 목록 온라인

모든 HTTP 상태 코드(1xx-5xx)를 검색, 필터링, 복사하세요. 설명, 사용 사례, 응답 예시 포함 — 100% 클라이언트 사이드, 서버로 데이터가 전송되지 않습니다.

61개의 상태 코드

자주 묻는 질문

HTTP 상태 코드란 무엇인가요?

HTTP 상태 코드는 클라이언트의 요청에 대해 웹 서버가 반환하는 세 자리 숫자입니다. 요청이 성공했는지, 리다이렉트되었는지, 오류가 발생했는지를 나타냅니다. 상태 코드는 1xx(정보), 2xx(성공), 3xx(리다이렉션), 4xx(클라이언트 오류), 5xx(서버 오류)의 다섯 가지 클래스로 분류됩니다. IETF의 RFC 9110에 정의되어 있으며 웹의 기본 동작 원리입니다.

이 HTTP 상태 코드 참조 도구는 어떻게 사용하나요?

검색창에 상태 코드 번호(예: '404')나 키워드(예: 'not found' 또는 'redirect')를 입력하면 관련 코드를 즉시 찾을 수 있습니다. 1xx-5xx 버튼을 사용하여 카테고리별로 필터링할 수도 있습니다. 상태 코드 카드를 클릭하면 전체 설명, 일반적인 사용 사례, 복사 가능한 응답 예제를 확인할 수 있습니다. 복사 버튼을 사용하여 프로젝트에 필요한 코드나 스니펫을 빠르게 가져오세요.

데이터가 안전한가요? 서버로 전송되는 것이 있나요?

이 도구는 100% 클라이언트 사이드에서 동작합니다. 모든 HTTP 상태 코드 데이터는 페이지에 정적으로 포함되어 있어 API 호출, 서버 요청, 데이터 수집이 없습니다. 검색 쿼리와 상호작용은 브라우저를 떠나지 않습니다. 초기 페이지 로드 후에는 완전히 오프라인으로 작동합니다.

401 Unauthorized와 403 Forbidden의 차이점은 무엇인가요?

401 Unauthorized는 요청에 유효한 인증 자격 증명이 없음을 의미합니다. 클라이언트가 자신을 식별하지 않은 것입니다. 서버가 '당신이 누군지 모르겠으니 인증해 주세요'라고 말하는 것입니다. 403 Forbidden은 서버가 당신이 누군지 알고 있지만(인증되었을 수 있음) 해당 리소스에 접근할 권한이 없음을 의미합니다. 서버가 '당신이 누군지는 알지만, 허용되지 않습니다'라고 말하는 것입니다.

301과 308 리다이렉트의 차이점은 무엇인가요?

둘 다 영구 리다이렉트를 나타냅니다. 301 Moved Permanently는 리다이렉트 시 HTTP 메서드가 변경될 수 있습니다(예: POST가 GET으로 변경될 수 있음). 308 Permanent Redirect는 원래의 HTTP 메서드를 유지합니다. POST/PUT을 사용하는 API의 경우 308이 더 안전한 선택입니다. 마찬가지로 302 vs 307도 같은 관계입니다: 302 Found는 메서드 변경을 허용하고, 307 Temporary Redirect는 메서드를 유지합니다.

418 'I'm a teapot' 상태 코드는 왜 존재하나요?

418 I'm a teapot은 1998년 만우절 농담으로 RFC 2324에서 HTCPCP(Hyper Text Coffee Pot Control Protocol)의 일부로 정의되었습니다. 표준 관점에서 실제 HTTP 상태 코드는 아니지만, 이스터 에그로 널리 채택되어 많은 HTTP 라이브러리와 프레임워크에서 인식됩니다. 완전성을 위해 이 참조에 포함되어 있습니다.

WebDAV 상태 코드란 무엇인가요?

WebDAV(Web Distributed Authoring and Versioning)는 클라이언트가 원격 웹 콘텐츠 작성을 수행할 수 있도록 하는 HTTP의 확장입니다. 207 Multi-Status, 422 Unprocessable Content, 423 Locked, 424 Failed Dependency, 507 Insufficient Storage, 508 Loop Detected 등의 추가 상태 코드를 도입합니다. 이 코드들은 RFC 4918에 정의되어 있으며, 현대 REST API에서 일반적으로 사용됩니다(특히 유효성 검사 오류에 422가 사용됨).

코드 예제

// HTTP Status Code lookup

const HTTP_STATUS_CATEGORIES = {
  '1xx': 'Informational',
  '2xx': 'Success',
  '3xx': 'Redirection',
  '4xx': 'Client Error',
  '5xx': 'Server Error',
};

function getStatusCategory(code) {
  if (code >= 100 && code < 200) return '1xx';
  if (code >= 200 && code < 300) return '2xx';
  if (code >= 300 && code < 400) return '3xx';
  if (code >= 400 && code < 500) return '4xx';
  if (code >= 500 && code < 600) return '5xx';
  return 'Unknown';
}

const STATUS_CODES = {
  200: 'OK',
  201: 'Created',
  204: 'No Content',
  301: 'Moved Permanently',
  302: 'Found',
  304: 'Not Modified',
  400: 'Bad Request',
  401: 'Unauthorized',
  403: 'Forbidden',
  404: 'Not Found',
  405: 'Method Not Allowed',
  409: 'Conflict',
  422: 'Unprocessable Content',
  429: 'Too Many Requests',
  500: 'Internal Server Error',
  502: 'Bad Gateway',
  503: 'Service Unavailable',
};

async function fetchWithStatusHandling(url, options = {}) {
  try {
    const response = await fetch(url, options);
    const category = getStatusCategory(response.status);
    switch (category) {
      case '2xx':
        if (response.status === 204) return { data: null, status: 204 };
        return { data: await response.json(), status: response.status };
      case '4xx':
        const clientError = await response.json().catch(() => ({}));
        throw {
          status: response.status,
          statusText: STATUS_CODES[response.status] || response.statusText,
          message: clientError.message || `Client error: ${response.status}`,
          isRetryable: response.status === 429,
          retryAfter: response.headers.get('Retry-After'),
        };
      case '5xx':
        throw {
          status: response.status,
          statusText: STATUS_CODES[response.status] || response.statusText,
          message: `Server error: ${response.status}`,
          isRetryable: [502, 503, 504].includes(response.status),
        };
      default:
        throw new Error(`Unexpected status code: ${response.status}`);
    }
  } catch (error) {
    if (error.status) throw error;
    throw { status: 0, message: 'Network error', isRetryable: true };
  }
}

관련 도구

IP 서브넷 계산기 - IPv4 & IPv6 CIDR 계산기 온라인
HTTP 헤더 분석기 - 보안 헤더 파싱 & 감사 온라인
JSON 포맷터 및 검증기 - JSON 정리 온라인
SQL 포맷터 및 정리기 - SQL 쿼리 정리 온라인
코드 압축기 - JavaScript, CSS, HTML 압축 온라인
SVG to JSX 변환기 - SVG를 리액트 컴포넌트로 변환 온라인