fundamentos de aplicaciones web y el protocolo http
TRANSCRIPT
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
1/38
Fundamentos de aplicaciones
Web y el protocolo HTTP
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
2/38
HTTP
HTML lenguaje empleado para describir elinterior de los documentos Web
HTTP protocolo de transferencia dehipertexto:
lenguaje empleado para describir cmo se envanestos documentos por Internet
es clave para comprender la programacin Web
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
3/38
lenguaje para solicitar documentos enInternet
HTTP ofrece las normas para que los navegadoreshagan peticiones y los servidores entreguenrespuestas
este conjunto de normas, o protocolo, incluye lamanera de: solicitar un documento por un nombre ponerse de acuerdo en el formato de tdatos determinar quin es el usuario decidir cmo manejar recursos obsolotes indicar los resultados de una peticin
y otras funciones tiles
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
4/38
HTTP consiste en un conjunto de comandos escritoscomo lneas de texto ASCII ordinario.
cuando se utiliza un navegador Web, no se tieneacceso directo a los comandos HTTP
pero al escribir una direccin URL o al hacer clic en unenlace, el navegador convierte la accin en comandosHTTP que piden el documento al servidor especificadoen la URL
el servidor Web encuentra el documento y lo enva alnavegador este navegador lo muestra al usuario junto con los grficos
asociados y otros hipervnculos
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
5/38
especificacin HTTP
las normas establecidas para Internet seespecifican en documentos RFC (Request ForComments) editados por la Internet Engineering
Task Force (IEFT) los RFC estn aceptados por la comunidad de
desarrollo e investigacin en Internet.
estn numerados y nunca cambian una vez
publicados solo se actualizan con otro nuevo
www.freesoft.org/CIE
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
6/38
Modelo peticin HTTP
la especificacin RFC 2616 describe HTTP como unprotocolo de peticin/respuesta sin estado cuya operacinbsica es: una aplicacin cliente, una navegador Web, abre un conector
socket al puerto HTTP del servidor Web (el puertoprederminado es 80) a travs de la conexin el cliente escribe una lnea de peticin
de texto ASCII seguida de ninguna o varias cabeceras HTTP, unalnea en blanco y cualquier dato que acompae a la peticin
el servidor Web analiza la peticin y localiza el recurso
especificado el servidor enva una copia del recurso al conector, donde es
ledo por el cliente el servidor cierra la conexin
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
7/38
un aspecto clave es que este protocolo carecede estado.
al manejar una peticin, el servidor Web NOrecuerda nada sobre peticiones previasprocedentes del mismo cliente
limitaciones en la programacin de aplicaciones
mucho dilogo interactivo en ambas direcciones objetos complejos que hay que inicializar
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
8/38
Solucin
hacer que el servidor asigne un identificador ala sesin representada por un grupo depeticiones de un mismo cliente y hacer que elcliente recuerde el identificador y lo entregueal servidor con cada peticin.
tema manejo de sesiones
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
9/38
conexin al servidor Web
un servidor Web acta ponindose a laescucha esperando peticiones en un nmerode puerto concreto y muy conocido,
normalmente el 80 auqnue se puede utilizarotro disponible.
si un servidor escucha en otro puertodebemos poner con : el nmero de puertoinmediatamente despus del nombre deservidor
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
10/38
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
11/38
http://www.miempresa.com/pagina1.html
http://www.miempresa.com:1234/pagina1.html
http://localhost:8080
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
12/38
para qu usar este lo de nmeros de puerto?
para permitir que haya ms de un servidorfuncionando en un solo servidor host.
un servidor Web experimental puede tener quecoexistir con el servidor principal
los motores servlets TomCat y Jrun pueden utilizar unminiservidor HTTP para comprobar servlets y paginasJSP
se puede esconder estos nmeros de puerto asociandolas URL a diferentes espacios de nombres
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
13/38
un cliente inicia una peticin HTTP abriendoun conector socket TCP/IP al puerto delservidor Web y continua abriendo los flujos deentrada y salida mediante el conector socket.
en java esto seria
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
14/38
Socket
Un socket (enchufe), es un mtodo para la comunicacinentre un programa del cliente y un programa del servidoren una red. Un socket se define como el punto final en unaconexin. Los sockets se crean y se utilizan con un sistema
de peticiones o de llamadas de funcin a veces llamadosinterfaz de programacin de aplicacin de sockets (API,application programming interface).
Un socket es tambin una direccin de Internet,combinando una direccin IP (la direccin numrica nicade cuatro partes que identifica a un ordenador particularen Internet) y un nmero de puerto (el nmero queidentifica una aplicacin de Internet particular, como FTP,Gopher, o WWW).
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
15/38
Socket socket1 = new Socket(www.miempresa.com , 80);
InputStream inp= socket.getInputStream(); OutputStream oup=
socket.getOutputStream();
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
16/38
los parmetros necesarios para abrir elconector socket son el nombre del host delservidor Web y el nmero de puerto.
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
17/38
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
18/38
El envo de la peticin HTTP
una vez hecha la conexin, el navegador Webescribe un comando HTTP para solicitar eldocumento.
una peticin puede constar de cuatro partes:
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
19/38
lnea de peticin. tres categorias separadas por espacios
mtodo de peticion(8 posibles segn la especificacin) la mayoria get o post
URI del la peticin Uniform Resouce Identifier
igual a la direccin URL sin http:// http://www.miempresa.com/ruta.html
versin HTTP HTTP/1.0 HTTP/1.1
una lnea de peticin corriente es: GET /ruta.html HTTP/1.0
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
20/38
Mtodos de peticin
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
21/38
cabeceras de peticin
se trata de pares clave/valor
separados por dos puntos
cada par ocupa una lnea
tras la ltima cabecera de peticin se enva una lnea enblanco que consiste solo en un retorno de carro
informa al servidor de que ya no hay ms cabeceras
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
22/38
estas cabeceras de peticin dan al servidorinformacin adicional sobre la identidad y lascapacidades del clientes
las ms habituales son:
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
23/38
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
24/38
para las peticiones HTTP POST , la peticinpuede incluir datos.
estas peticiones se utilizan para transmitir losvalores de los campos de formularios HTML
si hay datos presentes, es frecuente emplearlas cabeceras de peticin Content-Type yContent-Length
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
25/38
Ejemplo
Por lo tanto, una solicitud HTTP posee lasiguiente sintaxis ( significa retorno decarro y avance de lnea):
MTODO VERSIN URL
ENCABEZADO: Valor
. . . ENCABEZADO: Valor Lnea en blanco
CUERPO DE LA SOLICITUD
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
26/38
GET http://miempresa.net HTTP/1.0
Accept : Text/html
If-Modified-Since : Saturday, 15-January-200014:37:11 GMT
User-Agent : Mozilla/4.0
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
27/38
Aceptacin de la peticin por parte del servidor cuando un cliente se conecta al puerto de escucha del
servidor Web, el servidor acepta la conexin y gestiona lapeticin
lo hace iniciando un subproceso de manera que puedacontinuar atendiendo nuevas peticiones
Gestionar la peticin implica cosas diferentes segn la URI URI es documento esttico, el servidor abre el fichero del
documento y se preapra para enviar su contenido al cliente
URI es un nombre de programa, como una secuencia de comandosCGI, servlet o una pgina JSP, el servidor est configurado paramanejar una peticin de este tipo
el servidor se prepara para invocar al programa o al proceso
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
28/38
la respuesta HTTP del servidor
sea cual sea la manera en que el servidor procesala respuesta, el resultado es el mismo
una respuesta HTTP
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
29/38
la respuesta HTTP es similar a la pticin
consta de cuatro parte como maximo
linea de estado ninguna, una o varias cabeceras de respuesta
lnea en blanco que seala final de cabeceras
datos que conforman la peticin
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
30/38
Ejemplo respuesta HTTP
VERSIN-HTTP CDIGO EXPLICACIN
ENCABEZADO: Valor
. . . ENCABEZADO: Valor Lnea en blanco
CUERPO DE LA RESPUESTA
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
31/38
HTTP/1.0 200 OK Date: Sat, 15 Jan 200014:37:12 GMT Server : Microsoft-IIS/2.0Content-Type : text/HTML Content-Length :1245 Last-Modified: Sat, 15 Jan 2000 14:37:12GMT
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
32/38
la lnea de estado tiene tres categorias
version HTTP
igual que cliente indica qu versin es capaz de
entender, tb el servidor indica sus capacidades
cdigo de respuesta cdigo numerico de tres digitos que indica si la peticin se ha
realizado correctamente y si es fallopor qu
descripcin optional de la respuesta una explicacin del cdigo de la respuesta que el usuario
entienda
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
33/38
HTTP/1.0 200 OK
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
34/38
tras la lnea de estado vienen las cabeceras derespuesta
una lnea en blanco como delimitador
igual que las cabeceras de epticin
indican las capacidades del servidor
dicen detalles sobre los datos de respuesta
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
35/38
la ltima parte de la respuesta son los propiosdatos solicidatos
normalmente un documento HTML o un flujo deimgenes
una vez enviados los datos, el servidor ponefin a la conexin
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
36/38
encabezados de respuesta
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
37/38
cdigos de respuesta
-
8/9/2019 Fundamentos de Aplicaciones Web y El Protocolo HTTP
38/38
Ejemplos
Firebug
Web Sniffer
Webkit Web Inspector DebugBar