HTTP 설계는 메서드, 상태, 헤더, 캐시를 함께 맞춘다
HTTP는 요청 메서드와 상태 코드만 외우는 것이 아니다. 안전성, 멱등성, 본문 형식, 캐시 가능성을 한 계약으로 맞춰야 한다.
| 결정 | 봐야 할 기준 | 대표 선택 |
|---|---|---|
| 메서드 | 조회, 생성, 전체 교체, 부분 변경 | GET / POST / PUT / PATCH |
| 상태 코드 | 성공, 클라이언트 오류, 서버 오류, 재시도 여부 | 200, 201, 204, 4xx, 5xx |
| 헤더 | 인증, 본문 형식, 조건부 요청, 캐시 정책 | Authorization, Content-Type, If-Match, Cache-Control |
| 관측 | 지연, upstream, request id | 로그와 응답 헤더를 연결 |
상태 코드 일관성
인증 실패, 권한 부족, 리소스 없음, 검증 실패를 다른 코드로 구분한다.
캐시 안정성
개인화 응답은 공유 캐시에 저장되지 않게 한다.
헤더 의미
Content-Type과 Accept를 바꿔 쓰면 같은 URL도 다르게 해석될 수 있다.
핵심: HTTP 판단 흐름은 “어떤 메서드인가”에서 끝나지 않고, 응답 코드와 헤더가 같은 계약을 말하는지까지 확인해야 한다.