Je remarque que de nombreux sites hébergent leurs ressources sur un domaine distinct du site principal, par exemple. StackExchange utilisant sstatic.net, Barnes & Noble utilisant imagesbn.com, etc.
Je comprends qu'il est avantageux de placer vos ressources statiques sur un hôte séparé, éventuellement avec un serveur Web de fichiers statiques efficace tel que nginx, ce qui permet au serveur principal de se concentrer sur la fourniture de contenu dynamique. De même, la sous-traitance sur un CDN partagé, tel que cloudfront Akamai, est logique.
Quel est l'avantage d'utiliser un domaine séparé autrement? Pourquoi sstatic.net au lieu de static.stackexchange.com?
Mise à jour: Plusieurs réponses manquent à la question principale. Je comprends que la scission entre plusieurs hôtes présente des avantages - téléchargements parallèles, serveur Web plus fin, etc. Mais ce qui est plus insaisissable, c’est pourquoi plusieurs domaines . Pourquoi sstatic.net plutôt que static.stackexchange.com en tant qu'hôte pour les ressources partagées? Jusqu'à présent, une seule réponse a répondu à cela.
De nombreux sites ont beaucoup de cookies, ces cookies ont pour but de supporter un type d'état.
En plaçant les ressources statiques (sans état) sur un domaine complètement différent, vous pouvez réduire la taille des requêtes http. Dans certains cas, il y a tellement de cookies qu'une seule requête http nécessite la transmission de deux TCP. Donc, avoir un domaine séparé est l’un des moyens de réduire le nombre de paquets pour demander les différentes parties d’une page.
D'autres méthodes ayant le même objectif sont la fusion de nombreuses images dans un seul Sprite et la fusion de tout le code Javascript dans un seul fichier.
Outre l'utilisation de CDN, l'utilisation de domaines distincts pour les données statiques signifie également:
Vous pouvez utiliser un serveur Web léger qui ne nécessite pas de charger tous les modules/extensions que votre serveur Web de contenu dynamique doit charger pour chaque requête. Ne pas avoir à analyser chaque répertoire dans le chemin d'URI pour lire les fichiers .htaccess augmente également le nombre de requêtes simultanées que le serveur peut gérer.
L'ajout d'un sous-domaine supplémentaire signifie que vous augmentez le nombre de téléchargements parallèles que le navigateur peut effectuer.
Si votre site est correctement configuré (par exemple, votre site est hébergé sur www.example.com
au lieu de example.com
), vous pouvez également tirer parti d'un sous-domaine sans cookie, ce qui réduit le trafic et les temps d'aller-retour.
Le seul inconvénient est que, si vous utilisez des sessions SSL, vous avez besoin d'un certificat signé et d'une adresse IP statique distincte pour le ou les domaines supplémentaires. Mais les avantages l'emportent sur cet inconvénient mineur dans la plupart des cas.
Modifier:
Désolé, j'ai mal interprété votre question. Si vous vous demandez pourquoi certaines personnes utilisent des SLD distincts, la parenthèse de la troisième case y répondra. C'est aussi expliqué sur sstatic.net :
Si votre domaine est www.example.org, vous pouvez héberger vos composants statiques sur static.example.org. Cependant, si vous avez déjà défini des cookies sur le domaine de premier niveau example.org, par opposition à www.example.org, toutes les demandes adressées à static.example.org incluront ces cookies. . Dans ce cas, vous pouvez acheter un tout nouveau domaine, héberger vos composants statiques et garder ce domaine sans cookies. Yahoo! utilise yimg.com, YouTube utilise ytimg.com, Amazon utilise images-Amazon.com et ainsi de suite.
Mais incarnée mentionne également un point intéressant concernant l’utilisation d’un SLD générique distinct au lieu d’un sous-domaine d’un SLD existant lorsque vous exécutez un vaste réseau de sites partageant certains actifs.
Enfin, comme le souligne Niels Basjes, une des raisons pour éliminer les cookies est de minimiser le nombre de paquets utilisés pour exécuter une requête. Je pense que les directives YSlow stipulent que la plupart des réseaux ont une taille de paquet maximale de 1 500 octets. Par conséquent, le fait de ne pas dépasser 1 500 octets réduirait TCP surcharge. Cela démontre également un autre avantage de l’utilisation de sstatic.net
au lieu de static.webmasters.stackexchange.com
.
Lèse Majesté a couvert les points principaux, mais pour aller plus loin, j'ajouterais que le fait d'avoir un seul domaine pour tous les sites Stack Exchange signifie que quelqu'un qui les consulte ne téléchargera qu'un seul contenu statique, tel que JavaScripts. En accédant au super-utilisateur, par exemple, un utilisateur utilisera le contenu mis en cache puisqu'il provient du même endroit.
Il y a quelques informations plus utiles sur Yahoo et Google à ce sujet.
La raison principale sont les cookies. Ce que Niels a suggéré dans sa réponse n’est qu’une conséquence mineure, et non la vraie raison. Sans les cookies, la taille de la demande est plus petite, ce qui permet d'économiser de la bande passante.
Cependant, la vraie différence provient du cache du navigateur. Le contenu étant statique (c’est-à-dire qu’il ne change pas), les navigateurs peuvent le mettre en cache sur le disque dur local et éviter de charger le fichier à partir d’Internet à chaque fois. Au lieu du fichier entier, le serveur Web envoie simplement une réponse 304, ce qui signifie que le contenu n'a pas changé.
Lorsque le site utilise des cookies, les navigateurs considèrent que le contenu du fichier peut être différent pour différents utilisateurs, de sorte qu'ils ne mettent pas ces fichiers en cache. Le fait de servir le fichier à partir d'un domaine sans cookie garantit que la mise en cache du navigateur fonctionne correctement.
C'est la raison principale, car cela améliore les temps de chargement et réduit considérablement la bande passante.
Les anciens navigateurs sont limités à deux téléchargements parallèles par nom d'hôte.
Le fractionnement des éléments d'une page Web en plusieurs domaines s'appelle fragmentation de domaine . Cela permet de télécharger plus de ressources en parallèle, ce qui réduit les temps de chargement globaux des pages.