fbpx
Wikipedia

Protocolo de transferencia de hipertexto

El Protocolo de transferencia de hipertexto (en inglés, Hypertext Transfer Protocol, abreviado HTTP) es el protocolo de comunicación que permite las transferencias de información a través de archivos (XHML, HTML…) en la World Wide Web. Fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, siendo el más importante de ellos el RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse.

Protocolo de transferencia de hipertexto
Familia Familia de protocolos de Internet
Función Transferencia de hipertexto
Última versión 1.3 (2018)
Puertos 80/TCP
Ubicación en la pila de protocolos
Estándares
Original HTTP (HTTP/0.9, 1991)

RFC 1945 (HTTP/1.0, 1996)

RFC 2616 (HTTP/1.1, 1999)

RFC 2774 (HTTP/1.2[cita requerida], 2000)

RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235
(revisión de HTTP/1.1, 2014)

RFC 7540 (HTTP/2, 2015)

Hypertext Transfer Protocol Version 3 (HTTP/3, 2018)
(Borrador de Internet)

HTTP es un protocolo sin estado, por lo que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de sesión, y también permite rastrear usuarios, ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.

HTTP/3HTTP/2

Descripción

Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. El cliente (se le suele llamar "agente de usuario", del inglés user agent) realiza una petición enviando un mensaje, con cierto formato al servidor. El servidor (al que es común llamarle servidor web) le envía un mensaje de respuesta. Ejemplos de cliente son los navegadores web y las arañas web (también conocidas por su término inglés, webcrawlers).

Mensajes

Los mensajes HTTP son en texto plano, lo que lo hace más legible y fácil de depurar. Sin embargo, esto tiene el inconveniente de hacer los mensajes más largos. Los mensajes tienen la siguiente estructura:

  • Línea inicial (termina con retorno de carro y un salto de línea) con
    • Para las peticiones: la acción requerida por el servidor (método de petición) seguido de la URL del recurso y la versión HTTP que soporta el cliente.
    • Para respuestas: La versión del HTTP usado seguido del código de respuesta (que indica qué ha pasado con la petición seguido de la URL del recurso) y de la frase asociada a dicho retorno.
  • Las cabeceras del mensaje que terminan con una línea en blanco. Son metadatos. Estas cabeceras le dan gran flexibilidad al protocolo.
  • Cuerpo del mensaje. Es opcional. Su presencia depende de la línea anterior del mensaje y del tipo de recurso al que hace referencia la URL. Típicamente tiene los datos que se intercambian cliente y servidor. Por ejemplo para una petición podría contener ciertos datos que se quieren enviar al servidor para que los procese. Para una respuesta podría incluir los datos que el cliente ha solicitado.

Métodos de petición

 
Un pedido HTTP usando telnet. El pedido (request), cabeceras de respuesta (response headers) y el cuerpo de la respuesta (response body) están resaltados.

HTTP define una serie predefinida de métodos de petición (algunas veces referido como "verbos") que pueden utilizarse. El protocolo tiene flexibilidad para ir añadiendo nuevos métodos y para así añadir nuevas funcionalidades. El número de métodos de petición se ha ido aumentando según se avanzaba en las versiones.[1]​ Esta lista incluye los métodos agregados por WebDAV.

Cada método indica la acción que desea que se efectúe sobre el recurso identificado. Lo que este recurso representa depende de la aplicación del servidor. Por ejemplo, el recurso puede corresponderse con un archivo que reside en el servidor.

GET

El método GET solicita una representación del recurso especificado. Las solicitudes que usan GET solo deben recuperar datos y no deben tener ningún otro efecto. (Esto también es cierto para algunos otros métodos HTTP.)

HEAD

RFC 2616. Pide una respuesta idéntica a la que correspondería a una petición GET, pero en la respuesta no se devuelve el cuerpo. Esto es útil para poder recuperar los metadatos de los encabezados de respuesta, sin tener que transportar todo el contenido.

POST

