SlideShare una empresa de Scribd logo
HTTP 1.1
Hypertext Transfer Protocol
OpenWebinars
Curso de front-end (2014)
Sergio Rus
@sergiorus
http://www.keepbrowsersafe.com
● Protocolo de propósito general
● Originalmente diseñado para hypermedia (HTML)
● Modelo cliente-servidor
● Stateless (no se guarda el estado)
● Conexiones persistentes (HTTP 1.1)
● API muy simple (métodos HTTP)
Principales características
Protocolo de propósito general
HTTP fue originalmente diseñado para transmitir
sólo documentos HTML. Posteriormente se
amplió a otros tipos de datos (Internet media
types, antes conocido como MIME types).
Cliente-servidor
El cliente (navegador web, app del móvil, etc)
siempre es el que inicia la comunicación
enviando una petición HTTP (HTTP request) al
servidor. Éste procesa la petición, genera una
respuesta y la envía al cliente mediante una
respuesta HTTP (HTTP response).
http://slides.com/onema/http-protocol
HTTP request
HTTP request
HTTP request
HTTP response
HTTP response
Cliente-servidor
Petición (request)
Una petición es un mensaje que transmite el
cliente al servidor con el propósito de acceder
a un recurso alojado en éste. Un recurso es
cualquier pieza de información que pueda ser
identificada con una URI (URL o URN). Los
recursos no tienen porqué identificar sólo
datos almacenados en el servidor. Un recurso
puede ser un concepto.
Respuesta (response)
Es el mensaje que transmite el servidor
al cliente en respuesta a su petición.
Estructura de un mensaje HTTP
Tanto las peticiones como las respuestas tienen
una estructura similar:
● Línea de estado
● Encabezados
● Opcionalmente, el cuerpo del mensaje (datos)
Estructura de un petición HTTP
La línea de estado contiene:
● El método HTTP usado (GET)
● La URI del recurso (/)
● La versión del protocolo (HTTP 1.1)
En HTTP 1.1 es obligatorio incluir siempre la
cabecera Host.
GET / HTTP 1.1
Host: www.example.com
Accept: text/html
Estructura de un respuesta HTTP
La línea de estado contiene:
● La versión del protocolo (HTTP 1.1)
● El código de respuesta (200)
● Descripción del código (OK)
El resto serían cabeceras y el cuerpo.
HTTP/1.1 200 OK
Date: Mon, 08 Dec 2014 19:04:39 GMT
Content-Type: text/html
Stateless
Una de las características más importantes de
HTTP es que todas las peticiones (requests) son
independientes: no se guardan datos (estado) entre
una petición y otra, es decir, el servidor debe tratar
cada petición de forma independiente. Es una de las
claves para poder escalar la arquitectura de la red
hasta el tamaño de Internet.
Conexiones persistentes
HTTP es un protocolo de aplicación que requiere
un protocolo de transporte para transmitir los
datos. El protocolo de transporte (TCP, SPDY, etc)
es el encargado de gestionar cada conexión: abrir
conexión, transmitir datos, cerrar conexión.
El coste de abrir una nueva conexión es muy alto,
tanto para el cliente como para el servidor.
Conexiones persistentes
Gracias a las conexiones persistentes, característica
añadida en la versión 1.1 de HTTP (versión actual), el
cliente y el servidor pueden realizar varias peticiones
HTTP reutilizando la misma conexión proporcionada
por el protocolo de transporte. Aunque la conexión
sólo se mantiene abierta por un tiempo limitado
cuando deja de haber actividad.
Conexiones persistentes
Aunque las conexiones persistentes
permiten minimizar el número de
conexiones requeridas, actualmente los
navegadores pueden abrir de media hasta 6
conexiones simultáneas por host. El
problema es que también existe un límite
para el número total de conexiones
simultáneas a lo largo de todos los hosts.
La cifra varía mucho de un navegador a
otro, pero se mueve entre 10 y 17.
Conexiones persistentes
Conclusión: minimizar el número de conexiones
totales tratando de reutilizar las conexiones ya
abiertas (conexiones persistentes) y aprovechando
la caché del navegador. ¡La conexión más rápida es
aquella no efectuada!
● GET: Obtener un recurso.
● POST: Crear un recurso.
● PUT: Actualizar o crear un recurso (si no existía).
● DELETE: Eliminar un recurso.
● OPTIONS: Información del servidor.
● HEAD: Igual que GET, pero sólo obtiene cabeceras.
Métodos HTTP
Con ellos el cliente indica al servidor qué tipo de acción
quiere realizar. Los más usados son:
curl -v www.example.com
cur -v -X HEAD www.example.com
curl -v -X OPTIONS www.example.com
Métodos HTTP
Veamos algunos ejemplos con cURL:
● 1xx Informational: Información provisional.
● 2xx Success: La acción se realizó correctamente.
● 3xx Redirection: El cliente debe realizar otra acción.
● 4xx Client Error: Error en la petición del cliente.
● 5xx Server Error: Error del servidor al procesar la petición.
Status codes
Los códigos de respuesta se pueden dividir en 5
categorías:

