| Navegador que pincha sitios Web |
| Paso 2: Fundamentos |
Apéndice - Protocolos TCP/IP y otros protocolos de nivel de aplicacación de Internet estándares
Apéndice - Las RFCs (Request for Comments)
El HTTP (Hypertext Transfer Protocol) es el protocolo que Clientes y Servidores Web utilizan para comunicarse.
El puerto estándar de este protocolo es el 80.
Petición a través de un Modem
Primeramente se establece una conexión virtual con el sitio web creando un Socket con la
dirección del Sitio Web y el puerto
- una vez la conexión está establecida, es decir el Sistema Cliente y el sistema Servidor
ya se ven a nivel aplicación, el navegador puede enviar mensajes HTTP de cabecera como los siguientes
| Comando |
|
path |
|
protocolo |
final cabecera |
| GET |
|
/ |
|
HTTP/1.0 |
CRLFCRLF |
| /j2se/index.jsp |
- GET
- es uno de los comandos definidos en el Protocolo HTTP
- los comandos son "case sensitive", por lo tanto "Get" es diferente
de "get".
- GET es una petición de información localizada en un path.
- /
- indica que el servidor entregará un fichero por defecto del tipo default.html, index.html o index.jsp .
- si no quisiéramos la página por defecto, se podría hacer la petición de la siguiente forma
- HTTP/1.0
- Indica el nombre del protocolo y su versión
- CRLFCRLF
- CR
- retorno de carro: valor 13 en la tabla ASCII
- LF
- nueva línea: valor 10 en la tabla ASCII
Este es el aspecto que tendrá nuestro navegador al descargarnos los mensajes HTTP de cabecera y cuerpo a través de un Modem

- el Servidor Web responde a la petición con un mensaje de cabecera y otro mensaje de cuerpo
- mensaje de cabecera
- línea de estado
HTTP/1.0 200 OK CRLF
- 200
- es el código de estado
- éste consiste en tres números e indica el resultado de la respuesta
- ejemplos de códigos de estado
- 2XX: Todo ha ido bien
- 3XX: Redirección
- 301: Moved Permanently: La página requerida ha sido movida a otro servidor.
- 302: Moved Temporarilly: La página requerida estará en otro servidor temporalmente.
- 4XX: Errores del Cliente
- 400: Bad Request. Debido a una mala sintaxis en la petición
- 404: Not Found. Página no encontrada en el Path indicado
- 5XX: Errores del Servidor
- 500: Internal Server Error: El servidor no es capaz de responder
- campos de respusta
Server: Apache-Coyote/1.1
Content-Length: 6914
- mensaje de cuerpo
- es la página Web en cuestión
En este caso podemos ver cuando el mensaje HTTP de cabecera termina por la recepción de los siguientes valores ASCII 13101310 seguidos

Petición a través de un Proxy
Un Proxy es un programa que asume tanto funciones de Cliente como de Servidor con el objetivo de realizar peticiones a los Servidores Web en favor de unos Clientes que se han conectado a ellos. Esto suele suceder en las redes de área local donde sólo hay una conexión a Internet y varios puestos de trabajo que acceden a través de esta única conexión.
- por tanto un Proxy recibe una petición de un Cliente y la reescribe antes de enviarla al Servidor.
- en nuestro ejemplo, primeramente estableceremos una conexión virtual con el proxy creando un Socket con la dirección del Proxy y su puerto
- una vez la conexión está establecida, es decir el Sistema Cliente y el proxy ya se ven a nivel aplicación, el navegador puede enviar peticiones a través de mensajes HTTP de cabecera como los siguientes
| Comando |
|
path |
|
protocolo |
final cabecera |
| GET |
|
http://www.infosintesis.net |
|
HTTP/1.0 |
CRLFCRLF |
| http://java.sun.com/j2se/index.jsp |
- http://www.infosintesis.net
- como es el Proxy el que va a realizar la conexión, es éste el encargado de ponerse en contacto con el Servidor
- fijémonos que el path es peticiones HTTP de alto nivel que escribimos en la URL (Unified Resource Locator) de cualquier Navegador
- es decir los Proxies se encargan de traducir las peticiones HTTP de alto nivel a peticiones HTTP de bajo nivel que finalmente será enviada al Servidor
- si quisiéramos que el Proxy pinchara al puerto 8080 en vez del puerto 80, tendríamos que escribir lo siguiente
http://www.infosintesis.net:8080
Este es el aspecto que tendrá nuestro navegador al descargarnos los mensajes HTTP de cabecera y cuerpo a través de un Proxy
