source

이미지 로드 실패, net::ERR_CONTENT_LENGTH_MISMATCH

ittop 2023. 9. 19. 21:26
반응형

이미지 로드 실패, net::ERR_CONTENT_LENGTH_MISMATCH

문제

내 사이트에 페이지를 로드하면 하나(또는 여러 개)의 이미지(Lightroom 및/또는 Photoshop에서 저장한 jpg 파일)가 나타나지 않는 경우가 많습니다.대신 링크가 끊어진 것처럼 보이지만(ALT 설명이 나타남) 이미지가 없습니다.브라우저를 하드 로드하면 문제가 해결됩니다(예: 하드 로드 후 모든 이미지가 올바르게 로드됨).

오류 메시지

Chrome은 로드하지 않는 모든 이미지에 대해 "ERR_CONTERN_LENGTH_MISMATCH" 경고를 표시합니다.(때로는 죽은 것처럼 보이는 이미지로 이동하기 전에 이미지가 빠르게 깜박이는 경우도 있습니다.)

세우다

공유 호스트에서 최신 버전의 워드프레스(4.2.2)를 실행합니다.중요한 경우 사이트는 SSL(https)입니다.이미지는 호스트의 이미지 업로드 폴더(Imagemagick 등과 같이 복잡한 것은 없음)에 있습니다.

내 문제 해결

저는 다양한 기계(Mac & PC 모두)의 다양한 ISP와 광고 차단기를 사용하지 않는 다양한 브라우저(Chrome & Safari)를 사용하여 여러 위치에서 문제를 복제했습니다.

제가 시도한 것은 다음과 같습니다.

  • 서버 쪽에 문제가 있는지 호스트에게 물어봤습니다.아니라고 합니다.
  • 기능을 재설정해 보았습니다.php 파일.영향 없습니다.
  • 모든 플러그인을 비활성화했습니다.영향 없습니다.
  • 메타문자를 UTF-8로 입력했는데 영향이 없습니다
  • Gzip을 사용하는지 확인했습니다.전 아닙니다.
  • Wordpress Cache 플러그인을 사용하도록 설정했습니다.영향 없습니다.
  • 불필요한 리디렉션 및 명령의 .htaccess를 지웠습니다.영향 없습니다.
  • 교체된 wp-admin 및 wp-새로 설치한 폴더를 포함합니다.영향 없습니다.
  • Wordpress & Restalled from a Backup.주사위는 없어요.
  • 이 문제가 있는 페이지의 소스 코드를 test.html 파일에 입력했는데 이미지가 잘 로드되는 것 같습니다.

나의 생각과 질문

이미지는 각각 100-200kb이며 페이지에 상당한 양이 있는 경우도 있습니다.타임아웃이 되고 다시 로드하면 타임아웃이 걸리지 않아서 모든 것이 표시되는 건가요?그것은 내가 그 문제를 완벽하게 이해하지 않아도 수집할 수 있는 최고의 추측입니다.

제가 시도해 볼만한 아이디어가 있습니까?데이터베이스 전체를 삭제하고 다시 시작해야 합니까?컴퓨터에 대해 아는 것은 모두 독학이고 서버 문제는 저에게 강점이 되지 않습니다.내용 길이 불일치가 무엇인지 모르더라도 일반적인 용어로 설명해 줄 수 있습니까?

감사합니다!

웹 서버에서 데이터를 요청하면 먼저 데이터(HTTP 헤더)에 대한 일부 정보로 응답한 다음 데이터로 응답합니다.이러한 정보 중 하나인 HTTP 헤더는Content-Length 서버에서 수신할 데이터의 양을 클라이언트에게 알려줍니다.브라우저에 이미지가 표시되면 서버의 응답(매우 단순화된 것처럼 보임)

Content-Length: 100000

< the image, 100000 bytes of data >

은 에서 의 양을 으로 알고 있습니다.Content-Length)를 . 100KB(100,000) 를됩니다.

클라이언트가 서버로부터 데이터를 수신하기 전에 서버가 요청을 어기거나 클라이언트가 수신한 데이터보다 더 많은 데이터를 수신하면 클라이언트는 일종의 오류를 던져 데이터가 손상되거나 사용할 수 없는 것으로 가정하고 이를 처리합니다.이를 처리하는 방법은 브라우저마다 다를 수 있습니다.

당신의 웹사이트에 어떻게 이미지를 업로드했습니까?저 자신도 파일의 추정 크기가 데이터베이스에 저장되어 있는 상황에서 이 문제를 겪은 적이 있고, 이것을 사용하여 파일을 설정했습니다.Content-Length머리말DB의 파일 크기가 파일에 맞지 않습니다.그러나 WordPress는 파일 크기를 데이터베이스에 저장하지 않으며 미디어 업로드는 URL로 간단히 표현됩니다.

웹 서버에서 리소스가 부족하여 더 이상 요청을 수행할 수 없는 경우에도 이러한 문제가 발생할 수 있습니다. 페이지당 이미지 수가 많다고 했습니다.공유 호스팅 계획이 정말 형편없다면 호스트가 제한을 가하거나 서버가 호스트하는 모든 사이트의 트래픽을 처리하지 못할 수도 있습니다.

다른 사람이 이런 문제를 겪을까봐 이 문제를 다시 생각해보고 싶었습니다.HTTPS와 이미지 검색 사이에 어떤 형태의 결함이 문제를 일으킨 것으로 보입니다.그 이유는 이해할 수 없지만, 제 사이트를 SSL/HTTPS에서 간단한 HTTP(암호화가 필요 없기 때문에 할 수 있었습니다)로 변환했고 모든 이미지가 필요한 대로 로드되는 것처럼 보입니다.

만약 누군가가 "왜"를 이해한다면, 저는 그 문제가 실제로 무엇인지 이해하고 싶습니다.운 좋게도 저는 해결책을 생각해 낼 수 있었습니다.따라서, 이것이 제 질문에 대한 답은 아니지만, 무엇이 문제를 야기하고 있는지에 대한 맥락과 저의 상식적인 해결책을 제공합니다.

공유 호스팅 서비스에서는 이 문제가 발생할 수 있습니다.무료 대역폭은 무료 맥주가 아니라 언론의 자유와 같습니다.트래픽 급증 시 리소스 중단 정책이 실행됩니다.

분산형 시스템 아키텍처는 프론트엔드 CDN 계층을 삽입함으로써 이를 해결합니다(예:클라우드 플레어).CDN은 정적 리소스를 캐슁하여 호스트의 부하를 크게 줄일 수 있습니다.실제로 완전히 정적인 사이트의 경우 호스트를 종료할 수 있습니다.

CDN에는 공격 탐지, 무료 SSL(맥주가 아닌), 공유 호스팅 단독 사용에 비해 전반적으로 성능 및 보안이 향상되는 등의 다른 이점이 있습니다.

많은 CDN들이 (말하기에서처럼) 무료입니다.프라이빗 호스팅으로 업그레이드할 수도 있지만 비용은 저렴하지만 프런트 엔드 계층을 원할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/31361107/images-fail-to-load-neterr-content-length-mismatch

반응형