Protocolo HTTP

Anuncio
Protocolo HTTP
HTTP
HTTP / Mar 2005
()
HTTP
HTTP - 1
1 / 23
Historia
1974
La primera aparición del término INTERNET
1976
UUCP (Unix to Unix copy)
1977
Especifación de protocolo de correo
1983
El primer DNS
()
HTTP
HTTP - 1
2 / 23
Historia
En los 80 los protocolos que se usan son:
TELNET
FTP
File Transfer Protocol
NNTP
Network News Transfer Protocol
SMTP
Simple Mail Transfer Protocol
()
HTTP
HTTP - 1
3 / 23
Historia
1990
Se usa un sistema de hipertexto en el CERN
1994
Se establece el W3 consortium http://www.w3.org
1995
HTML 2.0 (con ’forms’)
1999
HTML 4.01 (última versión)
2000
XHTML
()
HTTP
HTTP - 1
4 / 23
Cliente-Servidor
En Internet muchos programas funcionan en parejas Cliente-Servidor
Cliente
Proactivo
Requiere
enador del usuario
de http: Firefox, Explorer, lynx
Toma la iniciativas de comunicación
información
Maneja la interface de usario
Servidor
de http: Apache, monkey
Reactivo Responde a los requerimientos del cliente
Responde
Ordenador remoto Resuelve las consultas de información
()
HTTP
HTTP - 1
5 / 23
HTTP Hiper Text Transfer Procotol
http://www.google.com/index.html
El cliente envia a www.google.com (IP: 216.239.57.100)
GET /index.html HTTP/1.1
Host: www.google.com
Accept: text/html
Accept: */*
User-Agent: Mozilla 6.1
(* linea en blanco *)
()
HTTP
HTTP - 1
7 / 23
HTTP: Hiper Text Transfer Procotol
El servidor responde:
HTTP/1.1 200 OK
Date: Thursday, 06-Mar-03 15:00:00 GMT
Server: Apache 1.3
...
Content-length: 2584
Content-type: text/html
(*linea en blanco *)
<html><head> ...</html>
()
HTTP
HTTP - 1
9 / 23
CGI: Common Gateway Interface
En http también está previsto el paso de información del Cliente al
Servidor
→ El cliente manda parejas (parámetro,valor) a un archivo ejecutable
CGI
→ El servidor a traves de la interface CGI manda los parámetros al
ejecutable
→ El ejecutable comunica la salida (a través de CGI) al servidor
→ El servidor manda la salida al cliente
()
HTTP
HTTP - 1
10 / 23
CGI: Paso de parámetros en GET
GET
/search?q=Bush
http://www.google.com/search?q=Bush
Mas de un parametro:
http://www.google.com/search?hl=es&q=Bush
()
HTTP
HTTP - 1
12 / 23
CGI: Paso de parámetros en GET
No se puede poner cualquier caracter en un URL
http://www.google.com/search?hl=es&q=%22Bush%20es%20un
para "Bush es un"
"
0x22
Espacio 0x20
()
HTTP
HTTP - 1
14 / 23
CGI: Paso de parámetros en PUT
PUT /search HTTP/1.1
Host: www.google.com
User-Agent: Mozilla 6.1
(* linea en blanco *)
hl=es
q=Bush
()
HTTP
HTTP - 1
16 / 23
Common Gateway Interface
1
El servidor pone en la variable de entorno QUERY_STRING
’hl=es&q= %22Bush %20es %20un %22’
2
Ejecuta ’search’
3
Recoge la salida estandar de search
4
Completa las cabeceras del HTTP y se la remite al cliente
()
HTTP
HTTP - 1
17 / 23
Código: Libreria CGI
#!/usr/bin/perl
use strict;
use CGI qw(param);
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html; charset=ISO-8859-1\n\n
if (param()) {
Responde (param("test"));
} else {
Manda_Formulario ();
}
exit;
()
HTTP
HTTP - 1
19 / 23
Código: Formulario
sub Formulario {
my $cgi=$ENV{’SCRIPT_NAME’};
print<<ETI;
<html>
<head><title> Prueba </title></head>
<body>
<p> Formulario </p>
<form action=$cgi method="GET">
<input type="text" name="test">
</form>
</body>
</html>
ETI
}
()
HTTP
HTTP - 1
21 / 23
Código: Responde
sub Responde {
my $res = shift;
my $cgi=$ENV{’SCRIPT_NAME’};
print<<ETI;
<html>
<head><title> Respuesta </title></head>
<body>
<p> Has tecleado : $res </p>
<form action=$cgi method="GET">
<input type="text" name="test">
</form>
</body>
</html>
ETI
}
()
HTTP
HTTP - 1
23 / 23
Descargar