3.3.1-Protocolo HTTP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Protocolos de Capa

de aplicación
HTTP
Hypertext Transfer Protocol
¿Qué es HTTP?
 HTTP significa Hypertext Transfer
Protocol.
 HTTP fue desarrollado por el World Wide
Web Consortium y la Internet Engineering
Task Force, colaboración que culminó en
1999
 HTTP define la sintaxis y la semántica que
utilizan los elementos de software de la
arquitectura web para comunicarse.
(Clientes, Servidores, Proxys)
Elementos de una comunicación
HTTP
 Cliente que efectúa la petición "user agent" (navegador)
 Servidor http el cual posee el puerto 80 tcp en escucha de una
petición.
 La información transmitida es el recurso identificada por un URL
 Está basado en el envío de comandos y respuestas en texto ASCII.
 El contenido enviado (archivos HTML, imágenes, PDF, etc.) se
enviará tal cual está almacenado en el servidor.(En formato MIME)
 HTTP es un protocolo sin estado, no guarda ninguna información
sobre conexiones anteriores.
 Si fuese necesario mantener estado se utilizan las cookies.
 Las Cookies es información que un servidor puede almacenar en el
sistema cliente por tiempo indeterminado.
 Esto le permite a las aplicaciones web instituir la noción de
"sesión", y también permite rastrear usuarios.
Los estándares HTTP

 HTTP/0.9 Pre-93
 RFC 1945 (HTTP/1.0, 1996)
 RFC 2616 (HTTP/1.1, 1999)
 RFC 2774 (HTTP/1.2, 2000)

www.rfc-editor.org (Request for Comments)


Características de las versiones
HTTP/0.9: Primer versión del protocolo Http, cuya implementación fue realizada con
requerimientos muy simples. Solo acepta el método GET

HTTP/1.0: 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.
Soporta la mayoría de los métodos de comunicación.
Esta como la primer versión por cada elemento que trae de la web realiza una
conexión tdc/ip

HTTP/1.1: Versión actual; 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 (pipelining) lo que hace posible eliminar el tiempo de Round-Trip delay por

cada petición.Soporta name-based virtual hosting.

HTTP/1.2: El RFC 2774 (experimental), HTTP Extension Framework, incluye en gran


medida a PEP(Protocol extension protocol). Se publicó en febrero de 2000.
Diálogo HTTP
 Como mencionamos, este protocolo se
basa en envíos y respuestas en ASCII.
 Para realizar esto establece una conexión
TCP al puerto 80 y una vez establecida
comienza el dialogo.
 Entonces podemos mediante una consola
terminal de telnet establecer
manualmente un dialogo HTTP
Diálogo HTTP
 Iniciamos la conexión, Request
Line/Status Line
(telnet www.unq.edu.ar 80 )
 Envío de HTTP Request Header
(GET / HTTP/1.1 )
 Recibimos
 HTTP Response Headers
(HTTP/1.1 200 OK)
 HTTP Response Body
(Html, jpg, objeto requerido)
Solicitud HTTP
 Una línea de solicitud: es una línea que especifica el tipo de documento
solicitado, el método que se aplicará y la versión del protocolo utilizada. La línea está
formada por tres elementos que deben estar separados por un espacio:
 el método
 la dirección URL
 la versión del protocolo utilizada por el cliente (por lo general,
HTTP/1.0) Ejemplo: GET / HTTP/1.1
 Los campos del encabezado de solicitud: es un conjunto de líneas
opcionales que permiten aportar información adicional sobre la solicitud y/o el cliente
(navegador, sistema operativo, etc.). Cada una de estas líneas está formada por un
nombre que describe el tipo de encabezado, seguido de dos puntos (:) y el valor del
encabezado.
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b)
Gecko/20021016 Accept-Language: es-es, en-us;q=0.66, en;q=0.33
 El cuerpo de la solicitud: es un conjunto de líneas opcionales que deben estar
separadas de las líneas precedentes por una línea en blanco y, por ejemplo, permiten
que se envíen datos por un comando POST durante la transmisión de datos al
servidor utilizando un formulario .
Metodos y Comandos
Solicita el recurso ubicado en la URL
GET especificada

Solicita el encabezado del recurso


HEAD ubicado en la URL especificada

Envía datos al programa ubicado en


POST la URL especificada

PUT Envía datos a la URL especificada

Borra el recurso ubicado en la URL


DELETE especificada
Tipo de contenido aceptado por el navegador (por ejemplo, texto/html).
Accept Consulte Tipos de MIME
Accept-Charset Juego de caracteres que el navegador espera
Accept-Encoding Codificación de datos que el navegador acepta
Accept-Language Idioma que el navegador espera (de forma predeterminada, inglés)
Authorization Identificación del navegador en el servidor
Content-Encoding Tipo de codificación para el cuerpo de la solicitud
Content-Language Tipo de idioma en el cuerpo de la solicitud
Content-Length Extensión del cuerpo de la solicitud
Tipo de contenido del cuerpo de la solicitud (por ejemplo, texto/html).
Content-Type Consulte Tipos de MIME
Date Fecha en que comienza la transferencia de datos
Forwarded Utilizado por equipos intermediarios entre el navegador y el servidor
From Permite especificar la dirección de correo electrónico del cliente
Permite especificar que debe enviarse el documento si ha sido
From modificado desde una fecha en particular
Link Vínculo entre dos direcciones URL
Orig-URL Dirección URL donde se originó la solicitud
Referer Dirección URL desde la cual se realizó la solicitud
Cadena con información sobre el cliente, por ejemplo, el nombre y la
User-Agent versión del navegador y el sistema operativo
Respuesta HTTP
 Una línea de estado: es una línea que especifica la versión del protocolo
utilizada y el estado de la solicitud en proceso mediante un texto explicativo y un
código. La línea está compuesta por tres elementos que deben estar separados por
un espacio: La línea está formada por tres elementos que deben estar separados por
un espacio:
 la versión del protocolo utilizada
 el código de estado
 el significado del código

HTTP/1.1 200 OK
 Los campos del encabezado de respuesta: es un conjunto de líneas
opcionales que permiten aportar información adicional sobre la respuesta y/o el
servidor. Cada una de estas líneas está compuesta por un nombre que califica el tipo
de encabezado, seguido por dos puntos (:) y por el valor del encabezado Cada una de
estas líneas está formada por un nombre que describe el tipo de encabezado,
seguido de dos puntos (:) y el valor del encabezado.
Date: Fri, 31 Dec 2003 23:59:59 GMT
Server: Apache/2.2.9 (Debian) Last-Modified: Wed, 10 Dec 2008 14:36:40 GMT
ETag: "27956d-5de-45db23022ee00"
Content-Type: text/html Content-Length: 1221
 El cuerpo de la respuesta: contiene el documento solicitado. (html, .jpg, .pdf,
xml, etc..)
Códigos de respuesta HTTP
 1xx Mensajes Conexión rechazada
 2xx Operación exitosa
 3xx Redirección hacia otro URL
 4xx Error por parte del cliente
 5xx Error por parte del servidor
Conectandonos a un Server

GET /index.php HTTP/1.1


Host: sertec.unq.edu.ar
User-Agent: Mozilla/5.0
^M
HTTP/1.1 302 Found
Date: Mon, 17 May 2010 07:12:08 GMT
Server: Apache
X-Powered-By: PHP/5.2.6-1+lenny8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: http://sertec.unq.edu.ar/modules/news/
Vary: Accept-Encoding
Content-Type: text/html
Content-Length: 0
Connection: Keep-Alive
Set-Cookie: PHPSESSID=88166dfa5c34a4a5662516a7a7875177; path=/
Mediante un Navegador
Proxys Http
Este protocolo admite la
posibilidad de la existencia de
servidores proxy intermedios
entre el cliente y la Web

 Para el manejo del cache del cliente como del Proxy se utiliza
información de la respuesta del servidor http
Last-Modified: Wed, 10 Dec 2008 14:36:40 GMT
ETag: "27956d-5de-45db23022ee00"

 El server informa en el Etag el objeto que estamos manejando y la


fecha de la ultima modificación, también el server puede informar
que esta transacción no deberá ser cacheada (Pragma: no-cache).
Muchas Gracias

También podría gustarte