특정 브라우저에서만 400 Bad Request가 나왔다. 원인이 뭘까?
🍊 문제 발견
오늘 블로그 글을 작성하려는데 아래와 같은 에러가 나왔다.
Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
🍊 뜯어보기
뭐가 문제일까?
request header의 필드 크기가 서버 리밋을 초과했다 하여 개발자도구를 열어보았다.
Cookie 부분에 저 아래로 엄청난 양의 _ga가 있네?
이때 제가 생각한 것은 쿠키의 양이 많아서구나 라고 예상했는데, 그 이유는
쿠키는 작은 용량을 가지고 서버에 request를 보내는데 스크롤리 3번은 넘게 내려갔으니까!
참고로 _ga는 구글 애널리틱스에서 사용하는 쿠키인데 대부분의 쿠키는 실제로 통계 또는 마케팅/추적 목적으로 사용된다. GA 쿠키의 목적은 통계를 내는 데에 있습니다.
safari브라우저에서도 똑같은 url에 똑같은 동작을 해도 200 response를 받았다.
사실상 이 페이지에 접근하려면 T_ANO ~ 로 시작하는 쿠키만 있으면 되는 것 같다.
🍊 그러나 예상 밖이었던 원인
두둥~ 근데 사실 이 문제에 대한 원인은 사실 _ga가 많아서가 아니었다.
크롬에서 쿠키와 캐시 기록도 지웠는데도 다시 들어왔을때 (이전 보다는 쿠키가 줄어든게 맞는거같지만) 여전히 크롬브라우저의 ga는 많이 생겨났다.
Size of a request header field exceeds server limit. 이라는 문장에 속은 것,
그래서 좀 더 알아본 결과 firefox 브라우저 사용자의 질문에 대한 모질라의 답변을 발견했는데 이 사용자도 나와 같은 문제를 겪었나보다.
그리고 모질라 직원이 알려주는 이유를 보고 꼭 쿠키의 양이 많아서 & 크롬 브라우저라서 이 이슈가 나오는 것이 아니다! 라는 것을 알게되었다.
일단 Bad Request 에러는 다른 브라우저에서도 당연히 나타날 수있는 문제이다.
파이어폭스 브라우저 유저가 올린 문제지만 솔루션 답변으로 손상 된 쿠키로 인해 발생할 수 있다는 사실을 알게되었다.
즉 정말 쿠키 용량이 커서 그럴 수도 있지만, 처음 생각했던 쿠키용량의 문제가 아닌 손상된 쿠키가 내 크롬브라우저에 있을 수도 있기 때문에 이 문제가 나타났던 것으로 보인다.
실제로는 전/후의 쿠키를 비교해봤을 때 지워진 ga 쿠키도 있긴 했지만, 많은 수가 지워진 것은 아니었고 그대로 남아있는 쿠키가 상당했다.
🍊 마무리
사실 이 문제 해결하는 방법은 해당 브라우저에서 캐시랑 쿠키를 주기적으로 지워주는 방법으로 해결할 수 있다.
하지만 원인을 더 정확히 파악할 수 있었고, 함부로 에러를 추측하지 말자라고 생각했다.
혹시 잘못 된 정보나 다른 의견이 있으시다면 댓글 남겨주세요! 감사합니다. 😊
https://cookiedatabase.org/cookie/google-analytics/_ga/
https://support.mozilla.org/kn/questions/1290604