Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Protocol HTTP

200 views

Published on

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.

Published in: Internet
  • Be the first to comment

Protocol HTTP

  1. 1. AISI Máster Servicios Web Internet Servicios
  2. 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. 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. 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. 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. 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
  7. 7. Master en Servicios Web Servidores WEBUniversidad de Alicante MIME • Mime se utiliza para enviar datos no textuales (imágenes, videos, sonido,…) como textual MIME Content-Type: image/pjpeg; name="Dibujo.JPG" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/ 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAMAAwDASIAAhEBAxEB/8QA HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEB AQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC AxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRom JygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDk2t7crM/m +QhjL28e4SFvnC7WIxggbjkgdOnzCoWcOkeI1QquCRnLHJOTk9eccYHA75Jd bTy2d1FcwPtmicSRtgHawORwfcVFge/514D9m3yyk7dNO9+l/Tdvr5H7RCM1 r+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 caracteres a-z →26 caracteres 0-9 →10 caracteres + / →2 caracteres
  8. 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. 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. 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. 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. 12. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP • Métodos: – GET, – HEAD, – POST, – PUT, – DELETE, – TRACE, OPTIONS, CONNECT – LINK, UNLINK, PATCH
  13. 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. 14. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP • POST: Sí entity-body y debería incluir una cabecera content-type
  15. 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. 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. 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. 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. 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. 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. 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
  22. 22. 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
  23. 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. 24. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP • De entidad (cont): – Content-type:type/subtype;charset – Expires:date – Last-Modified:date
  25. 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. 26. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP • De entidad (cont): – Content-type:type/subtype;charset – Expires:date – Last-Modified:date
  27. 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. 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. 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. 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. 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. 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
  33. 33. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  51. 51. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP
  52. 52. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP • HTTP 2.0 – Servicio 'server push'
  53. 53. 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/
  54. 54. AISI Máster Servicios Web Internet Servicios

×