Le premier exemple référence une ressource externe en spécifiant son URI. Cela entraînera donc une demande supplémentaire à cette ressource pour recevoir les données.
Le deuxième exemple référence également une ressource mais les données de cette ressource sont directement incorporées dans l'URI (voir data URI scheme). Donc, aucune demande supplémentaire n'est nécessaire.
Les deux méthodes ont des avantages et des inconvénients:
external embedded
separate request (-) ✓ ✗
cachable (+) ✓ ✗
referencable (+) ✓ ✗
compression (+) ✓ ✗
données sur les ressources externes
L'avantage d'utiliser une ressource externe est que ces ressources peuvent être mises en cache et utilisées dans différents documents sans demandes pour chaque apparence de ces ressources.
Un inconvénient est qu'il prend cette première demande supplémentaire.
données de ressources intégrées
Un avantage d'intégrer les données relatives aux ressources directement dans le document est d'enregistrer une demande supplémentaire.
Mais un inconvénient est que ces ressources ne peuvent pas être mises en cache ou référencées sur plusieurs apparences dans un document ou des documents différents. De plus, il ne peut pas être compressé en utilisant deflate ou gzip. En fait, l'encodage Base64 va gonfler la taille du facteur 4/3.
Voir aussi la première règle de Make Fewer HTTP Requestsles meilleures pratiques pour accélérer votre site Web.
Cela a du sens ... dans le cas où le src est un chemin vers un fichier image, le serveur web va-t-il normalement encoder (uuencode?) Le fichier image et l'envoyer au navigateur? –
Le serveur peut utiliser des encodages tels que gzip ou deflate.Mais sinon, les données ne sont pas codées. Voir par exemple http://web-sniffer.net/?url=http%3A%2F%2Fstackoverflow.com%2Fcontent%2Fimg%2Fso%2Flogo.png Les caractères étranges là sont le résultat de l'interprétation des données binaires de cette image avec ISO 8859-1. Mais les données sont inchangées car vous pouvez voir la signature PNG dans la première ligne de données. – Gumbo