14Sep

¿Por qué a veces mi navegador web no muestra los tiempos de descarga restantes?

click fraud protection

A veces, el medidor de progreso de descarga fiel en su navegador( u otra aplicación) simplemente arroja sus manos al aire y se da por vencido al mostrar el tiempo de descarga restante.¿Por qué a veces se clava en el tiempo de descarga proyectado y algunas veces falla al reportarlo todo junto?

Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.

El lector

SuperUser de Question Coldblackice quiere saber por qué su navegador no siempre muestra la suciedad:

Ocasionalmente, al descargar un archivo en un navegador web, el progreso de la descarga no "conoce" el tamaño total del archivo, oqué tan avanzado está en la descarga, solo muestra la velocidad a la que se está descargando, con un total como "Desconocido".

¿Por qué el navegador no sabría el tamaño final de algunos archivos?¿De dónde saca esta información en primer lugar?

¿Dónde de hecho?

El colaborador del Superusuario

instagram viewer

de Answers, Gronostaj, ofrece la siguiente información:

Para solicitar documentos de los servidores web, los navegadores utilizan el protocolo HTTP.Puede que sepa ese nombre de la barra de direcciones( puede estar oculto ahora, pero al hacer clic en la barra de direcciones, copiar la URL y pegarla en algún editor de texto, verá http: // al principio).Es un protocolo simple basado en texto y funciona así:

Primero, su navegador se conecta al servidor del sitio web y envía una URL del documento que desea descargar( las páginas web también son documentos) y algunos detalles sobre el navegador en sí( User-Agent, etc.).Por ejemplo, para cargar la página principal en el sitio SuperUser, http: //superuser.com/, mi navegador envía una solicitud que se ve así:

GET / HTTP / 1.1 Host: superuser.com Conexión: keep-alive Aceptar: texto / html, aplicación/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla / 5.0( Windows NT 6.1; WOW64) Aceptar-Codificar: gzip, deflate, sdch Accept-Language: pl-PL, pl; q = 0.8, en-US; q = 0.6, en; q = 0.4 Cookie: [eliminado por seguridad] DNT: 1 If-Modified-Since: Tue, 09 Jul 2013 07:14:17 GMT

La primeralínea especifica qué documento debe devolver el servidor. Las otras líneas se llaman encabezados;se ven así:

Nombre del encabezado: valor del encabezado

Estas líneas envían información adicional que ayuda al servidor a decidir qué hacer.

Si todo está bien, el servidor responderá enviando el documento solicitado. La respuesta comienza con un mensaje de estado, seguido de algunos encabezados( con detalles sobre el documento) y finalmente, si todo está bien, el contenido del documento. Esta es la respuesta del servidor SuperUser para mi solicitud:

HTTP / 1.1 200 OK Cache-Control: public, max-age = 60 Content-Type: text / html;charset = utf-8 Caduca: mar, 09 de julio 2013 07:27:20 GMT Modificado por última vez: martes, 09 julio 2013 07:26:20 GMT Varíe: * X-Frame-Options: SAMEORIGIN Fecha: mar, 09 de julio de 201307:26:19 GMT Content-Length: 139672 & lt;! DOCTYPE html & gt;& lt; html & gt;[... snip. ..] & lt; / html & gt;

Después de la última línea, el servidor de SuperUser cierra la conexión.

La primera línea( HTTP / 1.1 200 OK) contiene el código de respuesta, en este caso es 200 OK.Significa que el servidor devolverá un documento, según lo solicitado. Cuando el servidor no logra hacerlo, el código será algo más: probablemente haya visto 404 Not Found, y 403 Forbidden también es bastante común. Entonces los encabezados siguen.

Cuando el navegador encuentra una línea vacía en la respuesta, sabe que todo lo que está más allá de esa línea es el contenido del documento que solicitó.Entonces, en este caso & lt;! DOCTYPE html & gt;es la primera línea del código de la página principal del superusuario. Si estuviera solicitando la descarga de un documento, probablemente se trataría de algunos galimatías, ya que la mayoría de los formatos de documentos no se pueden leer sin procesamiento previo.

Volver a los encabezados. El más interesante para nosotros es el último, Content-Length. Le informa al navegador cuántos bytes de datos debe esperar después de la línea vacía, así que básicamente es el tamaño del documento expresado en bytes. Este encabezado no es obligatorio y puede ser omitido por el servidor. Algunas veces el tamaño del documento no puede predecirse( por ejemplo, cuando el documento se genera sobre la marcha), a veces los programadores perezosos no lo incluyen( bastante común en los sitios de descarga de controladores), a veces los sitios web son creados por novatos que no sabende tal encabezado.

De todos modos, sea cual sea el motivo, puede faltar el encabezado. En ese caso, el navegador no sabe cuántos datos va a enviar el servidor y, por lo tanto, muestra el tamaño del documento desconocido, esperando a que el servidor cierre la conexión. Y esa es la razón de los tamaños de documentos desconocidos.

¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.