Presentación de la clase sobre el protocolo HTTP de la asignatura Servidores Web del Máster Universitario en Desarrollo de Aplicaciones y Servicios Web.
2. Master en Servicios Web Servidores WEBUniversidad de Alicante
Tecnologías Web - HTTP
Basada en el modelo Cliente-Servidor
Comunicación basada en TCP/IP
Elementos;
●
Protocolo de aplicación: HTTP (TCP,
80/443)
●
DNS (como mínimo en el cliente)
●
Cliente: accede a recurso remoto
●
Su HW + S.O. + App cliente (navegador)
●
Servidor: posee el recurso
●
Su HW + S.O. + App servidora
(Apache,...)
3. Master en Servicios Web Servidores WEBUniversidad de Alicante
Arquitectura
Servidor WEB
Prot. Solic-Resp (HTTP)
Repr. Ext. Datos (MIME)
Gestión de petición-
respuesta
Protocolo
comunicación
TCP/IP
SOHW
NIC
Red de Comunicaciones
Navegador
TCP/IP
SOHW
NIC
Cliente Servidor
IDE
FS
VGA
I/O
HTTP
MIME
Gestión Pet-Resp
HDPORT
TECLADO
PANTALLA
HTTP
TCP/IP
TRAMAS
4. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Es un protocolo de transporte para hipertexto
• Petición / Respuesta
• Basado en texto
• Orientado a conexión
• Sin sesión
• URI:
esquema://servidor[:puerto]/recurso
5. Master en Servicios Web Servidores WEBUniversidad de Alicante
Modelo HTTP Básico
Servidor
HTML
Cliente ligero
Navegador
Web
Servidor
web
Internet
TCP/IP
Cliente
HTTP
Pág.
HTML
JPEGPág.
HTML
GET /index.html HTTP/1.0
Método Recurso Versión Cabecera
TEXTO
(MIME)
Principales métodos HTTP
Solicitar únicamente la cabeceraHEAD
Envía datos al servidorPOST
Solicitar contenidoGET
Envía contenido para almacénPUT
Ejemplo de solicitud HTTP
Accept: */*
Connection: Keep-Alive
User-Agent: Generic
[línea en blanco]
Nombre=Juan&eMail=gil@dtic.ua.es
POST /cgi/miAplicacion.cgi HTTP/1.0
Cabecera
Cuerpo
Línea
6. Tecnología Web
Master en Servicios Web Servidores WebUniversidad de Alicante
HTTP
• Cada recurso web se transporta en una conexión
distinta
Servidor Web Navegador
solicitud index.html
index.html
solicitud fondo.gif
fondo.gif
solicitud menu.jpg
menu.jpg
8. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Es un protocolo de transporte para hipertexto
• Petición / Respuesta
• Basado en texto
• Orientado a conexión
• Sin sesión
9. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Sobre HTTP hay que distinguir qué escribe el
cliente y qué servidor
• La estructura de la petición es
Método recurso
VERSION_HTTP
Cabecera generales
Cabecera de petición
Cabecera de entidad
Línea en blanco
Datos de entidad
10. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• La estructura de la respuesta es
VERSION_HTTP código_respuesta descripción
Cabeceras generales
Cabecera de respuesta
Cabecera de entidad
Línea en blanco
Recurso de entidad(página HTML/JSON)
11. Master en Servicios Web Servidores WEBUniversidad de Alicante
telnet www.dtic.ua.es 80
Trying www.dtic.ua.es...
Connected to www.dtic.ua.es
Escape character is '^]'.
GET /index.html HTTP/1.0
+HTTP/1.1 200 OK
Date: Thu, 06 Nov 2014 17:59:15 GMT
Server: Apache/2.0.40 (Red Hat Linux)
Last-Modified: Wed, 03 Nov 2004 13:01:02 GMT
ETag: "378029-902-3bd83f80"
Accept-Ranges: bytes
Content-Length: 256
Connection: close
Content-Type: text/html; charset=ISO-8859-1
<html>
<head>
<title>Tecnología Informática y Computación</title>
</head>
<body background="fondo.gif">
Hola a Todos<br>
<img src="menu.jpg">
</body>
</html>
Se ha perdido la conexión con el host.
C:> _
Línea de estado
Cabecera
Contenido
12. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Métodos:
– GET,
– HEAD,
– POST,
– PUT,
– DELETE,
– TRACE, OPTIONS, CONNECT
– LINK, UNLINK, PATCH
13. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• GET: Petición de documento
• HEAD: Consulta de información (no entity-body)
– Las cabeceras = a las obtenidas con GET
– Usos:
●
Modificación tiempos (por caché)
●
Conocer el tamaño de documentos, tipo,...
●
Tipo de servidor
14. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• POST: Sí entity-body y debería incluir una
cabecera content-type
15. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• PUT:Almacena entity-body en la URI indicada
• DELETE: Borra
• TRACE: permite a los programadores ver cómo se
modifica el mensaje del cliente a través de
servidores proxy.
• , OPTIONS, CONNECT
– LINK, UNLINK, PATCH
16. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• PUT:Almacena entity-body en la URI indicada
• PATCH: como put pero entity-body contiene solo las
diferencias con el recurso
• DELETE: Borra
• TRACE: permite a los programadores ver cómo se
modifica el mensaje del cliente a través de servidores
proxy.
• LINK: establece relaciones entre recursos (sin entity-
body, por lo que no se generan nuevos). La respuesta no
es cacheable.
• UNLINK: quita las relaciones.
17. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• OPTIONS Obtener información sobre qué métodos HTTP
están activos en el servidor web.
• Además se utiliza, por ejemplo, por algunas API REST que
requieren una solicitud OPTIONS, CORS requiere
solicitudes previas al vuelo, y así sucesivamente.
• Por lo tanto, definitivamente hay escenarios en los que
se debe habilitar OPTIONS, pero el valor predeterminado
debe estar "desactivado a menos que sea necesario".
18. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Servicios RestFull: CRUD (Create Read Update Delete)
• Content-Type: application/json;charset=utf-8
19. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Hay 4 tipos de cabeceras:
– Generales: para mostrar información general
como fechas, y son tanto para clientes
(petición) como servidores (respuesta)
– Cabeceras de petición: sobre configuración del
cliente y formatos deseados
20. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Los otros 2:
– De Respuesta: describe configuraciones del
servidor e información acerca de la URI
– De entidad: describe formatos de los datos y
recursos. Usadas tanto por cliente como por
servidor
21. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Generales:
– Cache-control: no-cache|max-age=sec
– Date:formato
– Connection: close|keep-alive
– Pragma:no-cache
– Transfer-Encoding:chunked
– Upgrade:HTTP/2
23. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Respuesta:
– Location:URL
– Server:string
– Set-cookie: name=value options
– WWW-authenticate: scheme realm
24. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• De entidad (cont):
– Content-type:type/subtype;charset
– Expires:date
– Last-Modified:date
25. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• De entidad:
– Allow:methods (en respuesta con 405)
– Content-encoding: encoding (gzip)
– Content-Language:languages
– Content-length:n
– Content-location: url
– Content-MD5:md5digest
26. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• De entidad (cont):
– Content-type:type/subtype;charset
– Expires:date
– Last-Modified:date
27. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Seguridad con cabeceras (I)
– X-Frame-Options: proteger contra los ataques de
clickjacking. Sirve para prevenir que la página pueda
ser abierta en un iframe. Los valores que puede
tomar
●
DENY: prohíbe cualquier intento
●
SAMEORIGIN: permite usar el contenido sólo
desde el propio dominio
●
ALLOW FROM: permite usar el contenido en las
URLs indicadas
28. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Seguridad con cabeceras (II)
– X-Content-Type-Options: evitar que se cargue un
archivo JS ó CSS con un MIME-Type diferente al
declarado (nosniff)
– X-XSS-Protection: habilitar o no el filtro anti XSS de
los navegadores Los valores que podemos establecer
son:
●
X-XSS-Protection: 1; mode=block Activado
●
X-XSS-Protection: 0; mode=block Desactivado
29. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Seguridad con cabeceras (III)
– Strict-Transport-Security (HSTS): un servidor web declara a los
navegadores compatibles que deben interactuar con ellos
solamente mediante conexiones HTTP seguras (TLS/SSL)
Previene la extracción de SSL en ataques man-in-the-middle
– Content-Security-Policy: evitar cross-site scripting
(XSS), clickjacking y otros ataques de inyección de
código. Permite definir el bloqueo a la carga de
scripts, CSS e imágenes de dominios externos
(http://cspisawesome.com/)
30. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Seguridad con cabeceras (IV)
– Public-Key-Pins: el servidor le indica al navegador qué
certificado debe esperar y que rechace cualquier otro. Ej:
public-Key-Pins: pin-
sha256=”eZ2mT3Q9rS+P5WO3beF1Du9Jojk2oaO3eM0BYjl+uK
k=”; pin-
sha256=”2RvDQRJ3jUJaIvGRBMATMgSMrTecA3HXQXeUgRFKI
cc=”; max-age=5184000; includeSubDomain
– Cada pin-* identifica un certificado de la cadena. Son hashes
de la llave pública
31. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Otras importantes, sobre todo, esquema CORS:
– Invocaciones de XMLHttpRequest API, servicios Rest,
– carga de recursos, imágenes, css, etc
– Texturas WebGL.
– Imágenes dibujadas en patrones usando drawImage.
32. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• CORS (solicitud HTTP de origen cruzado)
• Solicitudes simples:
– Origin
– Access-Control-Allow-Origin: <origin> | *
●
Solicitudes Verificadas
– Access-Control-Allow-Methods: <method>[, <method>]*
– Access-Control-Allow-Headers: <field-name>[, <field-name>]*
●
Solicitudes con credenciales
– Access-Control-Allow-Credentials: true | false
34. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP - Respuestas
1xx Mensajes de información
100 Continua
101 Cambio de protocolo
2xx Operación exitosa
200 Ok
201 Creado
202 Aceptado
203 Información de otro srv
204 Sin Contenido
205 Contenido y reiniciar página
206 Contenido parcial
3xx Redirección hacia otro URL
300 Múlpiples posibilidades
301 Mudado permanentemente
302 Encontrado
303 Véa otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
Códigos de respuesta HTTP
4xx Error por parte del cliente
400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
405 Método no permitido
406 No aceptable
407 Proxy requerido
408 Tiempo de espera agotado
409 Conflicto
410 No mpas disponible
411 Requiere longitud
412 Falló precondición
413 Entidad de solicitud demasiado larga
414 URI de solicitud demasiado largo
415 Tipo de medio no soportado
416 Rango solicitado no disponible
417 Falló expectativa
5xx Error por parte del servidor
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada
35. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 10X: Respuestas informativas
– 100 – Continue El navegador puede continuar realizando su petición (se utiliza para indicar
que la primera parte de la petición del navegador se ha recibido correctamente)
– 101 - Switching Protocols El servidor acepta el cambio de protocolo propuesto por el
navegador (puede ser por ejemplo un cambio de HTTP 1.0 a HTTP 1.1)
– 102 - Processing (WebDAV - RFC 2518) El servidor está procesando la petición del navegador
pero todavía no ha terminado (esto evita que el navegador piense que la petición se ha
perdido cuando no recibe ninguna respuesta)
– 103 – Checkpoint Se va a reanudar una petición POST o PUT que fue abortada previamente
36. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 20X: Respuestas correctas (1)
– 200 – OK Respuesta estándar para peticiones correctas.
– 201 – Created La petición ha sido completada y ha resultado en la creación de un
nuevo recurso.
– 202 – Accepted La petición ha sido aceptada para procesamiento, pero este no ha
sido completado. La petición eventualmente pudiere no ser satisfecha, ya que
podría ser no permitida o prohibida cuando el procesamiento tenga lugar.
– 203 - Non-Authoritative Information (desde HTTP/1.1) La petición se ha
completado con éxito, pero su contenido no se ha obtenido de la fuente
originalmente solicitada sino de otro servidor.
– 204 - No Content La petición se ha completado con éxito pero su respuesta no
tiene ningún contenido (la respuesta sí que puede incluir información en sus
cabeceras HTTP)
37. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 20X: Respuestas correctas (2)
– 205 - Reset Content La petición se ha completado con éxito, pero su respuesta no tiene
contenidos y además, el navegador tiene que inicializar la página desde la que se realizó la
petición (este código es útil por ejemplo para páginas con formularios cuyo contenido debe
borrarse después de que el usuario lo envíe).
– 206 - Partial Content La petición servirá parcialmente el contenido solicitado. Esta
característica es utilizada por herramientas de descarga como wget para continuar la
transferencia de descargas anteriormente interrumpidas, o para dividir una descarga y
procesar las partes simultáneamente.
– 207 - Multi-Status (Multi-Status, WebDAV) El cuerpo del mensaje que sigue es un mensaje
XML y puede contener algún número de códigos de respuesta separados, dependiendo de
cuántas subpeticiones sean hechas.
– 208 - Already Reported (WebDAV) El listado de elementos DAV ya se notificó previamente,
por lo que no se van a volver a listar.
38. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 30X: Redirecciones: Respuestas con más
acciones(1) , <5
• Si el método != de GET o HEAD, con interacción
del usuario
– 300 - Multiple Choices Indica opciones múltiples para el URI que el cliente podría seguir. Esto
podría ser utilizado, por ejemplo, para presentar distintas opciones de formato para vídeo,
listar archivos con distintas extensiones o word sense desambiguación.
– 301 - Moved Permanently
– 302 – Found Se usa como 303, no como indica estándar (la frase descriptiva original fue
"Moved Temporarily"), pero los navegadores populares lo implementaron como 303 See
Other.
– 303 - See Other (desde HTTP/1.1) La respuesta a la petición puede ser encontrada bajo otra
URI utilizando el método GET.
39. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 30X: Redirecciones (2)
– 304 - Not Modified Indica que la petición a la URL no ha sido modificada desde que fue requerida por
última vez. Típicamente, el cliente HTTP provee un encabezado como If-Modified-Since para indicar una
fecha y hora contra la cual el servidor pueda comparar. El uso de este encabezado ahorra ancho de banda
y reprocesamiento tanto del servidor como del cliente.
– 305 - Use Proxy (desde HTTP/1.1) Muchos clientes HTTP (como Mozilla3 e Internet Explorer) no se apegan
al estándar al procesar respuestas con este código, principalmente por motivos de seguridad.
– 306 - Switch Proxy Este código se utilizaba en las versiones antiguas de HTTP pero ya no se usa (aunque
está reservado para usos futuros).2
– 307 - Temporary Redirect (desde HTTP/1.1) Se trata de una redirección que debería haber sido hecha con
otra URI, sin embargo aún puede ser procesada con la URI proporcionada. En contraste con el código 303,
el método de la petición no debería ser cambiado cuando el cliente repita la solicitud. Por ejemplo, una
solicitud POST tiene que ser repetida utilizando otra petición POST.
– 308 - Permanent Redirect El recurso solicitado por el navegador se encuentra en otro lugar y este cambio
es permanente. A diferencia del código 301, no se permite cambiar el método HTTP para la nueva petición
(así por ejemplo, si envías un formulario a un recurso que ha cambiado de lugar, todo seguirá funcionando
bien)
40. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 40X: Respuestas de error (1)
• Para casos en los cuales el cliente parece haber
errado la petición
– 400 - Bad Request La solicitud contiene sintaxis errónea y no debería repetirse.
– 401 – Unauthorized Similar al 403 Forbidden, pero específicamente para su uso cuando la
autentificación es posible pero ha fallado o aún no ha sido provista. Vea autenticación HTTP
básica y Digest access authentication. Implica el uso de cabecera WWW-Authnticate.
– 402 - Payment Required La intención original era que este código pudiese ser usado como
parte de alguna forma o esquema de Dinero electrónico o micropagos, pero eso no sucedió, y
este código nunca se utilizó.
– 403 – Forbidden La solicitud fue legal, pero el servidor rehúsa responderla dado que el cliente
no tiene los privilegios para hacerla. En contraste a un 401, la autenticación no es importante.
41. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 40X: Respuestas de error (2)
– 404 - Not Found
– 405 - Method Not Allowed
– 406 - Not Acceptable El servidor no es capaz de devolver los datos en ninguno de los
formatos aceptados por el cliente, indicados por éste en la cabecera "Accept" de la petición.
– 407 - Proxy Authentication Required El navegador debe identificarse ante un proxy
– 408 - Request Timeout
– 409 – Conflict Indica que la solicitud no pudo ser procesada debido a un conflicto con el
estado actual del recurso que esta identifica.
– 410 – Gone Indica que el recurso solicitado ya no está disponible y no lo estará de nuevo.
Debería ser utilizado cuando un recurso ha sido quitado de forma permanente (si no es así,
¿qué código sería?)
42. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 40X: Respuestas de error (3)
– 411 - Length Required El servidor rechaza la petición del navegador porque no incluye la
cabecera Content-Length adecuada.2
– 412 - Precondition Failed El servidor no es capaz de cumplir con algunas de las condiciones
impuestas por el navegador en su petición.
– 413 - Request Entity Too Large La petición del navegador es demasiado grande y por ese
motivo el servidor no la procesa
– 414 - Request-URI Too Long La URI de la petición del navegador es demasiado grande y por
ese motivo el servidor no la procesa.
– 415 - Unsupported Media Type La petición del navegador tiene un formato que no entiende
el servidor y por eso no se procesa.
– 416 - Requested Range Not Satisfiable El cliente ha preguntado por una parte de un archivo,
pero el servidor no puede proporcionar esa parte, por ejemplo, si el cliente preguntó por una
parte de un archivo que está más allá de los límites del fin del archivo.
43. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 40X: Respuestas de error (4)
– 417 - Expectation Failed La petición del navegador no se procesa porque el servidor no es
capaz de cumplir con los requerimientos de la cabecera Expect de la petición.
– 422 - Unprocessable Entity (WebDAV - RFC 4918) La solicitud está bien formada pero fue
imposible seguirla debido a errores semánticos en el contenido.
– 423 - Locked (WebDAV - RFC 4918) El recurso al que se está teniendo acceso está bloqueado.
– 424 - Failed Dependency (WebDAV) (RFC 4918) La solicitud falló debido a uno fallo en la
solicitud previa.
– 426 - Upgrade Required (RFC 7231) El cliente debería cambiarse a TLS/1.0.
– 428 - Precondition Required El servidor requiere que la petición del navegador sea
condicional. Este tipo de peticiones evitan los problemas producidos al modificar con PUT un
recurso que ha sido modificado por otra parte.
44. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 40X: Respuestas de error (5)
– 429 - Too Many Requests Hay muchas conexiones desde esta dirección de internet. Se utiliza
sobre todo para forzar los límites de consumo de recursos de las APIs
– 431 Request Header Fileds Too Large El servidor no puede procesar la petición porque una de
las cabeceras de la petición es demasiado grande. Este error también se produce cuando la
suma del tamaño de todas las peticiones es demasiado grande.2
– 449 Una extensión de Microsoft: La petición debería ser reintentada después de hacer la
acción apropiada.
– 451 - Unavailable for Legal Reasons El contenido ha sido eliminado como consecuencia de
una orden judicial o sentencia emitida por un tribunal.
45. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 50X: Respuestas de error en SERVIDOR
– 500 - Internal Server Error Es un código comúnmente emitido por aplicaciones empotradas en
servidores web
– 501 - Not Implemented El servidor no soporta alguna funcionalidad necesaria para responder
a la solicitud del navegador (como por ejemplo el método utilizado para la petición).
– 502 - Bad Gateway El servidor está actuando de proxy o gateway y ha recibido una respuesta
inválida del otro servidor, por lo que no puede responder adecuadamente a la petición del
navegador.
– 503 - Service Unavailable El servidor no puede responder a la petición del navegador porque
está congestionado o está realizando tareas de mantenimiento.
– 504 - Gateway Timeout El servidor está actuando de proxy o gateway y no ha recibido a
tiempo una respuesta del otro servidor, por lo que no puede responder adecuadamente a la
petición del navegador.
46. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• 50X: error en SERVIDOR (2)
– 505 - HTTP Version Not Supported El servidor no soporta o no quiere soportar la versión del protocolo
HTTP utilizada en la petición del navegador.
– 506 - Variant Also Negotiates (RFC 2295) El servidor ha detectado una referencia circular al procesar la
parte de la negociación del contenido de la petición.
– 507 - Insufficient Storage (WebDAV - RFC 4918) El servidor no puede crear o modificar el recurso solicitado
porque no hay suficiente espacio de almacenamiento libre.
– 508 - Loop Detected (WebDAV) La petición no se puede procesar porque el servidor ha encontrado un
bucle infinito al intentar procesarla.
– 509 - Bandwidth Limit Exceeded Límite de ancho de banda excedido. Este código de estatus, a pesar de ser
utilizado por muchos servidores, no es oficial.
– 510 - Not Extended (RFC 2774) La petición del navegador debe añadir más extensiones para que el servidor
pueda procesarla.
– 511 - Network Authentication Required El navegador debe autenticarse para poder realizar peticiones (se
utiliza por ejemplo con los portales cautivos que te obligan a autenticarte antes de empezar a navegar).
47. Master en Servicios Web Servidores WEBUniversidad de Alicante
Variables de entorno
Nombre Descripción
REQUEST_METHOD Comando HTTP utilizado para activar la aplicació n. Puede tomar los valores GET, POST, HEAD.
QUERY_STRING Cadena con la informació n codificada que el cliente pasa a la aplicació n CGI. Só lo se utiliza en el caso de
accesos GET, ya que con POST toma un valor nulo.
CONTENT_TYPE Tipo de datos que el cliente envía a la aplicació n CGI. Normalmente, vale application/x-www-form-urlencoded, con
las reglas de codificació n antes descritas. Só lo se utiliza para los accesos POST.
CONTENT_LENGTH Longitud de los datos que el cliente envía a la aplicació n CGI. De esta forma, la aplicació n sabe cuanta
informació n debe leer de la entrada estándar. Só lo se utiliza para los accesos POST.
AUTH_TYPE Tipo de autentificació n HTTP empleada (basic, kerberos,...). En caso de no utilizarse, toma un valor nulo.
REMOTE_ADDR Direcció n IP del agente que envía la petició n. En caso de acceso a través de proxy, no aparece la direcció n del
cliente, sino la del propio proxy,
REMOTE_HOST Direcció n DNS del cliente que envía la petició n. En caso de accesos a través de un proxy, no aparece la
direcció n del cliente, sino la del propio proxy,
REMOTE_USER Nombre del usuario que realiza la petició n, en caso de que AUTH_TYPE sea basic.
PATH Directorios por defecto de búsqueda de aplicaciones. Tiene el significado habitual dentro del sistema operativo.
PATH_INFO Campo path-info de la URL de acceso a la aplicació n CGI. Toma un valor nulo en caso de no utilizarse.
PATH_TRANSLATED Directorio local resultante de sumar el directorio en donde residen los ficheros del servidor y PATH_INFO.
SCRIPT_NAME URL local que identifica al programa CGI (p.e. /cgi-bin/prog.exe).
SERVER_NAME Nombre DNS o direcció n IP del servidor HTTP.
SERVER_PORT Puerto TCP del servidor en que se recibe la petició n.
SERVER_SOFTWARE Tipo y versió n del servidor HTTP que ‘lanza’ la aplicació n CGI.
SERVER_PROTOCOL Versió n del protocolo HTTP que utiliza el servidor. Casi siempre es la 1.0.
GATEWAY_INTERFACE Versió n de protocolo que utiliza el servidor para dialogar con el programa. Normalmente es CGI/1.1
48. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• HTTP 2.0
– No modifica la semántica → Son compatibles
– Multiplexación: enviar y recibir varios mensajes al mismo tiempo optimizando la
comunicación
– Servicio 'server push'
– Compresión de cabeceras para transmitir menos información y en formato binario
– Priorización de flujos
– https://http2.akamai.com/demo
– https://github.com/bagder/http2-explained/tree/master/es o
https://bagder.gitbooks.io/http2-explained/es/
– https://hpbn.co/http2/
49. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Binario: Pueden enviarse distintos tipos de trama, y todos ellos comienzan de la misma
manera:
Tipo, Tamaño, Flags, Identificador de Flujo y la carga útil de la trama.
• Existen 10 tipos de tramas definidos en la especificación http2 y los dos tipos
fundamentales que se mapean con las funcionalidades de HTTP/1.1 son DATA y
HEADERS
50. Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Flujo multiplexado a través del identificador de flujo que asocia cada trama aun flujo
(asociación lógica)
• Una conexión HTTP/2 puede tener múltiples flujos abiertos y concurrentes pudiendo ser
cerrados por cualquiera (cliente o servidor)
• El orden de los flujos es significativo y paquete de distintos flujos se mezclan en la misma
conexión
• Los flujos tienen pesos para establecer prioridades