TARDÍGRADOS

Ciencia en español -ʟᴀ ʀᴀᴢóɴ ᴇsᴛá ᴀʜí ғᴜᴇʀᴀ-

JHS: Java Hypertext Script

Posted by Albert Zotkin on April 23, 2021

Hola amigo de Tardígrados . Me parecía injusto, que siendo NODE.js una plataforma de programación tan potente, con la utilización del lenguaje Javascript, no pudiera competir en igualdad de condiciones con el lenguaje PHP, en cuanto a la creación dinámica de paginas web se refiere.
Es habitual ver plantillas de páginas web donde aparecen secciones bien acotadas de código PHP. Eso quiere decir que esas páginas están destinadas a alojarse en un servidor, y cuando un cliente visita el servidor, el código PHP de la página se ejecuta antes de ser enviada. Pongamos un ejemplo sencillo. Sea la siguiente plantilla de página web:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php 
$name ="Albert";
?>
<html><head>
<style>
	body{
		background-color:#feffee;
		color:red;
		font-weight:bold;
		font-size:18pt;
 
	}
	#nombre{
		color:green;
		font-weight:bold;
		font-size:20pt;
	}
</style>	
</head>
<body >
<div><p>Mi nombre es: <span id="nombre"><?php echo $name; ?></span></p></div>
</body>
</html>
Esa sencilla página web se vería en el navegador del visitante (cliente) así:

Es decir, vemos que en el código fuente de la página antes de ser enviada por el servidor, existen dos áreas bien acotadas para código PHP. Esas áreas se definen con la clausula (tag) de apertura <?php y la de cierre ?>. Todo lo que está fuera de esas cláusulas es código html, u otras clases de códigos, como javascript del lado del cliente. Para que esa página, que es una mezcla de html y php, funcione, el archivo que se aloja en el servidor tiene que tener la extension php. En nuestro caso, el archivo se llama test-2.php. Si echamos un vistazo al código fuente de la pagina web que nos presenta el servidor, vemos que no aparece ningún código PHP. Sólo vemos código PHp ejecutado, es decir, todo lo que PHP escribió mediante la función echo o alguna otra función más de inprimir. Si el administrador de ese servidor, por la causa que sea, le pone la extensión html a ese archivo mixto, el visitante podrá ver el código php que hay escrito, y la página se presentará incorrectamente. Cambiemos la extensión a nuestro archivo test-2.php por test-2.html, y veamos qué es lo que aparece en nuestro navegador cuando visitamos ese servidor:

De momento, lo que vemos es que ya no aparece el nombre Albert, porque estaba definido dentro de la variable $name del código php. Si ahora echamos un vistado al código fuente de la página podremos ver todo ese código php, y eso es un grave error del webmaster de ese servidor. Porque, efectivamente, además de que ese código php no se ejecuta al ser requerida la página por el cliente, es enviado junto con todo el código restante, que si es código del lado del cliente. PHP es sencillamente código siempre del lado del servidor, el cliente nunca debería ver los scripts php al requerir páginas web dinámicas escritas en ese lenguaje. Con JavaScript existe aún más confusión, ya que existe JavaScript del lado del servidor, y JavaScript del lado del cliente-navegador (browser). Esencialmente, el paradigma de JavaScript del lado del servidor se llama NODE.js. Pero, con NODE.js podemos hacer no Ese entorno de programación multiplataforma posee pocas caracteristicas visuales, pues sólo es capaz de imprimir texto en la consola, y no está pensado para servir páginas web dinámicas como sí hace, y muy bien, PHP. Aunque sí puede hacerlo tambien muy bien, si el programador dedica algún tiempo a perfeccionar esas carateristicas.
Vamos a ver cómo podemos servir páginas dinámicas mediante NODE.js de la misma forma que lo hace PHP. Para ello lo primero que vamos a hacer es nuestro servidor de páginas web en NODE.js. Nuestrp servidor web lo pondremos a la escucha por el puerto 5774 de nuestra computadora, y a todo aquel que lo visite, le saludaremos desde nuestra página de inicio, que llamaremos index.jhs.
Evidentemente, para todo este proyecto, debemos tener instalado ya NODE.js en nuestra computadora, y funcionando correctamente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const Net = require('net');
const server = new Net.Server();
var port = 5774;
server.listen(port, function() {
	console.log('\x1b[32mNuestro\x1b[0m \x1b[92mSERVIDOR'+ 
	'LOCAL\x1b[0m \x1b[32ma la escucha por '+  
	'el PUERTO\x1b[0m \x1b[93m5774\x1b[0m');    	 
	});
	
server.on('connection', function(socket) {
	socket.on('data', function(chunk) {
		socket.write([
		'HTTP/1.1 200 OK',
		'Content-Type: text/html',
		'Accept-Ranges: bytes',
		'Connection: keep-alive',
		].join('\n') + '\n\n'
		);			
		var html = 
		"<!doctype html>\r\n"+
		'<html lang="es"><head>'+
		'<meta charset="utf-8">'+
		'<meta name="viewport" content='+
		'"width=device-width, initial-scale=1">'+
		'<meta http-equiv="content-type" content='+
		'text/html; charset=utf-8"></head>'+
		'<body><div align="center"><h1>FORMATEANDO '+
		'CARACTERES ESPECIALES DE UTF-8</h1>'+
		'<h2>áéíóúñü-°!"#$%&/()=?¡@-ÁÉÍÓÚÑÜ</h2>Esto '+
		'es una prueba con la ñ y los acentos ò, y,'+
		'<br>como sabrás, estás visitando nuestro<br>'+
		'<b>SERVIDOR LOCAL</b> por el <b>PUERTO '+
		'5774</b></div></body></html>';
    			  				   
		socket.write(html);
		socket.end();		
    });  
});
Guardamos este script en nuestro directorio de trabajo con el nombre server.js, y lo ejecutamos en nuestra consola (Windows MS-DOS, Linux, la que tengas), mediante la linea de comandos: node server.js, o simplemente con node server. Entonces, si todo ha ido bien, aparecerá en nuestra consola el log siguiente:
Ahora ya podemos abrir un navegador y visitar la página de nuestro servidor, cuya dirección será http://localhost:5774/. Este servidor sólo será accesible dentro de tu red local LAN, porque, presumiblemente, no habrás hecho un forward de ese puerto 5774 en tu router para tu conexión de internet. Y la pagina web que veremos en nuestro navegador será algo así:
Ahora ya estamos en disposición de mejorar nuestra pagina web, y hacer nuestro Java Hypertext Script . Pasemos a la siguiente página

Leave a comment