Choosing Codes
헷갈리는 상태 코드는 클라이언트의 다음 행동으로 고른다
상태 코드는 이름만 외우면 흔들린다. 인증을 다시 해야 하는지, 권한을 바꿔야 하는지, 나중에 재시도해야 하는지를 기준으로 나누면 선명해진다.
401은 인증 챌린지, 403은 인가 거부
302는 관례상 메서드가 바뀔 수 있어 307/308과 구분한다
429와 503은 Retry-After로 재시도 힌트를 줄 수 있다
401WWW-Authenticate
인증 정보가 없거나 유효하지 않음
클라이언트는 로그인, 토큰 갱신, 인증 스킴 확인을 시도할 수 있다.
403Forbidden
인증은 됐지만 허용되지 않음
같은 인증 정보로는 접근할 수 없다는 의미에 가깝다.
302307308
리디렉션과 메서드 보존
메서드와 본문을 보존해야 하면 307 또는 308이 더 명확하다.
429503Retry-After