한 크루님께서 간헐적으로 페이지 상단만 뜨고 본문이 하얗게 비거나, 중간까지만 로딩되는 현상을 계속 제보해주셨습니다.
특이한 점은 아이폰이고 Safari와 Chrome 모두에서 발생했다는 점입니다.
서버 로그에는 계속 정상으로 보여서 원인을 찾기가 어려웠는데, 오늘 한 가지 유력한 원인을 발견했습니다.
Caddy가 브라우저에
“이 사이트는 HTTP/3로도 접속할 수 있어요”
라고 알려주고 있었는데, 정작 서버로 들어오는 HTTP/3 경로인 UDP 443은 막혀 있었습니다.
쉽게 말하면 “이 길로 오세요”라고 안내해놓고 실제로는 길을 막아놓은 상태였습니다 ㅠㅠ
그런데 왜 대부분의 사람은 잘 됐을까?
이게 재미있는 부분인데, LTE/5G와 Wi-Fi는 서버까지 가는 네트워크 경로가 다릅니다.
HTTP/3 접속에 실패했을 때 어떤 환경에서는 바로 HTTP/2로 돌아가서 아무 문제 없이 접속됩니다.
반대로 특정 통신망이나 네트워크 환경에서는 실패 응답이 바로 돌아오지 않고 타임아웃까지 기다릴 수 있습니다.
그래서 같은 아이폰이라도
A 사용자 → HTTP/3 실패 → 바로 HTTP/2 전환 → 정상
B 사용자 → HTTP/3 실패 → 응답 대기 → 로딩 지연 또는 이상 현상
처럼 사용자마다 다르게 나타날 가능성이 있습니다.
게다가 브라우저가 HTTP/3 접속 가능 정보를 최대 30일까지 기억하도록 설정돼 있었습니다.
일단 HTTP/3 안내 자체를 제거하고 HTTP/1.1·2만 사용하도록 서버 조치는 완료했습니다.
다만 아직 이게 100% 원인이었다고 확정하진 않겠습니다. 이제 동일한 환경에서 증상이 사라지는지 확인해봐야 할 것 같습니다.
혹시 아이폰에서 바이브크루를 이용하면서
• 화면이 하얗게 비었다
• 상단만 나오고 본문이 안 나왔다
• 중간까지만 로딩됐다
• Wi-Fi에서는 되는데 LTE/5G에서는 안 됐다 (또는 반대)
이런 경험 있으셨던 분 계시면 댓글 부탁드립니다.
특정 사용자에게만 발생하는 문제라 더 찾기 어렵네요 ㅠㅠ

