Por que inserir arquivos estáticos (CSS, imagens, JavaScript, ECC) em um subdomínio?

29

Por que tantos sites grandes e pequenos insere arquivos estáticos (CSS, imagens, JavaScript, ECC) em um subdomínio como media.example.comou s2.static.example.com?

Quais são as vantagens? Por que não apenas um diretório como example.com/media/?

xRobot
fonte

Respostas:

24

Vejo pelo menos três possíveis (boas) razões:

  • Use outra máquina para servir o conteúdo estático
    • Incluindo algumas CDN
  • Use outro servidor da web para veicular o conteúdo estático
    • Algo mais leve e mais rápido
    • Não há necessidade de um servidor PHP / .NET / JAVA completo para veicular conteúdo estático!
  • Usar outro nome de domínio significa que você poderá não ter os cookies usados ​​no domínio principal

Isso é o que é feito no StackOverflow, se bem me lembro

Pascal MARTIN
fonte
15

A principal razão que eu acho, é para cookies.

Os cookies serão enviados junto com todas as solicitações , digamos que você tenha 2kb de dados e carregue 20 imagens em uma página.

São 40kb extras de dados, multiplique pelo número de visualizações de página que você tem em um mês e você poderá se surpreender com a quantidade de largura de banda que perdeu em algo inútil, e a largura de banda não é gratuita ...

Além disso, os cookies configurados no domínio de nível superior são enviados a todas as solicitações feitas a qualquer subdomínio; nesses casos, é recomendável comprar um novo domínio para hospedar os componentes estáticos, em um domínio sem cookies .

Por exemplo, StackOverflow usa sstatic.net, Yahoo usa yimg.com, YouTube usa ytimg.com, Amazon usa images-amazon.com, etc.

Dê uma olhada nisso:

Zistoloen
fonte
8

Para adicionar algumas das respostas acima: alguns navegadores da Web podem baixar apenas dois arquivos simultaneamente de qualquer domínio.

Servir conteúdo estático de um nome de host diferente (ou nomes - por exemplo a.domain, b.domain, c.domain) permite que esses navegadores antigos para importar mais arquivos em paralelo.

Zistoloen
fonte
2

... use domínios sem cookies para componentes.

Quando o navegador solicita uma imagem estática e envia cookies juntamente com a solicitação, o servidor não tem nenhum uso para esses cookies. Portanto, eles apenas criam tráfego de rede sem uma boa razão. Você deve garantir que os componentes estáticos sejam solicitados com solicitações sem cookies. Crie um subdomínio e hospede todos os seus componentes estáticos lá.

Este aviso foi retirado das Melhores práticas do Yahoo para acelerar o seu site .

M4N
fonte
0

Só porque sua solicitação http será menor e o servidor executará rapidamente e o arquivo solicitado será fornecido em um tempo muito pequeno, o que resultará no carregamento da página mais rápido

Saurabh Sharma
fonte
Isso não adiciona nada que outras respostas ainda não digam. Você nem diz por que a solicitação é menor (por causa de nenhum cookie); portanto, essa resposta é pior do que muitas outras.
Stephen Ostermiller