The answer has to do with the way content is interpreted by the browser.Simple answer: The HTML content of the page is stored as text. Images are easily stored as separate binary files. The browser is software that takes code and process it to display a more human friendly version on screen. As the browser finds a reference to an image in the HTML code it downloads it, then places it in the page per the HTML instructions.
Longer answer: To make it easier for web programmers to design sites, the HTML code of a webpage is written in plain language, or text. To use other content on the same page, lines of code are written that reference other files. since they are text files, they must be converted to and from binary to transmit them over the internet.
Images have a level of compression or data structure applied to them, so they are more easily stored as binary files. there is no translation that occurs as they are transmitted online.
Computers run through code character by character, line by line and run functions when certain instructions are read. Once the browser sees an tag it knows the current page is referencing an image so it downloads it.
There are two reason I can that of why images are transmitted as separate requests:
- Images can be stored on different web servers, so sending one large binary stream would require one server to assemble all of the data then transmit it to the user (quite a waste to transmit the same file data twice.)
- Because images can be in different formats, using different compressions (jpeg, gif, png). Each image is transmitted separately so as not to cause problems.
Addendum:
HTTP/1.1 protocol allows a browser to download all items in the same connection (so long as the connection is to the same server). This means at connection level there is only one request but at protocol level there are still multiple requests being passed through the one connexion.