En el proceso del navegador entrar en la dirección de una

1. Introduzca la dirección URL en su navegador

Todo comienza aquí:

2. El navegador Encuentre la dirección IP del nombre de dominio

 imagen

El primer paso es encontrar la navegación para acceder a la dirección IP del dominio. Búsqueda de DNS de la siguiente manera:

  • caché del navegador - navegador caché los registros DNS para un período de tiempo. Curiosamente, el sistema operativo no le dice al navegador tiempo de supervivencia para cada registro de DNS, por lo que el navegador va a almacenar en caché un período fijo de tiempo (intervalo navegador 2-30 minutos).
  • Caché del sistema operativo  - si el caché del navegador no contiene los registros requeridos, la llamada al sistema navegador (GETHOSTBYNAME Windows). El sistema operativo tiene su propia caché.
  • Router caché  - continuar solicitando su router, el router normalmente tiene su propia caché DNS.
  • caché DNS del ISP  - comprobar la siguiente ubicación es el servidor DNS del ISP caché. Hay caché, de forma natural.
  • búsqueda recursiva  - servidor DNS de su ISP para iniciar la búsqueda recursiva de los servidores de nombres raíz a los servidores de nombres a través de los servidores de nombres de primer nivel .com Facebook. Por lo general, el servidor DNS tiene los nombres de los servidores de nombres .com en la memoria caché, por lo que el éxito al servidor de nombres raíz es innecesaria.

 

El siguiente es un esquema de una búsqueda DNS recursivo:

500 píxeles, An_example_of_theoretical_DNS_recursion_svg 

 

3. El navegador envía una petición HTTP al servidor Web

imagen

Facebook puede estar bastante seguro de la página principal no estará disponible desde la memoria caché del navegador, ya que las páginas dinámicas pueden ser muy rápida o inmediata (fecha de caducidad está a punto de expirar).

Por lo tanto, el navegador envía la solicitud al servidor de Facebook:

