Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
¿Cuál es la diferencia entre la programación del lado del cliente y del lado del servidor?

tengo este codigo:

 <script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script>

¿Por qué esto no escribe "barra" en mi archivo de texto, pero alerta "42"?


NB: las revisiones anteriores de esta pregunta se referían explícitamente a PHP en el servidor y JavaScript en el cliente. La naturaleza esencial del problema y las soluciones es la misma para cualquier par de idiomas cuando uno se ejecuta en el cliente y el otro en el servidor (incluso si son el mismo idioma). Tenga esto en cuenta cuando vea respuestas que hablan de idiomas específicos.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Su código se divide en dos partes completamente separadas, el lado del servidor y el lado del cliente .

 | ----------> HTTP request | +--------------+ | +--------------+ | | | | | | browser | | | web server | | (JavaScript) | | | (PHP etc.) | | | | | | +--------------+ | +--------------+ | client side | server side | <---------- HTML, CSS, JavaScript |

Los dos lados se comunican a través de solicitudes y respuestas HTTP. PHP se ejecuta en el servidor y genera algo de HTML y quizás código JavaScript que se envía como respuesta al cliente donde se interpreta el HTML y se ejecuta el JavaScript. Una vez que PHP ha terminado de generar la respuesta, el script finaliza y no sucederá nada en el servidor hasta que ingrese una nueva solicitud HTTP.

El código de ejemplo se ejecuta así:

 <script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script>

Paso 1, PHP ejecuta todo el código entre las etiquetas <?php ?> . El resultado es este:

 <script type="text/javascript"> var foo = 'bar'; var baz = 42; alert(baz); </script>

La llamada file_put_contents no resultó en nada, solo escribió " + foo + " en un archivo. El <?php echo 42; ?> la llamada resultó en la salida "42", que ahora está en el lugar donde solía estar ese código.

Este código HTML/JavaScript resultante ahora se envía al cliente, donde se evalúa. La llamada de alert funciona, mientras que la variable foo no se usa en ninguna parte.

Todo el código PHP se ejecuta en el servidor incluso antes de que el cliente comience a ejecutar JavaScript. No queda ningún código PHP en la respuesta con el que JavaScript pueda interactuar.

Para llamar a algún código PHP, el cliente deberá enviar una nueva solicitud HTTP al servidor. Esto puede suceder utilizando uno de los tres métodos posibles:

  1. Un enlace, que hace que el navegador cargue una nueva página.
  2. Un envío de formulario, que envía datos al servidor y carga una nueva página.
  3. Una solicitud AJAX , que es una técnica de Javascript para realizar una solicitud HTTP regular al servidor (como 1. y 2.), pero sin salir de la página actual.

Aquí hay una pregunta que describe estos métodos con mayor detalle.

También puede usar JavaScript para hacer que el navegador abra una nueva página usando window.location o enviar un formulario, emulando las posibilidades 1. y 2.

over 4 years ago · Santiago Trujillo Denunciar

0

Para determinar por qué el código PHP no funciona en el código JavaScript , debemos comprender qué son los lenguajes del lado del cliente y del lado del servidor , y cómo funcionan.

Lenguajes del lado del servidor (PHP, etc.) : recuperan registros de bases de datos, mantienen el estado a través de la conexión HTTP sin estado y hacen muchas cosas que requieren seguridad. Residen en el servidor, estos programas nunca tienen su código fuente expuesto al usuario.

Imagen de wikipedia_http://en.wikipedia.org/wiki/File:Scheme_dynamic_page_en.svg atributo de imagen

Entonces, puede ver fácilmente que los lenguajes del lado del servidor manejan las solicitudes HTTP y las procesan y, como dijo @deceze, PHP se ejecuta en el servidor y genera algo de HTML, y tal vez código JavaScript, que se envía como respuesta al cliente, donde se interpreta el HTML y se ejecuta JavaScript.

Por otro lado, los lenguajes del lado del cliente (como JavaScript) residen en el navegador y se ejecutan en el navegador. Las secuencias de comandos del lado del cliente generalmente se refieren a la clase de programas informáticos en la web que se ejecutan en el lado del cliente, mediante el navegador web del usuario, en lugar del lado del servidor .

JavaScript es visible para el usuario y se puede modificar fácilmente, por lo que, por cuestiones de seguridad, no debemos confiar en JavaScript.

Entonces, cuando realiza una solicitud HTTP en el servidor, el servidor primero lee el archivo PHP cuidadosamente para ver si hay tareas que deben ejecutarse y envía una respuesta al lado del cliente. Nuevamente, como dijo @deceze, *Una vez que PHP ha terminado de generar la respuesta, el script finaliza y no sucederá nada en el servidor hasta que ingrese una nueva solicitud HTTP .*

Representación grafica

Fuente de imagen

Entonces, ¿qué puedo hacer si necesito llamar a PHP? Depende de cómo necesite hacerlo: ya sea recargando la página o usando una llamada AJAX.

  1. Puede hacerlo recargando la página y enviando una solicitud HTTP
  2. Puede realizar una llamada AJAX con JavaScript; esto no requiere volver a cargar la página

Buena lectura:

  1. Wikipedia: secuencias de comandos del lado del servidor
  2. Wikipedia: secuencias de comandos del lado del cliente
  3. Madara Uchiha: Diferencia entre la programación del lado del cliente y del lado del servidor
over 4 years ago · Santiago Trujillo Denunciar

0

Su Javascript se ejecutará en el cliente, no en el servidor. Esto significa que foo no se evalúa en el lado del servidor y, por lo tanto, su valor no se puede escribir en un archivo en el servidor.

La mejor manera de pensar en este proceso es como si estuviera generando un archivo de texto dinámicamente. El texto que está generando solo se convierte en código ejecutable una vez que el navegador lo interpreta. Solo lo que colocas entre las etiquetas <?php se evalúa en el servidor.

Por cierto, tener el hábito de incrustar piezas aleatorias de lógica PHP en HTML o Javascript puede conducir a un código muy complicado. Hablo desde una experiencia dolorosa.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda