maximo-perez-villalba/framework-http

El componente implementa una simple arquitectura HTTP en PHP con fines pedagógicos.

2.4.4 2022-06-25 03:05 UTC

This package is auto-updated.

Last update: 2024-05-09 06:15:57 UTC


README

La componente implementa una simple arquitectura HTTP orientada a objetos escrita en PHP.
Este proyecto tiene fines pedagógico.


Instalación

Se puede instalar framework-http a través de Composer de dos formas:

1 Desde una consola de comandos ir al directorio del proyecto y ejecutar:

composer require maximo-perez-villalba/framework-http

2 También modificando manualmente el archivo composer.json

"require": {
  "maximo-perez-villalba/framework-http": ">=2.4.0"
},

2.1 Luego desde una consola de comandos ejecutar:

composer update

Como se usa

HTTPRequestsRoutes::start( 'Ruta del archivo de  configuración' );
HTTPRequestsRoutes::executeCurrentRequest();
HTTPRequestsRoutes::executeCurrentResponse();

Documentación

Mensajes HTTP

Los mensajes HTTP son los medios por los cuales se intercambian datos entre servidores y clientes.
Hay dos tipos de mensajes:

  • peticiones enviadas por el cliente al servidor para pedir el inicio de una acción
  • y respuestas que son la respuesta del servidor.

Los mensajes HTTP están compuestos de texto, codificado en ASCII, y pueden comprender múltiples líneas.
Fuente: developer.mozilla.org: Mensajes HTTP


Ejemplo de comunicación a través del protocolo HTTP

POST / HTTP 1.1
GET /background.png HTTP/1.0
HEAD /test.html?query=alibaba HTTP/1.1
OPTIONS /anypage.html HTTP/1.0

Los clientes web realizan peticiones sobre los servidores web invocando una URI (Uniform Resource Identifier).

URI = URL + URN
Siendo la URL la ubicación del servidor web y la URN la ubicación específica del recurso/acción que se solicita.

Los servidores web son sistemas preparados para escuchar los eventos de solicitud de recursos enviados por los clientes escrito con el protocolo HTTP a través de una conexión de red.
Existen dos tipos de recursos que pueden solicitar los clientes:

  • Recursos estáticos cuya respuesta es simplemente devolver/transmitir el archivo. Los recursos estáticos son por ejemplo los archivos : HTML, PDF, videos, fotos, etc.
  • Recursos dinámicos en este caso, el servidor delega la ejecución en el script apuntado. Pudiendo el script estar escrito en muchos lenguajes de programación como PHP, Java, NodeJS, CGI, ect.

¿Que problema resuelve?

Este componente permite controlar un conjunto de peticiones escritas con el protocolo HTTP. Para poder funcionar la componente requiere tener registradas las peticiones que puede atender.

De manera tal que asocia la URN de la petición a una clase que ejecutaran acciones personalizadas.
El conjunto de peticiones son registradas y asociadas a un método en una clase en un archivo de configuración, siendo este archivo donde se define la API rest de la aplicación web.


Figure: UML flowchart > HTTP Request Routes :: start
Figure: UML flowchart > HTTP Request Routes :: start


Figure: UML flowchart > HTTP Request Routes :: set current request
Figure: UML flowchart > HTTP Request Routes:: set current request


Figure: UML flowchart > HTTP Request Routes :: execute current request
Figure: UML flowchart > HTTP Request Routes :: execute current request


Figure: UML class > HTTP framework
Figure: UML class > HTTP framework


Figure: UML sequence > HTTP request routes :: start
Figure: UML sequence > HTTP request routes :: start


Figure: UML sequence > HTTP request routes :: execute current request
Figure: UML sequence > HTTP request routes :: execute current request