RFC 2616. Envía datos para que sean procesados por el recurso identificado en la URL de la línea petición. Los datos se incluirán en el cuerpo de la petición. A nivel semántico está orientado a crear un nuevo recurso, cuya naturaleza vendrá especificada por la cabecera Content-Type. Ejemplos:

  • Para datos formularios codificados como una URL (aunque viajan en el cuerpo de la petición, no en la URL): application/x-www-form-urlencoded
  • Para bloques a subir, ej. ficheros: multipart/form-data
  • Además de los anteriores, no hay un estándar obligatorio y también podría ser otros como text/plain, application/json, application/octet-stream,...

PUT

( RFC 2616 ) Envía datos al servidor, pero a diferencia del método POST la URI de la línea de petición no hace referencia al recurso que los procesará, sino que identifica al los propios datos (ver explicación detallada en el RFC). Otra diferencia con POST es semántica (ver REST): mientras que POST está orientado a la creación de nuevos contenidos, PUT está más orientado a la actualización de los mismos (aunque también podría crearlos).

Ejemplo:

PUT /path/filename.html HTTP/1.1

DELETE

RFC 2616. Borra el recurso especificado.

TRACE

( RFC 2616 ) Este método solicita al servidor que introduzca en la respuesta todos los datos que reciba en el mensaje de petición. Se utiliza con fines de depuración y diagnóstico ya que el cliente puede ver lo que llega al servidor y de esta forma ver todo lo que añaden al mensaje los servidores intermedios

OPTIONS

RFC 2616. Devuelve los métodos HTTP que el servidor soporta para un URL específico. Esto puede ser utilizado para comprobar la funcionalidad de un servidor web mediante petición en lugar de un recurso específico.

CONNECT

RFC 2616. Se utiliza para saber si se tiene acceso a un host, no necesariamente la petición llega al servidor, este método se utiliza principalmente para saber si un proxy nos da acceso a un host bajo condiciones especiales, como por ejemplo "corrientes" de datos bidireccionales encriptadas (como lo requiere SSL).

PATCH

( RFC 5789 ). Su función es la misma que PUT, el cual sobrescribe completamente un recurso. Se utiliza para actualizar, de manera parcial una o varias partes. Está orientado también para el uso con proxy.[2]

MOVE

RFC 2518

MKCOL

RFC 2518

PROPFIND

RFC 2518

PROPPATCH

RFC 2518

MERGE

RFC 3253

UPDATE

RFC 3253

LABEL

RFC 3253

Códigos de respuesta

El código de respuesta o retorno es un número que indica que ha pasado con la petición. El resto del contenido de la respuesta dependerá del valor de este código. El sistema es flexible y de hecho la lista de códigos ha ido aumentando para así adaptarse a los cambios e identificar nuevas situaciones. Cada código tiene un significado concreto. Sin embargo el número de los códigos están elegidos de tal forma que según si pertenece a una centena u otra se pueda identificar el tipo de respuesta que ha dado el servidor:

  • Códigos con formato 1xx: Respuestas informativas. Indica que la petición ha sido recibida y se está procesando.
  • Códigos con formato 2xx: Respuestas correctas. Indica que la petición ha sido procesada correctamente.
  • Códigos con formato 3xx: Respuestas de redirección. Indica que el cliente necesita realizar más acciones para finalizar la petición.
  • Códigos con formato 4xx: Errores causados por el cliente. Indica que ha habido un error en el procesado de la petición a causa de que el cliente ha hecho algo mal.
  • Códigos con formato 5xx: Errores causados por el servidor. Indica que ha habido un error en el procesado de la petición a causa de un fallo en el servidor.

Cabeceras

Son los metadatos que se envían en las peticiones o respuesta HTTP para proporcionar información esencial sobre la transacción en curso. Cada cabecera es especificada por un nombre de cabecera seguido por dos puntos, un espacio en blanco y el valor de dicha cabecera seguida por un retorno de carro seguido por un salto de línea. Se usa una línea en blanco para indicar el final de las cabeceras. Si no hay cabeceras la línea en blanco debe permanecer.

Las cabeceras le dan gran flexibilidad al protocolo permitiendo añadir nuevas funcionalidades sin tener que cambiar la base. Por eso según han ido sucediendo las versiones de HTTP se han ido añadiendo más y más cabeceras permitidas.

