SlideShare una empresa de Scribd logo
1 de 54
AISI
Máster Servicios Web
Internet
Servicios
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,...)
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
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 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
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
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
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 es
Método recurso 
VERSION_HTTP
Cabecera generales
Cabecera de petición
Cabecera de entidad
Línea en blanco
Datos de entidad
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)
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
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+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
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 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
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 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
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

Más contenido relacionado

La actualidad más candente

Ftp server linux
Ftp server  linuxFtp server  linux
Ftp server linuxmisony25
 
Instalación de un servicio de proxy, Squid
Instalación de un servicio de proxy, SquidInstalación de un servicio de proxy, Squid
Instalación de un servicio de proxy, SquidJavichu Moya
 
Filtrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidJorge Medina
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High AvailabilityLuis Toscano
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompIrontec
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpdruna
 
Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1pacvslideshare
 
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
Instalacion del  servidor  proxy para conectar una red lan a una pc con salid...Instalacion del  servidor  proxy para conectar una red lan a una pc con salid...
Instalacion del servidor proxy para conectar una red lan a una pc con salid...Fragatacante
 
Servicio FTP en Ubuntu
Servicio FTP en UbuntuServicio FTP en Ubuntu
Servicio FTP en UbuntuSergio Santos
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para TodosMariano Iglesias
 
AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016SpanishPASSVC
 

La actualidad más candente (18)

Ftp server linux
Ftp server  linuxFtp server  linux
Ftp server linux
 
Proxy
ProxyProxy
Proxy
 
Instalación de un servicio de proxy, Squid
Instalación de un servicio de proxy, SquidInstalación de un servicio de proxy, Squid
Instalación de un servicio de proxy, Squid
 
Filtrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y Squid
 
Curso Squid avanzado
Curso Squid avanzadoCurso Squid avanzado
Curso Squid avanzado
 
Tuning Lamp
Tuning LampTuning Lamp
Tuning Lamp
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High Availability
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
 
Tutorial Instalacion Openvpn
Tutorial Instalacion OpenvpnTutorial Instalacion Openvpn
Tutorial Instalacion Openvpn
 
Varnish http cache
Varnish http cacheVarnish http cache
Varnish http cache
 
Apache ha muerto, Viva Lighttpd
Apache ha muerto, Viva LighttpdApache ha muerto, Viva Lighttpd
Apache ha muerto, Viva Lighttpd
 
Manual
ManualManual
Manual
 
Rendimiento extremo en php
Rendimiento extremo en phpRendimiento extremo en php
Rendimiento extremo en php
 
Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1Servidores web de altas prestaciones. Tema 1
Servidores web de altas prestaciones. Tema 1
 
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
Instalacion del  servidor  proxy para conectar una red lan a una pc con salid...Instalacion del  servidor  proxy para conectar una red lan a una pc con salid...
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
 
Servicio FTP en Ubuntu
Servicio FTP en UbuntuServicio FTP en Ubuntu
Servicio FTP en Ubuntu
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para Todos
 
AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016AlwaysOn en SQL Server 2016
AlwaysOn en SQL Server 2016
 

Similar a Protocol HTTP

Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxLuisTenorio42
 
Introducció a les Aplicació Web
Introducció a les Aplicació WebIntroducció a les Aplicació Web
Introducció a les Aplicació WebCarlesMG57
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebTensor
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)Tensor
 
Hypertext transfert protocol
Hypertext transfert protocolHypertext transfert protocol
Hypertext transfert protocolOscar Eduardo
 
Fundamentos de Internet
Fundamentos de InternetFundamentos de Internet
Fundamentos de InternetLigia78
 
1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.ppt1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.pptJaime Ramos
 
Introducción a la programación en internet
Introducción a la programación en internetIntroducción a la programación en internet
Introducción a la programación en internetcristinaig123
 
Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...
Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...
Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...Didier Granados
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web ServicesJose Selman
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Javaalvaro alcocer sotil
 

Similar a Protocol HTTP (20)

Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
 
Introducció a les Aplicació Web
Introducció a les Aplicació WebIntroducció a les Aplicació Web
Introducció a les Aplicació Web
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)
 
Hypertext transfert protocol
Hypertext transfert protocolHypertext transfert protocol
Hypertext transfert protocol
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
 
