Un método de referencia sobre cómo actualizar el html en el servidor web en el entorno integrado

        El artículo anterior presentó brevemente la configuración del servidor web boa bajo Linux incorporado, utilizando el dispositivo de la máquina como servidor, de modo que se pueda acceder y ver cierta información del estado de ejecución de la máquina desde el navegador en la PC, lo cual es conveniente para los usuarios remotos. supervisión.

        Dado que la actualización de datos solo existe localmente en la máquina, la forma de transmitir datos entre el proceso local y el servidor es un problema.Hasta ahora, los métodos comunes en Internet son principalmente CGI y SET COOKIE.

CGI

        CGI, un método popular alrededor del milenio, y los documentos buscados en Internet son casi de la década de 2000. Aunque es muy antiguo, sigue siendo un método bueno y útil para el acceso limitado de clientes (Lian es viejo, pero aún capaz) Arroz !), su proceso de uso es agregar una acción de formulario (form action="xxx.cgi") en el html al que accede el cliente, indicando que cuando se envíe el formulario (enviar), se llamará al programa xxx.cgi y Este programa se puede usar en python, completado en Perl, C/C++ y otros lenguajes, el contenido es analizar los datos transmitidos por html a través de getenv ("QUERY_STRING") o leer la entrada estándar (el primero es el modo GET y el este último es el modo POST), y luego imprimir línea por línea en el CGI a través del modo printf. Emitir el contenido de una página para que se muestre como salida, de modo que el contenido que se muestra en el navegador también se actualice en consecuencia.

        Pero si una página tiene miles de líneas, entonces no es aplicable.

ESTABLECER COOKIES

El proceso es más o menos similar a CGI, y a continuación se proporciona un ejemplo de código simple.

índice.html

<html>
 <head>
 <title>获取CGI数据</title>
 </head>
 <body>
  <form action="cgi-bin/getdata.cgi" method="get">
     <input type="submit" value="获取CGI中的数据 &rarr;">
  </form>
 </body>
</html>

getdata.c (compilado de forma cruzada en un archivo con el sufijo cgi)

#include <stdio.h>
#include "cgic.h"
#include <string.h>
#include <stdlib.h>
int cgiMain() 
{  

	printf("Set-Cookie: %s=%s;  path=/\r\n","Data","abcd");
	//设置一个名为Data数据为"abcd"的Cookie
	printf("Content-type:text/html;charset=utf-8\n\n");//cgiHeaderContentType("text/html");
	printf("<HTML><BODY>\n");
	printf("<HEAD>\n");
	printf("<meta http-equiv=\"Refresh\" content=\"0; URL=../showCookie.html\">\n");   
	//设置跳转到当前目录下的showCookie.html页面
	printf("<TITLE>Cookie</TITLE>\n");
	printf("</HEAD>\n");
	printf("</BODY>\n");
	printf("</HTML>\n");

	return 0;
}

mostrarCookie.html

<html>
 <head>
<script type="text/javascript" >
function getCookie(c_name)
{
    if (document.cookie.length>0)
    {
         c_start=document.cookie.indexOf(c_name + "=")
         if (c_start!=-1)
         { 
            c_start=c_start + c_name.length+1 
            c_end=document.cookie.indexOf(";",c_start)
         if (c_end==-1) c_end=document.cookie.length
         return unescape(document.cookie.substring(c_start,c_end))
        } 
    }
return ""
}
</script>
 <title>显示Cookie数据</title>
 </head>
<body>
  <form >
    显示Cookie中的数据: Data=
    <input name="lignt_now" type="text" id="data_text"  />
  </form>
<script type="text/javascript" >
    bang_text= document.getElementById('data_text');            
    bang_text.value =getCookie('Data')
</script>
</body>
</html>

Configure la cookie en el archivo cgi y organice el valor de la palabra clave 'Data' como "abcd". En el showCookie.html al que salta, obtenga "abcd" a través de getCookie('Data') y muéstrelo en la interfaz para lograr el propósito de actualizar.

        Sin embargo, si el navegador desactiva la función de cookies (por ejemplo, si no desea que el navegador registre el nombre de usuario y la contraseña), este método fallará.

        Los dos métodos anteriores usan cgi y printf, ambos tienen ventajas y desventajas, así que utilícelos según corresponda.

        El tercer método se describe principalmente a continuación.

SED

        Los estudiantes que están más familiarizados con Linux deben saber que sed es en realidad un comando bajo Linux para modificar el contenido de las líneas de los archivos de texto. Así es, este método no utiliza los métodos cgi y printf anteriores, sino que simplemente reemplaza una línea de html para actualizar el contenido de la página web. Por ejemplo, para modificar el contenido de la línea 23, solo necesita ejecutar sed -i ' 23c hola mundo' index.html servirá.

        Pero también hay desventajas. Por ejemplo, el navegador debe deshabilitar las funciones de cookies para evitar que la página se actualice. Otro ejemplo es la necesidad de actualizar manualmente la página para mostrar el contenido más reciente.

        Permítanme contarles un pequeño episodio, cuando el navegador está configurado para deshabilitar las cookies e inicia sesión en CSDN escaneando el código QR, ocurrirá un evento en el que el código QR no es válido (el teléfono móvil indica que el inicio de sesión fue exitoso, y la página del navegador muestra que el código QR no es válido), después de cancelar la desactivación, el escaneo nuevamente funciona bien.

Supongo que te gusta

Origin blog.csdn.net/DIANZI520SUA/article/details/131105649
Recomendado
Clasificación