¿Puedes explicar lo que hace un lenguaje de fondo, en términos simples? ¿Qué tiene que ver con un servidor y de qué tipo de servidor están hablando?

Cuando un cliente (una página web) realiza una llamada a un servidor, esto es lo que sucede:

  1. Se realiza una solicitud GET o POST desde el navegador a un dominio o IP
    1. Esto puede suceder porque hizo clic en un enlace, o a través de JavaScript (o algún marco JS), o se activó por otras acciones.
    2. Como ejemplo, cuando hace clic para responder una pregunta en Quora, aparece una ventana modal, probablemente propagada a través de una de estas llamadas, y del mismo modo, cuando se hace clic en “Enviar”, se realiza otra llamada.
  2. El dominio se resuelve en una IP a través de una serie de pasos (en los que no entraré), se asigna una ruta y la información que el navegador debe enviar se empaqueta en una SOLICITUD
  3. La SOLICITUD se transmite a un servidor web
    1. El servidor web es una pieza de software que se ejecuta en un servidor en algún lugar, ejemplos de esto incluyen Apache, NginX, etc.
  4. El servidor web pasa esta información a la aplicación web en función de la configuración de su servidor web
    1. Esto se hace a través de alguna interfaz de aplicación web, de las cuales hay muchas. Rails tiene tendencia a usar Passenger (que puede integrarse en NginX o agregarse a Apache); Django tiende a usar uWSGI, que puede agregarse a Apache o ejecutarse independientemente a través de su propio demonio independiente; Las aplicaciones J2EE se ejecutan en un contenedor de servlets como Tomcat, que, como uWSGI o gUnicorn (en Rails), pueden ejecutarse de forma independiente o recibir tráfico a través de un servidor web como Apache o NginX.
    2. Si esto es demasiado complicado para usted, en el 99% de los casos, el servidor web es algo así como Apache o NginX, y la aplicación web se monta utilizando un software que está integrado en el servidor web o con el que el servidor web se comunica a través de un socket.
    3. Algunas cosas, como los activos estáticos, pueden tener un paso de su servidor web para permitir el servicio de estos activos sin necesidad de comunicarse con la aplicación web en sí.
  5. Luego, la aplicación web enruta la solicitud de manera adecuada utilizando un enrutador de URL (en la mayoría de los casos), por ejemplo, el urls.py que encontraría en los proyectos de Django, o el route.rb que encontraría en Rails, que determina qué hacer con el solicitar una vez que llegue a la aplicación web.
  6. A partir de ahí, la solicitud se procesa y se devuelve directamente al consumidor.
    1. Esto a menudo incluye la interacción con una base de datos (modelo) o de otro tipo, y la solicitud puede devolverse en uno de muchos formatos, por ejemplo, JSON, XML, texto o HTML.

Un lenguaje de fondo generalmente se refiere a servidores web.

Simplemente, cuando se conecta a un servidor web a través de un navegador, su navegador ejecuta código localmente, y otro código se ejecuta del lado del servidor.

El código que realmente hace cosas como acceder a bases de datos, ejecutar algoritmos o ejecutar cosas se llama “back end” porque nunca lo miras.

La mayoría del código de back-end se ejecutará en el servidor en lugar de en su navegador, ya que necesita acceder a los recursos que el servidor podría tener cerca, pero su navegador no lo hará.

Se pueden usar varios idiomas para los idiomas “back end”. En los años 90 y 2000, PHP fue el lenguaje de acceso para back-end. hoy en día, se puede usar casi cualquier lenguaje de script confiable. Las opciones populares incluyen Python (varios frameworks utilizan Python: DJango, Flask y webPy para nombrar algunos), Ruby (Ruby on Rails, principalmente) y JavaScript (Node JS). Sin embargo, cualquier código que se ejecute en un servidor puede considerarse back-end.

Sin embargo, el código en su navegador puede considerarse “back-end” porque realmente, back-end realmente se refiere a todo lo que va “detrás de escena”. Cualquier cosa que no mejore visualmente la página web puede considerarse back-end.

More Interesting

¿Necesita saber C / C ++ para el desarrollo web (creación de sitios web / aplicaciones web, programación / trabajo de fondo)?

En MS Access, ¿cómo divido mi base de datos en el front-end y el back-end?

Soy un desarrollador front-end y quiero aprender back-end. Cuál es la opción más interesante y estable para el desarrollo completo: Node.js con Express o Sails; o Python con frasco o pirámide?

¿Existe algún tutorial de desarrollo web completo con JavaScript (frontend, back-end) que comience con lo básico y no sea abrumador?

Soy un desarrollador de Android que pasa a un rol de servidor de fondo. ¿Qué cosas debo aprender primero?

¿Cuánto de una vista dinámica desea renderizar usando un motor de plantillas (como Moustache)?

¿Cómo puedo convertirme en desarrollador web front-end y back-end? Actualmente sé HTML, CSS, hice un poco de Java y Ruby on rails. ¿Cuántas horas necesito?

¿Has conocido a un desarrollador de Full Stack que está entusiasmado con el front-end y el back-end?

Si eres un desarrollador web full stack, ¿eso significa que aprendes tanto front-end como back-end (ambas pilas)?

¿Cuáles son los pros y los contras de escribir el backend en Go vs Erlang vs Python?

¿Es obligatorio aprender ES6 para ReactJS? ¿ReactJS es bueno para el desarrollo tanto back-end como front-end? ¿Cuál debería ser el proceso paso a paso de aprenderlo para alguien que acaba de usar JavaScript para DOM?

¿Para cuál hay más demanda en el desarrollo de sitios web: front-end o back-end?

¿Qué debo elegir? ¿Desarrollo front-end o desarrollo back-end?

¿Por qué mi jefe no me deja reescribir todos nuestros backends actuales en Node.js?

¿Qué es un desarrollador de back-end en desarrollo móvil?