Más contenido relacionado

La actualidad más candente

Exchangeserver2010 expo
Exchangeserver2010 expoExchangeserver2010 expo
Exchangeserver2010 expoAlberto Pretto
 
Servicios web
Servicios webServicios web
Protocolo http noe lechuga de la cruz
Protocolo http noe lechuga de la cruz Protocolo http noe lechuga de la cruz
Protocolo http noe lechuga de la cruz
Wolf Dark
 
Servidores web
Servidores webServidores web
Servidores web
stefita9101
 
Servicios web
Servicios webServicios web
Servicios web
Karla Castillo
 
Exposicion
ExposicionExposicion
Exposicion
RONLAD MAMANI
 
Entrada 10
Entrada 10Entrada 10
Entrada 10
Tanya Troya
 
Cliente web y servidor web
Cliente web y servidor webCliente web y servidor web
Cliente web y servidor web
Chamakito Edwinshito Cruz Guevara
 
Servlet
ServletServlet
Servlet
spcsliki62
 
Presentación2.pptx
Presentación2.pptxPresentación2.pptx
Presentación2.pptx
ocrosc
 
Servidor web, plataforma para 24
Servidor web, plataforma para  24Servidor web, plataforma para  24
Servidor web, plataforma para 24
nancy arias
 
13. servidor http
13. servidor http13. servidor http
13. servidor httpGäbö Ü
 
Heartbleed
Heartbleed Heartbleed
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
Facultad de Ciencias y Sistemas
 
ACTIVIDAD 5
ACTIVIDAD 5ACTIVIDAD 5
ACTIVIDAD 5alejasss
 
Protocolo syslog
Protocolo   syslogProtocolo   syslog
Protocolo syslogUTP
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
LevRojasCampos
 
Cliente web
Cliente web Cliente web
Cliente web
anllytunena
 

La actualidad más candente (20)

Exchangeserver2010 expo
Exchangeserver2010 expoExchangeserver2010 expo
Exchangeserver2010 expo
 
Servicios web
Servicios webServicios web
Servicios web
 
Protocolo http noe lechuga de la cruz
Protocolo http noe lechuga de la cruz Protocolo http noe lechuga de la cruz
Protocolo http noe lechuga de la cruz
 
Servidores web
Servidores webServidores web
Servidores web
 
Servicios web
Servicios webServicios web
Servicios web
 
Páginas dinámicas
Páginas dinámicasPáginas dinámicas
Páginas dinámicas
 
Exposicion
ExposicionExposicion
Exposicion
 
Entrada 10
Entrada 10Entrada 10
Entrada 10
 
Cliente web y servidor web
Cliente web y servidor webCliente web y servidor web
Cliente web y servidor web
 
Servlet
ServletServlet
Servlet
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
Presentación2.pptx
Presentación2.pptxPresentación2.pptx
Presentación2.pptx
 
Servidor web, plataforma para 24
Servidor web, plataforma para  24Servidor web, plataforma para  24
Servidor web, plataforma para 24
 
13. servidor http
13. servidor http13. servidor http
13. servidor http
 
Heartbleed
Heartbleed Heartbleed
Heartbleed
 
Fundamentos de la web
Fundamentos de la webFundamentos de la web
Fundamentos de la web
 
ACTIVIDAD 5
ACTIVIDAD 5ACTIVIDAD 5
ACTIVIDAD 5
 
Protocolo syslog
Protocolo   syslogProtocolo   syslog
Protocolo syslog
 
Modelo cliente servidor
Modelo cliente servidorModelo cliente servidor
Modelo cliente servidor
 
