Choosing Codes

상태 코드는 클라이언트가 다음 행동을 고르게 해야 한다

숫자 이름을 외우는 것보다 “인증을 다시 할지, 권한 문제로 멈출지, 나중에 재시도할지”를 분리하는 기준이 중요하다.

401인증 정보가 없거나 유효하지 않음WWW-Authenticate를 보고 로그인, 토큰 갱신, 인증 스킴 확인을 시도한다.
403인증은 됐지만 허용되지 않음같은 인증 정보로는 접근할 수 없다는 의미에 가깝다.
302 / 307 / 308리디렉션과 메서드 보존POST 의미를 보존해야 하면 307 또는 308이 더 명확하다.
429 / 503재시도 가능한 실패Retry-After가 있으면 클라이언트가 다시 시도할 시점을 판단할 수 있다.
질문선택 기준대표 코드
다시 로그인해야 하나?인증 정보가 없거나 만료됨401
권한 자체가 부족한가?서버가 요청을 이해했지만 허용하지 않음403
같은 메서드를 유지해야 하나?POST/PUT 의미를 보존하는 리디렉션 필요307, 308
나중에 다시 보내야 하나?rate limit, 과부하, 유지보수429, 503