FMS 목록 조회가 실제 서버에서 멈추는 문제가 있어서 요청 방식을 확인하다가 이 설정을 넣었다.
builder.version(HttpClient.Version.HTTP_1_1);
Java HttpClient는 상황에 따라 HTTP/2 사용을 시도할 수 있다.
이번 FMS 환경에서는 중간의 reverse proxy와 통신할 때 HTTP/2 업그레이드 과정이 문제될 가능성이 있어서 /api/drive/list 요청만 HTTP/1.1로 고정했다.
기존
Java HttpClient
→ HTTP/2 사용 또는 업그레이드 시도 가능
변경
/api/drive/list
→ HTTP/1.1로 요청
중요한 건 HTTP/1.1이 무조건 더 좋다는 뜻은 아니다.
서버나 프록시 환경에 따라 특정 프로토콜에서 문제가 생길 수 있어서 필요한 요청에만 명시적으로 지정한 것.
HttpRequest request = HttpRequest.newBuilder(uri)
.version(HttpClient.Version.HTTP_1_1)
.GET()
.build();
나중에 외부 API가 브라우저에서는 되는데 Java에서 이상하게 멈추면 URL이나 인증뿐 아니라
HTTP 버전
redirect
proxy
timeout
같은 전송 설정도 같이 확인하기.