Protocolos que componen el WebEstos son los protocolos o acuerdos tecnológicos que sustentan la Web RFC2616 reemplaza a RFC 1945. El protocolo HTTP es:
Lo importante de HTTP/1.0 es su soporte para tipos MIME, pero no toma en cuenta ni proxies, ni caching, ni conecciones persistentes o virtual hosts. HTTP/1.1 por otra parte implementa estas características, pero cuenta con una conección perfecta y no hace corrección de errores. El uso normal es un UserAgent que envía una cadena de requerimiento, y recibe una cadena de respuesta, o un stream. Entre ellos pueden haber proxies, gateways o túneles. 1. Subcomponentes
Básicos:
Negociación de cotenido:
Y algunos componentes más esotéricos:
2. Mensajes
Los mensajes tienen varios encabezados de la forma nombre=valor y un cuerpo de mensaje. Se dividen en mensajes de requerimiento y mensajes de respuesta. Existen algunos encabezados compartidos:
1. Request messages
Comienzan con una línea del tipo "MÉTODO URL VERSION", como "GET / HTTP/1.1". A continuación siguen normalmente uno o varios de los siguientes encabezados:
2. Response messages
Comienzan con una línea del tipo "VERSIÓN CÓDIGO MENSAJE", como "HTTP/1.1 200 OK". Los códigos se agrupan por familias, de la siguiente manera:
Las aplicaciones deben entender al menos el primer dígito de la respuesta. Pueden no entender el resto, y eso da mucha flexibilidad al protocolo (ej.: un programa de ajedrez entre un cliente y un servidor: 285 jugada aceptada, 482 jugada ilegal, 196 estoy pensando, 387 jaque mate) 3. Conección persistente
Pipelining, negociación de conección persistente. Además HTTP/1.1 incluye un protocolo de caching y un modelo de expiración para ese caching, que indica si la expiración debe ser explícita, implícita, etc. CGI es un protocolo mucho más simple. Describe la forma en que un cliente y un programa corriendo en un servidor web se entienden. Es ortogonal a HTTP, puesto que sólo delimita la interacción entre el servidor web y el programa. La comunicación utiliza:
4. Variables de ambiente
Las siguientes variables de ambiente siempre están presentes:
Dependiendo del requerimiento, estarán presentes también:
Si se usa comunicación vía PATHS (ej.: algo.cgi/dir1/dir2/recurso):
Si se usa método GET:
Si se usa método POST:
Para identificar al usuario remoto:
Para autentificación:
5. Entrada estándar
Se usa si el método es POST. En tal caso se lee la entrada estándar. No se puede re-leer. 6. Salida estándar
Debe comenzar con "Content-type: text/html" y una línea en blanco si la configuración del servidor es esa. Normalmente si un script escribe a su salida de error el servidor asume que es un error, pero esto no forma parte del estándar CGI, sino que está motivado por razones de seguridad.
|