Estructura del mensaje HTTP
HTTP es un cliente / servidor (C / S) modelo de arquitectura, para el intercambio de información a través de un enlace seguro, es un protocolo de petición / respuesta sin estado.
A HTTP "cliente" es una aplicación (navegador Web o cualquier otro cliente), mediante el envío de una solicitud para conectarse al servidor para lograr uno o más de los propósitos de servidor HTTP.
Un "servidor" HTTP es también una aplicación (por lo general un servicio web, como Apache servidor web o un servidor IIS, etc.), mediante la recepción de la solicitud del cliente para que el cliente envíe datos de respuesta HTTP.HTTP utiliza el identificador uniforme de recursos (Identificadores Uniformes de Recursos, URI) para transmitir datos y establecer una conexión.
Una vez establecida la conexión, el mensaje de datos en Internet a través de formato de correo electrónico similar a la utilizada [RFC5322] y Extensiones multipropósito de correo Internet (MIME) [RFC2045] para transmitir.
mensaje de petición de cliente
El cliente envía una solicitud HTTP al mensaje de petición de servidor incluye el siguiente formato: El formato general de la línea de solicitud (línea de petición), encabezado de solicitud (cabecera), líneas en blanco, y los datos de solicitud de cuatro partes, la siguiente figura muestra los paquetes de petición .
mensaje de respuesta del servidor
respuesta HTTP también se compone de cuatro partes, a saber: la línea de estado, los encabezados de los mensajes, una línea en blanco y el cuerpo de la respuesta.
Ejemplos
El siguiente ejemplo es un poco de uso típico GET para pasar los datos de la instancia:
Las solicitudes de cliente:
GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi
respuesta del servidor:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain
salida:
Hello World! My payload includes a trailing CRLF.