Las cabeceras pueden tener metadatos que tienen que ser procesados por el cliente (ej. en respuesta a petición se puede indicar el tipo del contenido que contiene), por el servidor (ej. tipos de representaciones aceptables por el cliente del contenido que pide) o por los intermediarios (ej. como gestionar el cacheo por parte de los proxys)

Dependiendo del tipo de mensaje en el que puede ir una cabecera las podemos clasificar en cabeceras de petición, cabeceras de respuesta y cabeceras que pueden ir tanto en una petición como en una respuesta.

Podemos clasificar las cabeceras según su función. Por ejemplo:

  • Cabeceras que indican las capacidades aceptadas por el que envía el mensaje: Accept (indica el MIME aceptado), Accept-Charset (indica el código de caracteres aceptado), Accept-Encoding (indica el método de compresión aceptado), Accept-Language (indica el idioma aceptado), User-Agent (para describir al cliente), Server (indica el tipo de servidor), Allow (métodos permitidos para el recurso)
  • Cabeceras que describen el contenido: Content-Type (indica el MIME del contenido), Content-Length (longitud del mensaje), Content-Range, Content-Encoding, Content-Language, Content-Location.
  • Cabeceras que hacen referencias a URIs: Location (indica donde está el contenido), Referer (Indica el origen de la petición).
  • Cabeceras que permiten ahorrar transmisiones: Date (fecha de creación), If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, If-Range, Expires, Last-Modified, Cache-Control, Via, Pragma, Etag, Age, Retry-After.
  • Cabeceras para control de cookies: Set-Cookie, Cookie
  • Cabeceras para autentificación: Authorization, WW-Authenticate
  • Cabeceras para describir la comunicación: Host (indica máquina destino del mensaje), Connection (indica como establecer la conexión)
  • Otras: Range (para descargar solo partes del recurso), Max-Forward (límite de cabeceras añadidas en TRACE).

Ejemplo de diálogo HTTP

Para obtener un recurso con el URL http://www.example.com/index.html

  1. Se abre una conexión en el puerto 80 del host www.example.com. El puerto 80 es el puerto predefinido para HTTP. Si se quisiera utilizar el puerto XXXX habría que codificarlo en la URL de la forma http://www.example.com:XXXX/index.html
  2. Se envía un mensaje en el estilo siguiente:
 GET /index.html HTTP/1.1 Host: www.example.com Referer: www.google.com User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 Connection: keep-alive [Línea en blanco] 

La respuesta del servidor está formada por encabezados seguidos del recurso solicitado, en el caso de una página web:

HTTP/1.1 200 OK Date: Fri, 31 Dec 2003 23:59:59 GMT Content-Type: text/html Content-Length: 1221 <html lang="eo"> <head> <meta charset="utf-8"> <title>Título del sitio</title> </head> <body> <h1>Página principal de tuHost</h1> (Contenido) . . . </body> </html> 

Versiones

HTTP ha pasado por múltiples versiones del protocolo, muchas de las cuales son compatibles con las anteriores. El RFC 2145 describe el uso de los números de versión de HTTP. El cliente le dice al servidor al principio de la petición la versión que usa, y el servidor usa la misma o una anterior en su respuesta.

0.9 (lanzada en 1991)
Obsoleta. Soporta solo un comando, GET, y además no especifica el número de versión HTTP. No soporta cabeceras. Como esta versión no soporta POST, el cliente no puede enviarle mucha información al servidor.
HTTP/1.0 (mayo de 1996)
Esta es la primera revisión del protocolo que especifica su versión en las comunicaciones, y todavía se usa ampliamente, sobre todo en servidores proxy. Permite los métodos de petición GET, HEAD y POST.
HTTP/1.1 (junio de 1999)[3][4]
Versión más usada actualmente;[cita requerida] Las conexiones persistentes están activadas por defecto y funcionan bien con los proxies. También permite al cliente enviar múltiples peticiones a la vez por la misma conexión (pipelining) lo que hace posible eliminar el tiempo de Round-Trip delay por cada petición.
HTTP/1.2 (febrero de 2000)
Los primeros borradores de 1995 del documento PEP — an Extension Mechanism for HTTP (el cual propone el Protocolo de Extensión de Protocolo, abreviado PEP) los hizo el World Wide Web Consortium y se envió al Internet Engineering Task Force. El PEP inicialmente estaba destinado a convertirse en un rango distintivo de HTTP/1.2.[5]​ En borradores posteriores, sin embargo, se eliminó la referencia a HTTP/1.2. El RFC 2774 (experimental), HTTP Extension Framework, incluye en gran medida a PEP. Se publicó en febrero de 2000.
HTTP/2 (mayo de 2015)
En el año 2012 aparecen los primeros borradores de la nueva versión de HTTP (HTTP/2). Esta nueva versión no modifica la semántica de aplicación de http (todos los conceptos básicos continúan sin cambios). Sus mejoras se enfocan en como se empaquetan los datos y en el transporte. Por ejemplo, añade el uso de una única conexión, la compresión de cabeceras o el servicio 'server push'. Los exploradores más importantes solo soportan HTTP 2.0 sobre TLS usando la extensión ALPN[6]​que requiere TLSv1.2 o superior.[7]

