When you request data from a web server, first some information about the data (HTTP headers) is answered, and then the data. One of these pieces of information, the HTTP header, is called Content-Length . It tells the client how much data it should expect from the server. When your browser receives the image, the server response (looks very simplified)
Content-Length: 100000 < the image, 100000 bytes of data >
The client knows that the request completed when it received the amount of data specified by the Content-Length . Until he receives in this case 100 KB (100,000 bytes), he believes that the image, for example, should not be executed when downloading.
If the server interrupts the request before the client receives data from the server, or if the client receives more data than it received, the client will throw some kind of error and assume that the data will be damaged / unusable and disposed of. This. How this is handled may vary between browsers.
How did you upload images to your site? I myself ran into this problem in a situation where the file size was supposedly saved in the database, and this was used to set the Content-Length header. The file size in the database was incorrect for the file. HOWEVER, I know that WordPress does n’t do the size of the storage in the database; Media downloads are simply represented by a URL.
This can also happen if the web server has run out of resources and can no longer fulfill your requests; You said that you have many images on the page. If you are actually a lousy shared hosting plan, it may be that the host imposes restrictions or that the server simply cannot handle the traffic of all the sites that it hosts.
source share