GET http://facebook.com/ HTTP / 1.1 
aceptables: archivo de la aplicación en MS-X archivo application /, image / jpeg, archivo application / XML + XAML, [...] 
el Agente User--: Mozilla / 4.0 (compatible; MSIE 8.0; NT 6.1 de Windows; WOW64; [...] 
la Accept-Encoding: gzip, el desinflado 
conexión: Mantener la vitalidad 
Moderador: facebook.com 
cookies: DATR = 1265876274- [...]; locale = es; LSD = WW [. ..]; c_user = 2.101 [... ]

Obtener el nombre de solicitud para extraer la URL de  :  "http://facebook.com/." Propio navegador (identifica el User-Agent cabecera), y reconoció que tipo de respuesta ( el Aceptar y Accept-Encoding cabecera). La conexión de la cabeza requiere aún más el servidor para mantener la solicitud de conexión TCP abierta.

La solicitud también contiene este dominio navegador de cookies . Usted ya sabe, seguimiento de cookies estado entre solicitudes de páginas web de los diferentes pares. De ahí el nombre de cookies le almacenar de usuario y la contraseña del usuario asignado por el servidor al usuario, ciertas configuraciones del usuario. Cookie puede almacenar en un archivo de texto en el cliente, con cada solicitud se envía al servidor.

4.Facebook responde servidor de redirección de una manera permanente

imagen

Esto es en respuesta al servidor de Facebook envía de nuevo a las peticiones del navegador:

HTTP / 1.1 301 Movido permanentemente 
Cache-Control: privado no- tienda, no-cache, que hay que revalidar, después de la comprobación = 0, 
      pre-check = 0 
Fecha de caducidad: 1 Enero el año 2000 00:00:00 GMT del sábado 
Localización: HTTP: //www.facebook.com/ 
P3P: CP = "DSP LEY" 
Pragma: no caché 
Set-Cookie: made_write_conn = suprime expira = Jue 12 de febrero de 2009 05:09:50 GMT; 
      ruta = /; domain = .facebook.com, sólo Http 
tipo de contenido: text / html; charset = UTF-8 de la 
X-Cnection: Cerrar 
la fecha: 12 de febrero de 2010, viernes 05:09:51 GMT 
Content-Length: 0

Servidor respondió a 301 movimiento permanente en respuesta, diciendo que el navegador "http://www.facebook.com/" en lugar de "http://facebook.com/".

Hay algunas razones por qué el interés se adhieren servidor para redirigir, en lugar de responder de inmediato a la página que el usuario quiere ver.

Una de las razones para los motores de búsqueda relacionados . A ver si la misma página hay dos URL, por ejemplo http://www.igoro.com/ y http://igoro.com/ , los motores de búsqueda pueden pensar que se trata de dos sitios diferentes, cada entrante un menor número de enlaces, rango inferior. Los motores de búsqueda entender redirección permanente (301), y los enlaces entrantes combinados de dos fuentes en una sola clasificación.

Además, la dirección URL no es el mismo múltiplo contenido de la memoria caché de usar . Cuando una pieza de contenido que hay más de un nombre, parece muchas veces el potencial en la memoria caché.

5. El navegador sigue la redirección

imagen

El navegador ahora sabemos que "http://www.facebook.com/" es la dirección URL correcta, enviará otra petición GET:

GET http://www.facebook.com/ HTTP / 1.1 
aceptación: application / x-ms-aplicación , image / jpeg, application / XAML + xml, [...] 
aceptado Idioma: es- 
User Agent: Mozilla / 4.0 (compatible; MSIE 8.0; el Windows NT 6.1; el WOW64; [...] 
la Accept-Encoding: el gzip, el desinflado 
de conexión: mantener la vitalidad 
Cookie: lsd = XW [...] ; c_user = 21 [...]; x -referer = [...] 
de acogida: www.facebook.com

El significado del título con la misma primera solicitud.

6. Solicitud del Servidor 'Processing'

imagen

El servidor recibirá una petición GET, lo procesa y envía una respuesta.

Esto parece una tarea sencilla, pero en realidad, hay un montón de cosas interesantes suceda - incluso en los sitios simples como mi blog como este, por no hablar de la expansión masiva, tales como sitios de Facebook.

  • software de servidor Web es
    software de servidor web (como IIS o Apache) recibe la petición HTTP y decidir que realiza controlador de solicitudes para procesar esta solicitud. Controlador de solicitudes se genera en respuesta a una petición de lectura y un programa de HTML (en ASP.NET, PHP, Ruby, ... in).

    En el caso más simple, el programa de procesamiento de solicitudes puede ser almacenada en la estructura de dirección refleja la estructura de la jerarquía de archivos, por ejemplo http://example.com/folder1/page1.aspx  URL se asignarán al archivo / httpdocs / carpeta1 / page1 de. aspx. software de servidor web también se puede configurar para asignar a una URL controlador de solicitudes de forma manual, por lo Page1.aspx URL pública puede ser http://example.com/folder1/page1 .

  • Controlador de solicitudes
    del controlador de solicitudes petición de lectura, sus parámetros y Cookie. Puede leer y actualizar algunos de los datos almacenados en el servidor. A continuación, el controlador de solicitudes genera una respuesta HTML.

Un interesante dilema para cada cara de sitios web dinámicos es la forma de almacenar datos. Sitios más pequeños por lo general tienen una base de datos SQL para almacenar sus datos, pero almacenar grandes cantidades de datos y / o tener muchos visitantes del sitio han de encontrar una manera de dividir la base de datos a través de múltiples máquinas. Solución que comprende el corte en lonchas (basado en clave múltiple por división de bases de datos primarias), y copia la base de datos utilizando una consistencia semántica simplificado de debilidad.

Mantenga el barato datos actualizados Una técnica es posponer algo de trabajo para trabajos por lotes. Por ejemplo, Facebook debe actualizar la fuente de noticias, pero los datos de apoyo, "Usted puede saber" función sólo puede tener que actualizar cada noche (supongo, no se sabe muy bien cómo implementar esta característica). actualizaciones de trabajo por lotes resultan en algunos datos obsoletos menos importante, pero los datos se pueden actualizar más rápido y más fácil.

7. El servidor devuelve una respuesta HTML

imagen

La siguiente es una respuesta desde el servidor genera y envía de vuelta:

HTTP / 1.1 200 OK 
Cache-Control: privado, no-store, no-cache, el deber-revalidate, el puesto de control = 0, 
    pre-check = 0 
Fecha de caducidad: 1 Enero, 20:00 GMT Sábado 00:00:00 
P3P : CP = "DSP LEY" 
Pragma: no caché 
el contenido-Encoding: gzip 
content-type: text / html; charset = UTF-8 de la 
X-Cnection: Cerrar 
la transferencia de codificación: bloque de 
fecha: 12 de febrero de 2010, viernes 0900 : 05: 55 GMT 

2B3 
Tn de @ [...]

La respuesta entera es de 36 kB, sobre todo en bytes I recortar el final de la gota.

La codificación del contenido de cabecera le dice a la respuesta del cuerpo con el navegador algoritmo de compresión gzip. Después de desembalar Blob, verá el código HTML deseado:

<! DOCTYPE html PUBLIC “- // W3C // DTD XHTML 1.0 Strict // EN”    
      “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> 
<html xmlns = “http : //www.w3.org/1999/xhtml”xml: lang =‘es’ 
      lang =‘es’id =‘’class =‘facebook no_js’> 
<HEAD> 
<meta http-equiv =‘Content-type’ content = “text / html; charset = UTF-8” /> 
<meta http-equiv = ‘’ content = ‘lengua de contenidos en’ /> 
...

Además de la compresión, encabezado especifica si y cómo almacenar en caché la página, configurar cualquier Cookie (en esta respuesta sin ella), y otra información privada.

Tenga en cuenta que el Content-Type conjunto de text / html título. Título indica al navegador que el contenido de la respuesta dictada como HTML, en lugar de como una descarga de archivos. El navegador usará el título de decidir cómo interpretar la respuesta, pero también tendrá en cuenta otros factores, tales como la expansión de la URL.

8. navegador para iniciar la representación HTML

Incluso antes de que el navegador ha recibido todo el documento HTML, sino que también comenzó a hacer que el sitio web:

 imagen

9. El navegador envía una petición incrustado objetos HTML

imagen

Cuando el navegador representa HTML, se observó la necesidad de etiquetar otra extracción de URL. El navegador envía la solicitud GET para recuperar los archivos.

Las siguientes son algunas de mi página web facebook.com visita:

  • Foto
    http://static.ak.fbcdn.net/rsrc.php/z12E0/hash/8q2anwu7.gif 
    http://static.ak.fbcdn.net/rsrc.php/zBS5C/hash/7hwy7at6.gif 
    ...
  • hojas de estilo CSS
    http://static.ak.fbcdn.net/rsrc.php/z448Z/hash/2plh8s4n.css 
    http://static.ak.fbcdn.net/rsrc.php/zANE1/hash/cvtutcee.css 
    . ..
  • archivos JavaScript
    http://static.ak.fbcdn.net/rsrc.php/zEMOA/hash/c8yzb6ub.js 
    http://static.ak.fbcdn.net/rsrc.php/z6R9L/hash/cq2lgbs8.js 
    .. .

Cada una de estas URL a través de un proceso con la página HTML a través de un proceso similar. Por lo tanto, el navegador buscará en el DNS, enviar una petición a la URL de redirección.

Sin embargo, los archivos estáticos (con diferentes páginas dinámicas) permite que el navegador para almacenar en caché ellos. Algunos archivos pueden ser proporcionados desde la caché sin contactar con el servidor. Caché del navegador sabe cuánto tiempo un archivo en particular, porque el retorno del archivo de respuesta contiene un Expira cabecera. Además, cada respuesta puede contener también una versión similar de cabecera ETag - para ver si el navegador ya tiene una versión de archivo de ETag, puede detener la transmisión inmediatamente.

Se puede adivinar la URL "fbcdn.net" significa nada? Vale la pena mencionar que esto significa que "las redes de distribución de contenidos de Facebook." Facebook utilizando la red de distribución de contenidos (CDN) para distribuir contenido estático - imágenes, hojas de estilo y archivos JavaScript. Por lo tanto, estos archivos se copian en la máquina de muchos global.

El contenido estático por lo general representan la mayor parte del sitio de ancho de banda, y puede ser fácilmente copiado a la CDN. Normalmente, el sitio utilizará un proveedor de CDN de terceros, en lugar de intentar ejecutar la CND. Por ejemplo, los archivos estáticos de Facebook organizadas por el mayor proveedor de CDN Akamai.

Como demostración, cuando intenta static.ak.fbcdn.net de ping, recibirá una respuesta del servidor akamai.net. Además, es interesante, si ping a la URL unas cuantas veces, es posible que reciba una respuesta desde los distintos servidores, balanceo de carga que sugiere que sucede detrás de las escenas.

10. El navegador envía una solicitud asincrónica más (AJAX)

imagen

En el espíritu de la Web 2.0, incluso después de que se pronuncie la página, el cliente continúa para comunicarse con el servidor.

Por ejemplo, Facebook Chat continuará actualizando la lista de amigos que ha iniciado sesión como vienen. Para actualizar la lista de amigos e ingresados, la ejecución de JavaScript en el navegador debe enviar una solicitud asíncrona con el servidor. solicitud asincrónica es GET o POST solicita un programa de construcción, ir a una URL especial. En el ejemplo de Facebook, el cliente envía una solicitud POST a http://www.facebook.com/ajax/chat/buddy_list.php, para una lista de amigos en línea.

Este modo se denomina a veces "AJAX", que significa "Asynchronous JavaScript y XML", aunque no hay ninguna razón en particular por la respuesta del servidor debe tener el formato XML. Por ejemplo, Facebook solicitud asíncrona devuelve una respuesta de código JavaScript.

Además, la información sobre herramientas le permite ver la solicitud asincrónica enviada por el navegador. De hecho, no se puede observar de manera pasiva solicitudes, también puede editar y re-enviar. De hecho, esta es una petición AJAX hecho fácil "trampa" para los desarrolladores que utilizan el marcador del juego en línea, que causó mucho daño. (Obviamente, no engañar de esta manera.)

Chat de Facebook es un ejemplo interesante pregunta AJAX: los datos desde el servidor al cliente empujó. Dado que HTTP es una petición - protocolo de respuesta, el servidor de chat, por lo tanto no puede ser empujado al cliente un mensaje nuevo. En su lugar, el cliente debe consultar al servidor cada pocos segundos para ver si han llegado nuevos mensajes.

Sondeo largo es interesante tecnología para reducir estos tipos de escenarios en la carga del servidor. Si el servidor no tiene ningún mensaje nuevo durante el sondeo, no va a enviar de vuelta una respuesta. Por otra parte, si el cliente ha recibido un mensaje dentro del período de tiempo de espera, la petición de descubrimiento del servidor no es completa y devolver el mensaje.

Supongo que te gusta

Origin www.cnblogs.com/kezan/p/12445903.html
Recomendado
Clasificación