HTTP/3 (Octubre de 2018)

HTTP/3 es el sucesor propuesto de HTTP/2,[8][9]​ que ya está en uso en la web, utilizando UDP en lugar de TCP para el protocolo de transporte subyacente. Al igual que el HTTP/2, no es obsoleto en las versiones principales anteriores del protocolo. El soporte para HTTP/3 fue agregado a Cloudflare y Google Chrome en septiembre de 2019,[10][11]​ y puede ser habilitado en las versiones estables de Chrome y Firefox.[12]

Véase también

Referencias

  1. Lista de métodos http
  2. L. Dusseault, J. Snell (25 de noviembre de 2009). (html). IETF (en inglés). Archivado desde el original el . Consultado el 15 de septiembre de 2018. «This proposal adds a new HTTP method, PATCH, to modify an existing HTTP resource.» 
  3. Enero de 1997. Se publica la primera versión de la especificación HTTP/1.1
  4. Junio de 1999. Publicada la última versión de la especificación HTTP/1.1
  5. [1] PEP: An Extension Mechanism for HTTP. Cita: "For experimental purposes, PEP-compatibility is equated with HTTP/1.2."
  6. «RFC 7301 - Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension». IETF. July 2014. 
  7. Belshe, M.; Peon, R.; Thomson, M. «Hypertext Transfer Protocol Version 2, Use of TLS Features». Consultado el 10 de febrero de 2015. 
  8. Bishop, Mike. «Hypertext Transfer Protocol Version 3 (HTTP/3)». tools.ietf.org (en inglés). Consultado el 4 de mayo de 2020. 
  9. Cimpanu, Catalin. «HTTP-over-QUIC to be renamed HTTP/3». ZDNet (en inglés). Consultado el 4 de mayo de 2020. 
  10. Cimpanu, Catalin. «Cloudflare, Google Chrome, and Firefox add HTTP/3 support». ZDNet (en inglés). Consultado el 4 de mayo de 2020. 
  11. «HTTP/3: the past, the present, and the future». The Cloudflare Blog (en inglés). 26 de septiembre de 2019. Consultado el 4 de mayo de 2020. 
  12. «Firefox Nightly supports HTTP 3». Cloudflare Community (en inglés estadounidense). 6 de noviembre de 2019. Consultado el 4 de mayo de 2020. 

Enlaces externos

  • RFC-2616
  • HTTP - Hypertext Transfer Protocol. W3C
  • HTTP Made Really Easy. byJames Marshall, 1997
  • Verificación de URL Online
  • Prueba de compatibilidad HTTP/2
  •   Datos: Q8777
  •   Multimedia: Hypertext Transfer Protocol