Cliente web
Cliente web Cliente web
Cliente web
 

Similar a Http 1.1 clase 4 - curso front-end 2014 - open webinars

html
htmlhtml
PROTOCOLO HTTP.pptx
PROTOCOLO HTTP.pptxPROTOCOLO HTTP.pptx
PROTOCOLO HTTP.pptx
jeremydelpezo2
 
protocolo HTTP
protocolo HTTPprotocolo HTTP
protocolo HTTP
Ulises Hernandez
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicaciónJuan Alvarez
 
capa de aplicacion-sisco-netwokrs.pptx
capa de aplicacion-sisco-netwokrs.pptxcapa de aplicacion-sisco-netwokrs.pptx
capa de aplicacion-sisco-netwokrs.pptx
CESARANDRESDIAZGONZA
 
protocolos web y cilente_servidor
protocolos web y cilente_servidorprotocolos web y cilente_servidor
protocolos web y cilente_servidor
Arturo Hurtado
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
Julio Alfredo Cauich Cauich
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpCarlos Cruz Rincon
 
Introducción al Internet y sus servicios
Introducción al Internet y sus  servicios Introducción al Internet y sus  servicios
Introducción al Internet y sus servicios Pao Kathy Pechocha
 
trabajo monografico
trabajo monograficotrabajo monografico
trabajo monografico
geans159
 
Fundamentos técnicos de internet
Fundamentos técnicos de internetFundamentos técnicos de internet
Fundamentos técnicos de internet
Adrian Delgado Piña
 

Similar a Http 1.1 clase 4 - curso front-end 2014 - open webinars (20)

Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
html
htmlhtml
html
 
Dn12 u3 a9_dzlm
Dn12 u3 a9_dzlmDn12 u3 a9_dzlm
Dn12 u3 a9_dzlm
 
PROTOCOLO HTTP.pptx
PROTOCOLO HTTP.pptxPROTOCOLO HTTP.pptx
PROTOCOLO HTTP.pptx
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
Aplicaciones web
Aplicaciones webAplicaciones web
Aplicaciones web
 
protocolo HTTP
protocolo HTTPprotocolo HTTP
protocolo HTTP
 
Http
HttpHttp
Http
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicación
 
capa de aplicacion-sisco-netwokrs.pptx
capa de aplicacion-sisco-netwokrs.pptxcapa de aplicacion-sisco-netwokrs.pptx
capa de aplicacion-sisco-netwokrs.pptx
 
protocolos web y cilente_servidor
protocolos web y cilente_servidorprotocolos web y cilente_servidor
protocolos web y cilente_servidor
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
2.12 http
2.12 http2.12 http
2.12 http
 
Introducción al Internet y sus servicios
Introducción al Internet y sus  servicios Introducción al Internet y sus  servicios
Introducción al Internet y sus servicios
 
Apache
ApacheApache
Apache
 
Apache avanzado
Apache avanzadoApache avanzado
Apache avanzado
 
trabajo monografico
trabajo monograficotrabajo monografico
trabajo monografico
 
Fundamentos técnicos de internet
Fundamentos técnicos de internetFundamentos técnicos de internet
Fundamentos técnicos de internet
 
Servidor web
Servidor webServidor web
Servidor web
 

Último

CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
jheisonraulmedinafer
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
YasneidyGonzalez
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 

Último (20)

CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
MIP PAPA Rancha Papa.pdf.....y caracteristicas
MIP PAPA  Rancha Papa.pdf.....y caracteristicasMIP PAPA  Rancha Papa.pdf.....y caracteristicas
MIP PAPA Rancha Papa.pdf.....y caracteristicas
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 

