fundamentos de aplicaciones web y el protocolo http

Upload: carmelo

Post on 29-May-2018

220 views

Category:

Documents


0 download

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