Recientemente, un compañero de clase me preguntó por qué el mismo sitio web debería colocar la página principal y los recursos estáticos (imágenes, etc.) bajo diferentes nombres de dominio (el mismo servidor puede analizarse o puede ser diferente). ¿Cuál es el propósito de hacer esto? Escuchemos despacio~
1. Innovador límite de concurrencia del navegador
Los navegadores tienen un límite en la cantidad de solicitudes de recursos simultáneas dentro del mismo nombre de dominio ( para evitar ataques DDOS ) , y diferentes navegadores tienen diferentes cantidades de cargas simultáneas de recursos estáticos bajo el mismo nombre de dominio. Si se excede el límite máximo, se bloquearán las solicitudes en exceso . El navegador esperará a que se descarguen los recursos anteriores y luego reutilizará el tcp conectado anteriormente para iniciar solicitudes posteriores.
El siguiente es el número de solicitudes simultáneas para algunos navegadores comunes:
cromo34/32 | 6 |
IE10 | 8 |
IE11 | 13 |
Firefox27/26 | 6 |
Safari 7.0.1 | 6 |
Es concebible que si colocamos los recursos estáticos en otro nombre de dominio, que es diferente de la página principal, podemos superar el límite del navegador en el número de solicitudes simultáneas y reducir el tiempo de carga de la página web. No solo puede aumentar el número de solicitudes simultáneas , sino también reducir las solicitudes bajo el nombre de dominio principal , logrando el efecto de reducir el tiempo de pantalla blanca de la página web o el tiempo de DCL y L.
2. Ahorre ancho de banda de cookies
La cookie va seguida del nombre de dominio. Todas las solicitudes bajo el mismo nombre de dominio llevarán cookies . Es concebible que si todos nuestros recursos están bajo un nombre de dominio, entonces cargar esos recursos estáticos también traerá cookies, lo que obviamente aumenta el costo de la solicitud.
En la mayoría de los casos, las solicitudes de recursos estáticos no necesitan llevar cookies, como imágenes, videos y otra información de navegación. A diferencia del nombre de dominio principal, las cookies no se transportarán automáticamente , por lo que podemos evitar llevar cookies colocando recursos estáticos en otro nombre de dominio, ahorrando ancho de banda de solicitud.
3. Almacenamiento en caché de CDN más conveniente
Almacenar contenido estático y solicitudes dinámicas en diferentes servidores facilita la CDN
solicitud.
4. Convergencia de nombres de dominio
- divergencia de dominio
La divergencia de nombres de dominio se refiere a la colocación de recursos estáticos en varios nombres de subdominios, de modo que se puedan realizar descargas de subprocesos múltiples, lo que mejora el paralelismo y permite a los clientes cargar recursos estáticos más rápidamente. Es decir, el contenido discutido en este artículo, la página principal y los recursos estáticos deben colocarse bajo diferentes nombres de dominio.
- convergencia de nombres de dominio
La convergencia de nombres de dominio se refiere a colocar recursos estáticos bajo un nombre de dominio. Reduzca la sobrecarga de resolución de DNS.
Dado que los navegadores tardan en resolver el DNS, demasiados nombres de dominio generarán un tiempo de resolución prolongado y una velocidad de acceso lenta.
Por lo tanto, debemos controlar la cantidad de nombres de dominio que aparecen en la página. En términos generales, el sitio principal + CDN dos nombres de dominio son más razonables.