protocolo, transferencia, hipertexto, inglés, hypertext, transfer, protocol, abreviado, http, protocolo, comunicación, permite, transferencias, información, través, archivos, xhml, html, world, wide, desarrollado, world, wide, consortium, internet, engineering. El Protocolo de transferencia de hipertexto en ingles Hypertext Transfer Protocol abreviado HTTP es el protocolo de comunicacion que permite las transferencias de informacion a traves de archivos XHML HTML en la World Wide Web Fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force colaboracion que culmino en 1999 con la publicacion de una serie de RFC siendo el mas importante de ellos el RFC 2616 que especifica la version 1 1 HTTP define la sintaxis y la semantica que utilizan los elementos de software de la arquitectura web clientes servidores proxies para comunicarse Protocolo de transferencia de hipertextoFamiliaFamilia de protocolos de InternetFuncionTransferencia de hipertextoUltima version1 3 2018 Puertos80 TCPUbicacion en la pila de protocolosAplicacion HTTPTransporte TCPRed IPEstandaresOriginal HTTP HTTP 0 9 1991 RFC 1945 HTTP 1 0 1996 RFC 2616 HTTP 1 1 1999 RFC 2774 HTTP 1 2 cita requerida 2000 RFC 7230 RFC 7231 RFC 7232 RFC 7233 RFC 7234 RFC 7235 revision de HTTP 1 1 2014 RFC 7540 HTTP 2 2015 Hypertext Transfer Protocol Version 3 HTTP 3 2018 Borrador de Internet editar datos en Wikidata HTTP es un protocolo sin estado por lo que no guarda ninguna informacion sobre conexiones anteriores El desarrollo de aplicaciones web necesita frecuentemente mantener estado Para esto se usan las cookies que es informacion que un servidor puede almacenar en el sistema cliente Esto le permite a las aplicaciones web instituir la nocion de sesion y tambien permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado Indice 1 Descripcion 1 1 Mensajes 1 2 Metodos de peticion 1 2 1 GET 1 2 2 HEAD 1 2 3 POST 1 2 4 PUT 1 2 5 DELETE 1 2 6 TRACE 1 2 7 OPTIONS 1 2 8 CONNECT 1 2 9 PATCH 1 2 10 MOVE 1 2 11 MKCOL 1 2 12 PROPFIND 1 2 13 PROPPATCH 1 2 14 MERGE 1 2 15 UPDATE 1 2 16 LABEL 1 3 Codigos de respuesta 1 4 Cabeceras 1 5 Ejemplo de dialogo HTTP 2 Versiones 3 Vease tambien 4 Referencias 5 Enlaces externosDescripcion EditarEs un protocolo orientado a transacciones y sigue el esquema peticion respuesta entre un cliente y un servidor El cliente se le suele llamar agente de usuario del ingles user agent realiza una peticion enviando un mensaje con cierto formato al servidor El servidor al que es comun llamarle servidor web le envia un mensaje de respuesta Ejemplos de cliente son los navegadores web y las aranas web tambien conocidas por su termino ingles webcrawlers Mensajes Editar Los mensajes HTTP son en texto plano lo que lo hace mas legible y facil de depurar Sin embargo esto tiene el inconveniente de hacer los mensajes mas largos Los mensajes tienen la siguiente estructura Linea inicial termina con retorno de carro y un salto de linea con Para las peticiones la accion requerida por el servidor metodo de peticion seguido de la URL del recurso y la version HTTP que soporta el cliente Para respuestas La version del HTTP usado seguido del codigo de respuesta que indica que ha pasado con la peticion seguido de la URL del recurso y de la frase asociada a dicho retorno Las cabeceras del mensaje que terminan con una linea en blanco Son metadatos Estas cabeceras le dan gran flexibilidad al protocolo Cuerpo del mensaje Es opcional Su presencia depende de la linea anterior del mensaje y del tipo de recurso al que hace referencia la URL Tipicamente tiene los datos que se intercambian cliente y servidor Por ejemplo para una peticion podria contener ciertos datos que se quieren enviar al servidor para que los procese Para una respuesta podria incluir los datos que el cliente ha solicitado Metodos de peticion Editar Un pedido HTTP usando telnet El pedido request cabeceras de respuesta response headers y el cuerpo de la respuesta response body estan resaltados HTTP define una serie predefinida de metodos de peticion algunas veces referido como verbos que pueden utilizarse El protocolo tiene flexibilidad para ir anadiendo nuevos metodos y para asi anadir nuevas funcionalidades El numero de metodos de peticion se ha ido aumentando segun se avanzaba en las versiones 1 Esta lista incluye los metodos agregados por WebDAV Cada metodo indica la accion que desea que se efectue sobre el recurso identificado Lo que este recurso representa depende de la aplicacion del servidor Por ejemplo el recurso puede corresponderse con un archivo que reside en el servidor GET Editar El metodo GET solicita una representacion del recurso especificado Las solicitudes que usan GET solo deben recuperar datos y no deben tener ningun otro efecto Esto tambien es cierto para algunos otros metodos HTTP HEAD Editar RFC 2616 Pide una respuesta identica a la que corresponderia a una peticion GET pero en la respuesta no se devuelve el cuerpo Esto es util para poder recuperar los metadatos de los encabezados de respuesta sin tener que transportar todo el contenido POST Editar RFC 2616 Envia datos para que sean procesados por el recurso identificado en la URL de la linea peticion Los datos se incluiran en el cuerpo de la peticion A nivel semantico esta orientado a crear un nuevo recurso cuya naturaleza vendra especificada por la cabecera Content Type Ejemplos Para datos formularios codificados como una URL aunque viajan en el cuerpo de la peticion no en la URL application x www form urlencoded Para bloques a subir ej ficheros multipart form data Ademas de los anteriores no hay un estandar obligatorio y tambien podria ser otros como text plain application json application octet stream PUT Editar RFC 2616 Envia datos al servidor pero a diferencia del metodo POST la URI de la linea de peticion no hace referencia al recurso que los procesara sino que identifica al los propios datos ver explicacion detallada en el RFC Otra diferencia con POST es semantica ver REST mientras que POST esta orientado a la creacion de nuevos contenidos PUT esta mas orientado a la actualizacion de los mismos aunque tambien podria crearlos Ejemplo PUT path filename html HTTP 1 1DELETE Editar RFC 2616 Borra el recurso especificado TRACE Editar RFC 2616 Este metodo solicita al servidor que introduzca en la respuesta todos los datos que reciba en el mensaje de peticion Se utiliza con fines de depuracion y diagnostico ya que el cliente puede ver lo que llega al servidor y de esta forma ver todo lo que anaden al mensaje los servidores intermedios OPTIONS Editar RFC 2616 Devuelve los metodos HTTP que el servidor soporta para un URL especifico Esto puede ser utilizado para comprobar la funcionalidad de un servidor web mediante peticion en lugar de un recurso especifico CONNECT Editar RFC 2616 Se utiliza para saber si se tiene acceso a un host no necesariamente la peticion llega al servidor este metodo se utiliza principalmente para saber si un proxy nos da acceso a un host bajo condiciones especiales como por ejemplo corrientes de datos bidireccionales encriptadas como lo requiere SSL PATCH Editar RFC 5789 Su funcion es la misma que PUT el cual sobrescribe completamente un recurso Se utiliza para actualizar de manera parcial una o varias partes Esta orientado tambien para el uso con proxy 2 MOVE Editar RFC 2518 MKCOL Editar RFC 2518 PROPFIND Editar RFC 2518 PROPPATCH Editar RFC 2518 MERGE Editar RFC 3253 UPDATE Editar RFC 3253 LABEL Editar RFC 3253 Codigos de respuesta Editar Articulo principal Anexo Codigos de estado HTTP El codigo de respuesta o retorno es un numero que indica que ha pasado con la peticion El resto del contenido de la respuesta dependera del valor de este codigo El sistema es flexible y de hecho la lista de codigos ha ido aumentando para asi adaptarse a los cambios e identificar nuevas situaciones Cada codigo tiene un significado concreto Sin embargo el numero de los codigos estan elegidos de tal forma que segun si pertenece a una centena u otra se pueda identificar el tipo de respuesta que ha dado el servidor Codigos con formato 1xx Respuestas informativas Indica que la peticion ha sido recibida y se esta procesando Codigos con formato 2xx Respuestas correctas Indica que la peticion ha sido procesada correctamente Codigos con formato 3xx Respuestas de redireccion Indica que el cliente necesita realizar mas acciones para finalizar la peticion Codigos con formato 4xx Errores causados por el cliente Indica que ha habido un error en el procesado de la peticion a causa de que el cliente ha hecho algo mal Codigos con formato 5xx Errores causados por el servidor Indica que ha habido un error en el procesado de la peticion a causa de un fallo en el servidor Cabeceras Editar Articulo principal Cabeceras HTTP Son los metadatos que se envian en las peticiones o respuesta HTTP para proporcionar informacion esencial sobre la transaccion en curso Cada cabecera es especificada por un nombre de cabecera seguido por dos puntos un espacio en blanco y el valor de dicha cabecera seguida por un retorno de carro seguido por un salto de linea Se usa una linea en blanco para indicar el final de las cabeceras Si no hay cabeceras la linea en blanco debe permanecer Las cabeceras le dan gran flexibilidad al protocolo permitiendo anadir nuevas funcionalidades sin tener que cambiar la base Por eso segun han ido sucediendo las versiones de HTTP se han ido anadiendo mas y mas cabeceras permitidas Las cabeceras pueden tener metadatos que tienen que ser procesados por el cliente ej en respuesta a peticion se puede indicar el tipo del contenido que contiene por el servidor ej tipos de representaciones aceptables por el cliente del contenido que pide o por los intermediarios ej como gestionar el cacheo por parte de los proxys Dependiendo del tipo de mensaje en el que puede ir una cabecera las podemos clasificar en cabeceras de peticion cabeceras de respuesta y cabeceras que pueden ir tanto en una peticion como en una respuesta Podemos clasificar las cabeceras segun su funcion Por ejemplo Cabeceras que indican las capacidades aceptadas por el que envia el mensaje Accept indica el MIME aceptado Accept Charset indica el codigo de caracteres aceptado Accept Encoding indica el metodo de compresion aceptado Accept Language indica el idioma aceptado User Agent para describir al cliente Server indica el tipo de servidor Allow metodos permitidos para el recurso Cabeceras que describen el contenido Content Type indica el MIME del contenido Content Length longitud del mensaje Content Range Content Encoding Content Language Content Location Cabeceras que hacen referencias a URIs Location indica donde esta el contenido Referer Indica el origen de la peticion Cabeceras que permiten ahorrar transmisiones Date fecha de creacion If Modified Since If Unmodified Since If Match If None Match If Range Expires Last Modified Cache Control Via Pragma Etag Age Retry After Cabeceras para control de cookies Set Cookie Cookie Cabeceras para autentificacion Authorization WW Authenticate Cabeceras para describir la comunicacion Host indica maquina destino del mensaje Connection indica como establecer la conexion Otras Range para descargar solo partes del recurso Max Forward limite de cabeceras anadidas en TRACE Ejemplo de dialogo HTTP Editar Para obtener un recurso con el URL http www example com index html Se abre una conexion en el puerto 80 del host www example com El puerto 80 es el puerto predefinido para HTTP Si se quisiera utilizar el puerto XXXX habria que codificarlo en la URL de la forma http www example com XXXX index html Se envia un mensaje en el estilo siguiente GET index html HTTP 1 1 Host www example com Referer www google com User Agent Mozilla 5 0 X11 Linux x86 64 rv 45 0 Gecko 20100101 Firefox 45 0 Connection keep alive Linea en blanco La respuesta del servidor esta formada por encabezados seguidos del recurso solicitado en el caso de una pagina web HTTP 1 1 200 OK Date Fri 31 Dec 2003 23 59 59 GMT Content Type text html Content Length 1221 lt html lang eo gt lt head gt lt meta charset utf 8 gt lt title gt Titulo del sitio lt title gt lt head gt lt body gt lt h1 gt Pagina principal de tuHost lt h1 gt Contenido lt body gt lt html gt Versiones EditarHTTP ha pasado por multiples versiones del protocolo muchas de las cuales son compatibles con las anteriores El RFC 2145 describe el uso de los numeros de version de HTTP El cliente le dice al servidor al principio de la peticion la version que usa y el servidor usa la misma o una anterior en su respuesta 0 9 lanzada en 1991 Obsoleta Soporta solo un comando GET y ademas no especifica el numero de version HTTP No soporta cabeceras Como esta version no soporta POST el cliente no puede enviarle mucha informacion al servidor HTTP 1 0 mayo de 1996 Esta es la primera revision del protocolo que especifica su version en las comunicaciones y todavia se usa ampliamente sobre todo en servidores proxy Permite los metodos de peticion GET HEAD y POST HTTP 1 1 junio de 1999 3 4 Version mas usada actualmente cita requerida Las conexiones persistentes estan activadas por defecto y funcionan bien con los proxies Tambien permite al cliente enviar multiples peticiones a la vez por la misma conexion pipelining lo que hace posible eliminar el tiempo de Round Trip delay por cada peticion HTTP 1 2 febrero de 2000 Los primeros borradores de 1995 del documento PEP an Extension Mechanism for HTTP el cual propone el Protocolo de Extension de Protocolo abreviado PEP los hizo el World Wide Web Consortium y se envio al Internet Engineering Task Force El PEP inicialmente estaba destinado a convertirse en un rango distintivo de HTTP 1 2 5 En borradores posteriores sin embargo se elimino la referencia a HTTP 1 2 El RFC 2774 experimental HTTP Extension Framework incluye en gran medida a PEP Se publico en febrero de 2000 HTTP 2 mayo de 2015 Articulo principal HTTP 2 En el ano 2012 aparecen los primeros borradores de la nueva version de HTTP HTTP 2 Esta nueva version no modifica la semantica de aplicacion de http todos los conceptos basicos continuan sin cambios Sus mejoras se enfocan en como se empaquetan los datos y en el transporte Por ejemplo anade el uso de una unica conexion la compresion de cabeceras o el servicio server push Los exploradores mas importantes solo soportan HTTP 2 0 sobre TLS usando la extension ALPN 6 que requiere TLSv1 2 o superior 7 HTTP 3 Octubre de 2018 Articulo principal HTTP 3HTTP 3 es el sucesor propuesto de HTTP 2 8 9 que ya esta en uso en la web utilizando UDP en lugar de TCP para el protocolo de transporte subyacente Al igual que el HTTP 2 no es obsoleto en las versiones principales anteriores del protocolo El soporte para HTTP 3 fue agregado a Cloudflare y Google Chrome en septiembre de 2019 10 11 y puede ser habilitado en las versiones estables de Chrome y Firefox 12 Vease tambien EditarTransport Layer Security HTTPS HTTP Strict Transport Security HTTP P2P HTTP 2 harReferencias Editar Lista de metodos http L Dusseault J Snell 25 de noviembre de 2009 PATCH Method for HTTP draft dusseault http patch 16 html IETF en ingles Archivado desde el original el https web archive org web 20170630025624 https tools ietf org html draft dusseault http patch 16 Consultado el 15 de septiembre de 2018 This proposal adds a new HTTP method PATCH to modify an existing HTTP resource Enero de 1997 Se publica la primera version de la especificacion HTTP 1 1 Junio de 1999 Publicada la ultima version de la especificacion HTTP 1 1 1 PEP An Extension Mechanism for HTTP Cita For experimental purposes PEP compatibility is equated with HTTP 1 2 RFC 7301 Transport Layer Security TLS Application Layer Protocol Negotiation Extension IETF July 2014 Belshe M Peon R Thomson M Hypertext Transfer Protocol Version 2 Use of TLS Features Consultado el 10 de febrero de 2015 Bishop Mike Hypertext Transfer Protocol Version 3 HTTP 3 tools ietf org en ingles Consultado el 4 de mayo de 2020 Cimpanu Catalin HTTP over QUIC to be renamed HTTP 3 ZDNet en ingles Consultado el 4 de mayo de 2020 Cimpanu Catalin Cloudflare Google Chrome and Firefox add HTTP 3 support ZDNet en ingles Consultado el 4 de mayo de 2020 HTTP 3 the past the present and the future The Cloudflare Blog en ingles 26 de septiembre de 2019 Consultado el 4 de mayo de 2020 Firefox Nightly supports HTTP 3 Cloudflare Community en ingles estadounidense 6 de noviembre de 2019 Consultado el 4 de mayo de 2020 Enlaces externos EditarRFC 2616 HTTP Hypertext Transfer Protocol W3C HTTP Made Really Easy byJames Marshall 1997 Validacion de HTTP Headers Verificacion de URL Online Prueba de compatibilidad HTTP 2 Datos Q8777 Multimedia Hypertext Transfer Protocol Obtenido de https es wikipedia org w index php title Protocolo de transferencia de hipertexto amp oldid 139908205, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos