HTTP 상태코드

2025. 3. 6. 08:47·BackEnd

HTTP 상태코드


  • 클라이언트가 보낸 요청에 대한 결과를 표현하기 위한 상태 코드
  • 1xx, 2xx, 3xx, 4xx, 5xx 5가지 경우로 나타냄 (x는 임의의 숫자)

  • 1xx: 요청이 수신되어 처리중
    • 거의 사용하지 않음.

  • 2xx: 클라이언트의 요청을 성공적으로 처리함ex) 200 OK, 201 Created, 202Accepted, 204 No Content
    • 200 OK: 요청 성공
    • 201 Created: 요청을 성공해서 새로운 리소스가 생성됨
    • 202 Accepted: 요청이 접수되었으나 처리가 완료되지 않음
      • 배치 처리 같은 곳에서 사용. ex) 요청 접수 후 2시간 뒤에 배치 프로세스가 요청을 처리함.
    • 204 No Content: 요청은 성공적으로 수행했지만, 페이로드에 보낼 데이터가 없음
      • 서버의 응답 결과가 필요 없는 경우에 주로 사용. (성공만 인식하면 됨)

  • 3xx: 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요ex) 300 Multiple Choices, 301 Moved Permanently, 302 Found,
    303 See other, 304 Not Modified, 307 Temporary Redirect, 308 Permanent Redirect
    • 웹 브라우저는 3xx 응답의 결과에 Location이 있으면 해당 Location으로 자동 이동한다. (redirect)
    • 301, 308 (영구적 redirection)
      • 리소스의 URI가 영구적으로 이동
      • 301은 요청 메서드의 본문이 제거될 수 있고, GET으로 바뀜. (308은 그렇지 않음)
    • 302, 307, 303 (일시적 redirection)
      • 리소스의 URI가 일시적으로 변경
      • 302: 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음.
      • 307: 리다이렉트시 메서드와 본문 유지
      • 303: 요청 메서드 GET으로 변경
      • PRG: Post/ Redirect/ Get (일시적인 redirection의 예시)
        - Post 요청이 들어왔을때 302 상태코드로 새로운 창으로 redirection을 함(GET 메서드 사용). 새로 고침 등으로 인한 문제가 발생하지 않음.
    • 300, 304 (기타 redirection)
      • 300 Multiple Choices: 실제로 거의 사용하지 않음.
      • 304 Not Modified: 캐시를 목적으로 사용. 로컬 PC의 캐시로 redirection함.

  • 4xx: 클라이언트 오류
    • 클라이언트의 요청의 잘못된 문법 등으로 요청 수행 불가능.
    • 400 Bad Request
      • ex) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때
    • 401 Unauthorized
      • 인증되지 않음. (로그인 x)
      • 인증(Authentication): 본인이 누구인지 확인 (로그인)
      • 인가(Authorization): 권한 확인
    • 403 Forbidden
      • 서버가 요청을 이해했지만 승인 거부 (로그인 o, 권한 x)
      • ex) 권한이 불충분한 경우 (로그인은 했지만 권한이 없을때) .
    • 404 Not Found
      • 요청 리소스가 서버에 없음.
      • 해당 리소스를 숨기고 싶을 때에도 사용함.

  • 5xx: 서버 오류
    • 서버에 문제가 있을때 발생
    • 500 Internal Server Error : 서버 내부 문제
    • 503 Service Unavailable: 서비스 이용 불가 (복구 예상 시간도 보낼 수 있음)
    • 웬만하면 서버에서는 5xx 번대의 에러를 일으키면 안된다.

'BackEnd' 카테고리의 다른 글

API의 구현과 API 명세서-1  (2) 2025.03.21
HTTP 요청의 구조와 통신 과정 / HTTP 메서드  (0) 2025.03.21
클라이언트-서버 구조와 HTTP란?  (0) 2025.03.21
HTTP 헤더2 - 캐시와 조건부 요청  (0) 2025.03.19
HTTP 헤더1 - 일반 헤더  (2) 2025.03.18
'BackEnd' 카테고리의 다른 글
  • HTTP 요청의 구조와 통신 과정 / HTTP 메서드
  • 클라이언트-서버 구조와 HTTP란?
  • HTTP 헤더2 - 캐시와 조건부 요청
  • HTTP 헤더1 - 일반 헤더
devStudent
devStudent
저의 개발(Development) 공부(Study) 기록을 추적(Tracing) 하는 블로그입니다!
  • devStudent
    Dev_Study_Trace
    devStudent
  • 전체
    오늘
    어제
    • 분류 전체보기 (23)
      • BackEnd (11)
      • DevOps (4)
      • Algorithm (7)
      • DDD 12기 (Server) (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    devops
    도커
    NGINX
    데브 옵스
    yml
    백준 1092
    알고리즘
    백준
    쿠버네티스
    GitHub Actions
    프록시 실습
    Divide and conquer
    boj
    http 상태코드
    백준 1068번
    boj1068
    분할 정복 알고리즘
    docker
    boj 1992
    리버스 프록시
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
devStudent
HTTP 상태코드
상단으로

티스토리툴바