View
169
Download
2
Category
Preview:
Citation preview
AISI
Máster Servicios Web
Internet Servicios
Master en Servicios Web Servidores WEBUniversidad de Alicante
Tecnologías Web - HTTP
Basada en el modelo Cliente-ServidorComunicación basada en TCP/IPElementos;
● 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,...)
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
ProtocolocomunicaciónTCP/IPS
OH
W NIC
Red de Comunicaciones
Navegador
TCP/IP
SO
HWNIC
Cliente Servidor
IDE
FS
VGA
I/O
HTTP
MIME
Gestión Pet-Resp
HDPORT
TECLADO
PANTALLA
HTTP
TCP/IP
TRAMAS
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
Modelo HTTP Básico
Servidor
HTML
Cliente ligeroNavegador
WebServidor
web
InternetTCP/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-AliveUser-Agent: Generic
[línea en blanco]
Nombre=Juan&eMail=gil@dtic.ua.es
POST /cgi/miAplicacion.cgi HTTP/1.0
Cabecera
Cuerpo
Línea
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
MIME• Mime se utiliza para enviar datos no textuales (imágenes, videos,
sonido,…) como textual
MIMEContent-Type: image/pjpeg; name="Dibujo.JPG"Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAMAAwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDk2t7crM/m+QhjL28e4SFvnC7WIxggbjkgdOnzCoWcOkeI1QquCRnLHJOTk9eccYHA75JdbTy2d1FcwPtmicSRtgHawORwfcVFge/514D9m3yyk7dNO9+l/Tdvr5H7RCM1r+vy7H//2Q==
----8CFDA75A284D5A8033E016C87CBCE897--
.
8 bits8 bits 8 bits8 bits 8 bits8 bits
6 bits6 bits 6 bits6 bits 6 bits6 bits 6 bits6 bits
1 carácter1 carácter 1 carácter1 carácter 1 carácter1 carácter 1 carácter1 carácter
A-Z→26 caracteresa-z →26 caracteres0-9 →10 caracteres+ / →2 caracteres
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
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 esMétodo recurso VERSION_HTTPCabecera generalesCabecera de peticiónCabecera de entidadLínea en blancoDatos de entidad
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• La estructura de la respuesta es
VERSION_HTTP código_respuesta descripciónCabeceras generalesCabecera de respuesta Cabecera de entidadLínea en blancoRecurso de entidad(página HTML/JSON)
Master en Servicios Web Servidores WEBUniversidad de Alicante
telnet www.dtic.ua.es 80Trying www.dtic.ua.es...Connected to www.dtic.ua.esEscape character is '^]'.GET /index.html HTTP/1.0
+HTTP/1.1 200 OKDate: Thu, 06 Nov 2014 17:59:15 GMTServer: Apache/2.0.40 (Red Hat Linux)Last-Modified: Wed, 03 Nov 2004 13:01:02 GMTETag: "378029-902-3bd83f80"Accept-Ranges: bytesContent-Length: 256Connection: closeContent-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 estadoCabecera
Contenido
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Métodos: – GET, – HEAD, – POST, – PUT, – DELETE, – TRACE, OPTIONS, CONNECT– LINK, UNLINK, PATCH
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• POST: Sí entity-body y debería incluir una cabecera content-type
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
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.
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".
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP• Servicios RestFull: CRUD (Create Read Update Delete)• Content-Type: application/json;charset=utf-8
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
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
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Petición:– Accept:type/subtype– Accept-Charset: charset– Accept-Encondig:tipos (gzip)– Host: nombre:port– User-agent:navegador– Authorization: scheme credentials– Cookie: name=value
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• Respuesta:– Location:URL– Server:string– Set-cookie: name=value options– WWW-authenticate: scheme realm
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• De entidad (cont):– Content-type:type/subtype;charset– Expires:date– Last-Modified:date
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
• De entidad (cont):– Content-type:type/subtype;charset– Expires:date– Last-Modified:date
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
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
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/)
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+uKk=”; pin-sha256=”2RvDQRJ3jUJaIvGRBMATMgSMrTecA3HXQXeUgRFKIcc=”; max-age=5184000; includeSubDomain
– Cada pin-* identifica un certificado de la cadena. Son hashes de la llave pública
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.
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP - Respuestas 1xx Mensajes de información
100 Continua101 Cambio de protocolo2xx Operación exitosa 200 Ok201 Creado202 Aceptado203 Información de otro srv204 Sin Contenido205 Contenido y reiniciar página206 Contenido parcial3xx Redirección hacia otro URL 300 Múlpiples posibilidades301 Mudado permanentemente302 Encontrado303 Véa otros304 No modificado305 Utilice un proxy307 Redirección temporal
Códigos de respuesta HTTP
4xx Error por parte del cliente 400 Solicitud incorrecta401 No autorizado402 Pago requerido403 Prohibido404 No encontrado405 Método no permitido406 No aceptable407 Proxy requerido408 Tiempo de espera agotado409 Conflicto410 No mpas disponible411 Requiere longitud412 Falló precondición413 Entidad de solicitud demasiado larga414 URI de solicitud demasiado largo415 Tipo de medio no soportado416 Rango solicitado no disponible417 Falló expectativa5xx Error por parte del servidor500 Error interno501 No implementado502 Pasarela incorrecta503 Servicio no disponible504 Tiempo de espera de la pasarela agotado505 Versión de HTTP no soportada
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
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)
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.
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.
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)
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.
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?)
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.
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.
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.
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.
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).
Master en Servicios Web Servidores WEBUniversidad de Alicante
Variables de entornoNombre 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
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/
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
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
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP• HTTP 2.0
– Servicio 'server push'
Master en Servicios Web Servidores WEBUniversidad de Alicante
HTTP• Lecturas acerca de HTTP 2.0
– https://tools.ietf.org/html/rfc7540
– https://www.nginx.com/wp-content/uploads/2015/09/NGINX_HTTP2_White_Paper_v4.pdf
– https://http2.github.io/faq/
– https://blog.cloudflare.com/http-2-for-web-developers/
AISI
Máster Servicios Web
Internet Servicios
Recommended