Skip to content

✅ 왜 헤더 키는 언더바를 싫어할까

KyungMin Lee edited this page Aug 29, 2024 · 1 revision

🚨 문제 발생!

  • 프로토타입 배포 후, header 값을 읽어 로그를 저장하는 api를 저장하는 도중 MissingRequestHeaderException이 발생했습니다.
  • app_id 헤더가 전달이 안되 오류가 발생했습니다.

🛠️ 원인 찾기

  • 원인 코드
@PostMapping
public ResponseEntity<Void> saveLog(
    @RequestHeader(value = "app_id")
    @NotNull(message = "Application ID가 비어있습니다.")
    @Positive(message = "Application ID는 양수여야 합니다.") Long applicationId,
    @Valid @RequestBody CreateLogRequest request
) {
    logService.saveLog(CreateLogServiceRequest.of(applicationId, request));
    return ResponseEntity.ok().build();
}

문제 접근하기

  • 혹시 서버 접근의 문제인가요? ❌
    • 서버는 정상적으로 작동합니다.
image 1
  • 로컬에서는 정상적으로 작동하나요? ✅

Docker 활용 localhost 서버로 실험 진행

image 2

정상적으로 전송된다.

  • Nginx 문제인가요? ⚠️

확인을 위해 Nginx 인스턴스에서 curl 전송

image 3

정상 응답을 확인했습니다.

💡 결론!

  • Ngnix가 _가 포함된 헤더를 정상적으로 처리하지 못한다!

🧪 해결하기

  • 헤더 키를 app-id로 변경했습니다.
Clone this wiki locally