브라우저에서 아래와 같은 에러가 발생할 수 있습니다. 아래 에러는
크롬 브라우저의 콘솔에 출력되는 에러 메시지입니다.
net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
위와 같은 문제의 원인은 무엇이고 언제 그리고 어떻게 해결하였는지 알아보겠습니다.
# 언제 CONTENT_LENGTH_MISMATCH 200 에러가 발생?
서버에서
큰 용량의 파일을 로드하는 경우 위와 같은 에러가 발생했습니다. 예를들면 일정 크기 이상의
sitemap이나 용량이
큰 폰트 파일 등등 용량이 큰 static 정보를 읽을 때 발생합니다.
특이한 점은 항상 발생하는 것은 아니라는 부분이죠. 어쩌다 되는 경우도 있는 특이한 부분으로 아무래도 서버쪽 이슈로 예상되었습니다. 그래서 확인해 본 결과 서버쪽 설정에 문제가 있는 경우 해당 문제가 나타날 수 있더군요.
! 해결방법 알아보기
찾아보고 알아보니 위 문제가 서버쪽 접근 권한에 문제가 있는 경우 나타날 수 있는 문제였습니다. 리눅스와 nginx를 사용하는 경우
/var/lib/nginx/ 경로의 접근 권한을 수정하였더니 에러 없이 정상적으로 로딩 되었습니다.
정리를 하면...
"/var/lib/nginx/의 접근 경로를 확인하고 필요한 경우 소유자와 그룹 설정을 변경해야한다"입니다.
기존의 소유자와 그룹은
mongodb로 설정되어 있더군요. 그래서 이를
www-data로 변경하였습니다. 아래의 명령어를 실행합니다.
chown -R www-data:www-data /var/lib/nginx/**
참고로 경로가 /var/lib/nginx/가 아닐수도 있으므로 설치된 경로를 확인 후 적용하는 것이 필요합니다.
위와 같이 변경 후 sitemap(사이트맵)의 크기가 너무 커 일부러 1000개 이하로 맞추어 사용했었는데 이제는 전체 사이즈를 불러도 에러가 없었습니다. 그리고 사이즈가 큰 폰트를 불러올 때 발생하던 에러 역시 완전히 사라졌습니다.
! 정리하기
위와 같이 net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK) 에러 메시지가 출력되는 경우 서버의 설정에 문제가 있지 않은지 확인할 필요가 있습니다. 용량이 큰 경우 size, cache 또는 proxy 설정 등과 연관이 있으니 이런 문제를 해결할 필요가 있습니다.