Si usted ha estado utilizando el Internet durante algún tiempo, es probable que haya algo escrito en su navegador que comienza con "http:" y termina con ". Html", pulsar "Go", observó las luces del módem parpadean, y una par de segundos más tarde que por arte de magia viendo una página de noticias de hoy o una página de fotografías. Vamos a tratar de tomar algo de la magia de distancia ...
Pensé en llamar a este artículo un "Geeks vista de HTTP", yo no voy a entrar en la Nitty Gritty, sino más bien presentar un bosquejo de cómo un geek debería ver algo como HTTP, cómo pueden pensar algo como HTTP es simple, y por qué ellos no están tratando de hacer las cosas complicadas sólo por el bien de él!
- * Capas * -
Los antecedentes del dibujo es que las computadoras están llenas de capas. Los programadores y diseñadores piensan en capas, ya que la organización en capas hace que sea más fácil de construir cosas.
No es necesario saber qué es o dónde las capas están en el equipo, o cuando se empieza y se detiene otro, pero es útil recordar que están en todas partes, porque así es como geeks organizar las cosas.
- * Las especificaciones y protocolos * -
Las especificaciones y protocolos son las cosas que son la causa probable en su mayoría de todas sus frustraciones ordenador ... pero son un mal necesario. Un hombre sabio dijo una vez que cualquier especificación de más de una línea tendrá ambigüedades y ser una fuente de problemas. Hay un montón de especificaciones y protocolos en la vida cotidiana. Un ejemplo de un protocolo es cuando usted está conduciendo y ve una luz roja que disminuir la velocidad y detenerse hasta que se vuelva verde. La especificación de este protocolo es la regla que está (probablemente) escrito en el libro de ruta de la regla. Pero no es necesario que lea las normas de conducción, es simplemente sentido común para saber que parar por un semáforo en rojo. Por supuesto, todos sabemos que las computadoras de las palabras y el sentido común no tienen cabida en la misma frase, y es por eso que hay tantas especificaciones de la computadora y son generalmente tan larga y detallada.
Un sentimiento común es "que realmente necesita para explicar cosas para un equipo". Creo que esto es un poco engañoso. No es el equipo que necesita cosas explicadas en detalle, es que los programadores y diseñadores que construyen las capas superiores que necesitan explicar cosas para que otros programadores la creación de otras capas superiores.
Si un programador hace caso omiso de las normas de una especificación, o no saben que hay una regla a seguir, el resultado puede ser el mismo que si un conductor se pasa una luz roja ... un choque.
- * Conexión * -
He terminado con el fondo del dibujo, y ahora me voy a hacer un dibujo de un par de botes en una bahía, cada uno con un radio de dos vías. Crecí alrededor de los barcos y siempre me gustó escuchar en la charla en las radios de dos vías. Las conversaciones siguientes son de mis recuerdos de crecer, pero las ideas son probablemente los mismos para las formas CB y otro de radio.
El primer barco que llamaremos "Rock n Roll", el segundo "Jazz". No había un solo canal, y me di cuenta de que había un protocolo que todo el mundo parecía seguir (excepto domingos por la tarde) para mantener las cosas ordenadas. No sé si este protocolo fue escrito en ninguna parte como un conjunto de normas de especificación o era simplemente sentido común. Si quería llamar Jazz Rock n Roll que esperarían hasta que oyeron el final conversación actual con un "Over and Out". Tendrían que esperar un par de segundos y luego decir algo como "Rock n Roll, Rock n Roll, esto es Jazz, ¿me escucha, cambio". Si alguien estaba escuchando Jazz, dirían "Rock n Roll, esto es Jazz, adelante, cambio". Bingo!, Tienen una conexión.
El mismo tipo de cosas sucede cuando se escribe una dirección en su navegador web y pulsa "Go". Su equipo acaba de pasar un montón de números al módem. Para simplificar las cosas, vamos a ignorar que el módem es convertir esos números en sonidos, y pretender que son esos números que van a viajar a lo largo de su línea telefónica. La razón de enviar números a lo largo de su teléfono puede funcionar, es que en el otro extremo de la línea es el equipo de su ISP. Este equipo, y todos los demás equipos de la Internet, tienen capas escritas por los programadores y diseñado por los arquitectos informáticos, que siguen las especificaciones estrictas y detalladas de qué hacer con los números que sale de tu ordenador.
Esto suena complejo (y los detalles son!), Pero no es lo mismo que la persona en Rock n Roll sabiendo que esperar hasta que oyeron "cambio y fuera" antes de llamar Jazz, y diciendo "por" al final de cada frase . Si nadie seguido estos protocolos el canal habría sido un caos, todo el mundo tratando de hablar sobre todos los demás. De la misma manera, si el equipo y los otros equipos en Internet no siguió las especificaciones, el hecho de que el ordenador envía algunos números por encima de su línea telefónica sería tan inútil como parece en el primer lugar! ... pero, si se siguen las reglas, funciona.
No voy a entrar en los detalles reales de estas especificaciones, pero es probable que haya visto las siglas, TCP / IP y DNS (y un montón más!)
- * HTTP * -
Digamos que alguien en Rock n Roll sabe que hay un almanaque Jazz fútbol a bordo de la cual se confirmará la puntuación de un juego en particular y resolver una discusión a bordo de Rock n Roll. Cuando Rock n Roll escucha Jazz decir "esto es Jazz, adelante, cambio" saben que tienen una conexión con Jazz y puede comenzar una conversación. Rock n Roll podría decir "Jazz me puede conseguir la partitura de la Superbowl de 1987, sobre", y el Jazz vuelve con la respuesta terminando con un "sobre". Rock n Roll puede pedir para otra anotación, o podría pedir la lista de jugadores, o simplemente podría decir "gracias, sobre" y cuyo punto Jazz decía: "Nos vemos, cambio y fuera".
- * [Http://Jazz/SuperbowlScore1987] * -
Eso es realmente lo que está haciendo HTTP. La conexión se ha hecho en las capas inferiores separados que están manejando los números que viajan fuera de su equipo y su traslado al equipo que se está conectando. HTTP es una especificación bastante simple que permite a un ordenador a otro para pedir alguna información (por nombrarlo), y para que la información que se devuelve. No dice nada acerca de si esta información proviene, en cuanto a la especificación HTTP se refiere, alguien podría estar sentado en la tipificación de otro ordenador en la respuesta. Sin embargo, por lo general la información que se pide es el nombre de un archivo, que es un grupo de números de la unidad de disco duro. Esos números son movidos desde el disco duro a la memoria en el módem y volver a tu ordenador.
Eso es todo! Esta es la esencia de HTTP.
El punto es ver por qué un geek puede pensar algo como HTTP es simple hay que pensar en capas como un geek. Pensando en capas no es una especie de zen como disciplina para ellos, es probable que lo haga sin ni siquiera ser consciente de ello, ya que es lo que sus herramientas y lenguajes alentar. Si un programador escribía un programa HTTP se puede escribir algo como:
LowerLayer ConnectTo: "Jazz".
LowerLayer enviar: "GET SuperbowlScore1987".
LowerLayer fuera.
El programador que escribe esto no está pensando en los detalles de cómo se establece la conexión o la forma en que el mensaje se ha enviado. Pueden tener ni idea! Cuando se trabaja con http que acaba de asumir las obras de capas inferiores. Si ellos, o tú, quieren entender la capa inferior, a continuación, poner HTTP de su mente y leer sobre las capas TCP / IP y DNS y especificaciones (divertirse, y tener un buen suministro de café listo).
Del mismo modo, no están tratando de entender cómo la información que se recibe se muestra tan bien en su navegador. Que es una capa superior y otra especificación (HTML).
Espero que hayan disfrutado leyendo este artículo, se ha tomado una perspectiva poco habitual de HTTP! Si desea leer sobre los detalles hay un número de buenos artículos en la web y la especificación HTTP en sí.