Http 1.1 clase 4 - curso front-end 2014 - open webinars

  • 1. HTTP 1.1 Hypertext Transfer Protocol OpenWebinars Curso de front-end (2014) Sergio Rus @sergiorus
  • 3. ● Protocolo de propósito general ● Originalmente diseñado para hypermedia (HTML) ● Modelo cliente-servidor ● Stateless (no se guarda el estado) ● Conexiones persistentes (HTTP 1.1) ● API muy simple (métodos HTTP) Principales características
  • 4. Protocolo de propósito general HTTP fue originalmente diseñado para transmitir sólo documentos HTML. Posteriormente se amplió a otros tipos de datos (Internet media types, antes conocido como MIME types).
  • 5. Cliente-servidor El cliente (navegador web, app del móvil, etc) siempre es el que inicia la comunicación enviando una petición HTTP (HTTP request) al servidor. Éste procesa la petición, genera una respuesta y la envía al cliente mediante una respuesta HTTP (HTTP response).
  • 6. http://slides.com/onema/http-protocol HTTP request HTTP request HTTP request HTTP response HTTP response Cliente-servidor
  • 7. Petición (request) Una petición es un mensaje que transmite el cliente al servidor con el propósito de acceder a un recurso alojado en éste. Un recurso es cualquier pieza de información que pueda ser identificada con una URI (URL o URN). Los recursos no tienen porqué identificar sólo datos almacenados en el servidor. Un recurso puede ser un concepto.
  • 8. Respuesta (response) Es el mensaje que transmite el servidor al cliente en respuesta a su petición.
  • 9. Estructura de un mensaje HTTP Tanto las peticiones como las respuestas tienen una estructura similar: ● Línea de estado ● Encabezados ● Opcionalmente, el cuerpo del mensaje (datos)
  • 10. Estructura de un petición HTTP La línea de estado contiene: ● El método HTTP usado (GET) ● La URI del recurso (/) ● La versión del protocolo (HTTP 1.1) En HTTP 1.1 es obligatorio incluir siempre la cabecera Host. GET / HTTP 1.1 Host: www.example.com Accept: text/html
  • 11. Estructura de un respuesta HTTP La línea de estado contiene: ● La versión del protocolo (HTTP 1.1) ● El código de respuesta (200) ● Descripción del código (OK) El resto serían cabeceras y el cuerpo. HTTP/1.1 200 OK Date: Mon, 08 Dec 2014 19:04:39 GMT Content-Type: text/html
  • 12. Stateless Una de las características más importantes de HTTP es que todas las peticiones (requests) son independientes: no se guardan datos (estado) entre una petición y otra, es decir, el servidor debe tratar cada petición de forma independiente. Es una de las claves para poder escalar la arquitectura de la red hasta el tamaño de Internet.
  • 13. Conexiones persistentes HTTP es un protocolo de aplicación que requiere un protocolo de transporte para transmitir los datos. El protocolo de transporte (TCP, SPDY, etc) es el encargado de gestionar cada conexión: abrir conexión, transmitir datos, cerrar conexión. El coste de abrir una nueva conexión es muy alto, tanto para el cliente como para el servidor.
  • 14. Conexiones persistentes Gracias a las conexiones persistentes, característica añadida en la versión 1.1 de HTTP (versión actual), el cliente y el servidor pueden realizar varias peticiones HTTP reutilizando la misma conexión proporcionada por el protocolo de transporte. Aunque la conexión sólo se mantiene abierta por un tiempo limitado cuando deja de haber actividad.
  • 15. Conexiones persistentes Aunque las conexiones persistentes permiten minimizar el número de conexiones requeridas, actualmente los navegadores pueden abrir de media hasta 6 conexiones simultáneas por host. El problema es que también existe un límite para el número total de conexiones simultáneas a lo largo de todos los hosts. La cifra varía mucho de un navegador a otro, pero se mueve entre 10 y 17.
  • 16. Conexiones persistentes Conclusión: minimizar el número de conexiones totales tratando de reutilizar las conexiones ya abiertas (conexiones persistentes) y aprovechando la caché del navegador. ¡La conexión más rápida es aquella no efectuada!
  • 17. ● GET: Obtener un recurso. ● POST: Crear un recurso. ● PUT: Actualizar o crear un recurso (si no existía). ● DELETE: Eliminar un recurso. ● OPTIONS: Información del servidor. ● HEAD: Igual que GET, pero sólo obtiene cabeceras. Métodos HTTP Con ellos el cliente indica al servidor qué tipo de acción quiere realizar. Los más usados son:
  • 18. curl -v www.example.com cur -v -X HEAD www.example.com curl -v -X OPTIONS www.example.com Métodos HTTP Veamos algunos ejemplos con cURL:
  • 19. ● 1xx Informational: Información provisional. ● 2xx Success: La acción se realizó correctamente. ● 3xx Redirection: El cliente debe realizar otra acción. ● 4xx Client Error: Error en la petición del cliente. ● 5xx Server Error: Error del servidor al procesar la petición. Status codes Los códigos de respuesta se pueden dividir en 5 categorías: