¿Cómo se conectan el front-end y el back-end?

Creo que la forma más directa de explicarlo es a través de un ejemplo:

  1. La plantilla html codificada por el desarrollador front-end:

    Hola, Nombre Apellido

  2. La plantilla html modificada por el desarrollador de back-end, para que el servidor pueda interpretarla:

    Hola, {{user.name}} {{user.surname}}

  3. La salida:
    Hola joni giuro

Cuando el desarrollador de back-end implementa su parte, agrega esas llaves en la plantilla que le dicen al servidor que debe buscar datos de la base de datos y completarlos con el nombre y apellido reales. La sintaxis que mostré es en realidad el lenguaje de plantilla de Django, cada framework / lenguaje de back-end usa el suyo.

Por supuesto, están sucediendo muchas más cosas para buscar de forma segura el nombre y apellido correctos, pero creo que esto podría ayudarlo a entender.

Las aplicaciones front-end se ejecutan en su navegador. Y las aplicaciones de fondo se ejecutan en un servidor remoto. Entonces, dado este hecho, al igual que cualquier otra aplicación cliente-servidor, la única interacción verdadera entre los dos está ocurriendo en la red, en forma de solicitudes y respuestas HTTP.

Claro, en muchos proyectos tendrá las vistas HTML ubicadas lado a lado con el código de fondo (por ejemplo, Ruby on Rails tiene el directorio de vistas al lado del directorio de modelos y controladores). Pero eso no cambia que esta vista HTML se represente, interprete y que cualquiera de los códigos Javascript que contiene también se ejecute en el navegador . Lo único que está haciendo el back-end con estas vistas es enviarlas al navegador y usar HTTP.

Entonces esto es cierto para todo tipo de aplicaciones web:

  • Un caso de blog simple: cuando escribe la URL de una publicación específica, su navegador está haciendo una solicitud HTTP al back-end. El back-end devuelve una respuesta HTTP que contiene el código HTML interpretado por el navegador. La única interacción entre los dos bordes es el flujo HTTP.
  • Una aplicación de una sola página, con tecnología AJAX: aquí es aún más claro que la única interacción es HTTP. La interfaz de usuario front-end con Javascript (o podría ser cualquier aplicación web, móvil o de escritorio en realidad) envía solicitudes HTTP al back-end para leer, crear, actualizar o eliminar datos. El back-end devuelve respuestas HTTP que contienen la información necesaria para que la UI / aplicación web cambie su estado, muestre datos al usuario, etc.

Por lo tanto, al final, HTML, CSS y Javascript nunca interactúan con su código de fondo. Es cierto que a veces puede usar plantillas, donde el código de fondo está reescribiendo y generando algo de HTML antes de enviarlo al navegador, pero después de eso, no hay más interacción que las simples solicitudes de red.

Varias formas, pero realmente se reduce a estos dos que operan en un ciclo bidireccional con cada clic o carga de URL:

  1. El back-end genera el front-end como corresponde a la URL solicitada.
  2. Cada clic en cualquier enlace o botón de front-end (en una aplicación web típica) activa un script de back-end para hacer algo (cargar la página siguiente e imprimir el código de front-end).

¿Tienes un formulario web? Está PUBLICANDO en el back-end, que hace lo suyo, y luego escupe el código de front-end sobre su canal de salida.

¿Tienes una función AJAX? Está pidiendo un (con suerte) pequeño script de fondo para sus actualizaciones de datos, y / o emitiendo comandos que se envían a una función de fondo.

¿Tienes scripts cron generando informes? Los scripts cron son back-end; los informes son front-end o back-end, dependiendo de si están destinados a sus clientes o su personal, y también dependiendo un poco de la terminología de su tienda. (La “sección de administrador” o “intranet” también se suele llamar back-end).

Cuando hablamos de la separación entre la presentación (front end) y la lógica (back end), esa terminología hace que casi todos los “guiones front-end” sean tanto front-end como back-end; el script hace su trabajo de “back-end” en un lenguaje del lado del servidor, y luego genera código de front-end (HTML, etc.).

More Interesting

¿Qué se puede hacer con el aprendizaje de un lenguaje de script del lado del servidor? ¿Cuál debería aprender?

¿Qué tan importante es crear un documento Léame antes o durante un proyecto de desarrollo de software?

¿Alguien está usando UDDI? ¿Se está muriendo UDDI?

¿Es ilegal o se considera copyright cuando extraigo una parte de la información en cualquier sitio y la publico en mi sitio web, vinculándola así al sitio web original?

¿JavaScript es tanto lenguaje front-end como back-end y, si es así, cómo?

¿Qué necesito saber antes de aprender desarrollo web con Python?

¿Cuál es la diferencia entre la representación del lado del cliente y del lado del servidor? ¿Por qué se requiere la representación del lado del servidor para React y Redux?

¿Cuáles son los mejores controles deslizantes de imágenes del complemento jQuery que incluyen tanto deslizar como desvanecer?

¿Qué conocimiento es necesario para aprender PHP?

¿Cuáles son algunos kits útiles de desarrollo web que ahorran más tiempo?

Cómo resolver los errores que ocurren en un entorno de producción e involucra solo los datos de algunos usuarios particulares

¿Cuál es la mejor empresa para externalizar el diseño / desarrollo web para el sitio web de mi empresa?

¿Debo omitir la parte de desplazamiento mientras aprendo jQuery?

Como desarrollador de software independiente, ¿cómo gestiona el tiempo entre obtener nuevos proyectos, implementarlos y promocionarse usted mismo?

¿Qué debo aprender como desarrollador front-end del framework ASP.NET MVC? Soy nuevo en .Net MVC, entonces, ¿es suficiente aprender bootstrap? ¿Cuáles son los controles de interfaz de usuario más utilizados en .net MVC y los controles de interfaz de usuario que necesito aprender? ¿Son suficientes HTML y HTML helper?