Fundamentos de Internet
Fundamentos de InternetFundamentos de Internet
Fundamentos de Internet
 
sesion01-traspas.pdf
sesion01-traspas.pdfsesion01-traspas.pdf
sesion01-traspas.pdf
 
1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.ppt1.4 tecnologiasWeb.ppt
1.4 tecnologiasWeb.ppt
 
SEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptxSEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptx
 
Seguridad en web
Seguridad en webSeguridad en web
Seguridad en web
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Servicios web
Servicios webServicios web
Servicios web
 
Introducción a la programación en internet
Introducción a la programación en internetIntroducción a la programación en internet
Introducción a la programación en internet
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
 
Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...
Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...
Desarrollo de Aplicaciones Web II - Sesión 02 - Conceptos Generales e Introdu...
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 
Servidor web
Servidor webServidor web
Servidor web
 

Más de Juan Antonio Gil Martínez-Abarca (11)

03 asor gestión de usuarios y ldap
03 asor   gestión de usuarios y ldap03 asor   gestión de usuarios y ldap
03 asor gestión de usuarios y ldap
 
06 airc firewalls
06 airc   firewalls06 airc   firewalls
06 airc firewalls
 
08 airc hackingbuscadores - mod
08 airc   hackingbuscadores - mod08 airc   hackingbuscadores - mod
08 airc hackingbuscadores - mod
 
Aisi 1415 06 correo
Aisi 1415 06 correoAisi 1415 06 correo
Aisi 1415 06 correo
 
05 airc dns
05 airc   dns05 airc   dns
05 airc dns
 
04 girc servicio dhcp
04 girc   servicio dhcp 04 girc   servicio dhcp
04 girc servicio dhcp
 
Snortpracticas 2006
Snortpracticas 2006Snortpracticas 2006
Snortpracticas 2006
 
Snort 2006
Snort 2006Snort 2006
Snort 2006
 
Tripwire 2006
Tripwire 2006Tripwire 2006
Tripwire 2006
 
Honeypotsprácticas2006
Honeypotsprácticas2006Honeypotsprácticas2006
Honeypotsprácticas2006
 
Honeypots2006 2007
Honeypots2006 2007Honeypots2006 2007
Honeypots2006 2007
 

Último

diapositivas tiktok.KAY (1) (1) (1).pptx
diapositivas tiktok.KAY (1) (1) (1).pptxdiapositivas tiktok.KAY (1) (1) (1).pptx
diapositivas tiktok.KAY (1) (1) (1).pptxLDACORGANIZACION
 
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...danielpoza1
 
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfperezreyesalberto10
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Webfernandalunag19
 
Mapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxMapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxjose880240
 
Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoCENECOnline
 
Esquema Organizacional Cosapi (Constructora)
Esquema Organizacional Cosapi (Constructora)Esquema Organizacional Cosapi (Constructora)
Esquema Organizacional Cosapi (Constructora)Eder Diaz Flores
 

Último (7)

diapositivas tiktok.KAY (1) (1) (1).pptx
diapositivas tiktok.KAY (1) (1) (1).pptxdiapositivas tiktok.KAY (1) (1) (1).pptx
diapositivas tiktok.KAY (1) (1) (1).pptx
 
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
 
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Web
 
Mapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxMapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptx
 
Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC Mexico
 
Esquema Organizacional Cosapi (Constructora)
Esquema Organizacional Cosapi (Constructora)Esquema Organizacional Cosapi (Constructora)
Esquema Organizacional Cosapi (Constructora)
 

Protocol HTTP

  • 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
  • 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. 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
  • 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. 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
  • 33. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP
  • 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
  • 51. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP
  • 52. Master en Servicios Web Servidores WEBUniversidad de Alicante HTTP • HTTP 2.0 – Servicio 'server push'
  • 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/

Notas del editor

  1. &amp;lt;número&amp;gt;
  2. &amp;lt;número&amp;gt;
  3. &amp;lt;número&amp;gt;
  4. &amp;lt;número&amp;gt;
  5. Fuenteshttps://desarrollowp.com/blog/tutoriales/anadir-cabeceras-http-de-seguridad-en-wordpress/ https://www.felixrr.pro/archives/425/http-public-key-pinning-hpkp Herramienta: https://securityheaders.io