La traducción china de Session se llama "conversación", y su significado original se refiere a una serie de acciones/mensajes que tienen un principio y un final. Por ejemplo, al realizar una llamada telefónica, la serie de procesos desde que levantamos el teléfono hasta que terminamos. marcar para colgar el teléfono se puede llamar sesión. La comprensión actual de la sesión en la sociedad es muy confusa: a veces podemos ver las palabras "Durante una sesión del navegador, ...", la sesión aquí se refiere al período desde que se abre hasta el cierre de una ventana del navegador y también se puede ver Cuándo; Refiriéndose a la oración "el usuario (cliente) durante una sesión", puede referirse a una serie de acciones del usuario (generalmente una serie de acciones relacionadas con un propósito específico, como iniciar sesión, comprar productos y pagar). Sin embargo, un proceso de compra en línea de este tipo a veces solo puede referirse a una conexión; la diferencia solo se puede inferir del contexto.
Sin embargo, cuando la palabra Sesión está asociada con un protocolo de red, a menudo implica "conexión". y/o "Mantener estado" tienen dos significados. "Orientado a la conexión" significa que las partes que se comunican primero deben establecer un canal de comunicación antes de comunicarse, como hacer una llamada telefónica, la comunicación no puede comenzar hasta que la otra parte responda el teléfono. "Estado" significa que la parte que se comunica puede asociar una serie de mensajes para que los mensajes dependan unos de otros. Por ejemplo, un camarero puede reconocer a un antiguo cliente que vuelve y recordar que la última vez el cliente le debía un dólar a la tienda. Estos ejemplos de un tipo son "una sesión TCP" o "una sesión POP3".
Dado que esta confusión es irreversible, es difícil tener un estándar unificado para definir la sesión, y cuando leemos sobre la sesión, solo tenemos uno. Se puede entender infiriendo del contexto: por ejemplo, cuando hacemos una llamada telefónica, desde el momento en que realizamos la llamada hasta el momento en que colgamos, el teléfono permanece conectado, por lo que este estado de conexión se llama Sesión Es pública. variable que siempre existe durante la interacción entre el visitante y todo el sitio web Cuando el cliente no admite COOKIE, para garantizar la exactitud y seguridad de los datos, la variable Sesión se asignará al visitante que visita el sitio web. el llamado ID de sesión se almacena en la cookie del cliente o se pasa a través de la URL.
La invención de Session llena las limitaciones del protocolo HTTP: el protocolo HTTP se considera un protocolo sin estado y no puede conocer el estado de navegación del usuario. está en uso Una vez que el servidor completa la respuesta, el servidor pierde contacto con el navegador. Esto es consistente con el propósito original del protocolo HTTP. El cliente solo necesita solicitar al servidor que descargue ciertos archivos. El servidor es necesario registrar el comportamiento pasado de cada uno, y cada solicitud es independiente, al igual que la relación entre un cliente y una máquina expendedora o un hipermercado ordinario (sin membresía),
por lo tanto, a través de Sesión (cookie), es otra. Una solución) registra la información relevante del usuario para confirmarla cuando el usuario vuelve a realizar una solicitud al servidor web. La invención de sesiones permite al usuario guardar su información al cambiar entre varias páginas. No se puede usar en la página siguiente (aunque el formulario y la URL también se pueden implementar, pero estos son métodos muy insatisfactorios), y las variables registradas en la sesión se pueden usar como variables globales.
Entonces, ¿para qué sirve la sesión? Todo el mundo ha utilizado el carrito de compras al comprar en línea. Puede agregar los productos que elija al carrito de compras en cualquier momento y finalmente ir a la caja para pagar. Durante todo el proceso, el carrito de compras ha desempeñado la función de almacenar temporalmente los productos seleccionados. Se utiliza para rastrear las actividades del usuario en el sitio web. Esta es la función de sesión. Se puede utilizar para la autenticación de la identidad del usuario y el estado del programa. grabación y entre páginas.
La tecnología COOKIE se utiliza en la implementación de la sesión. La sesión guardará una COOKIE que contiene Session_id (número de sesión) en el lado del cliente; guardará otras variables de sesión en el lado del servidor, como Session_name, etc. Cuando el usuario solicita el servidor, el Session_id también se envía al servidor. Al extraer las variables guardadas en el lado del servidor a través de Session_id, puede identificar quién es el usuario. Al mismo tiempo, no es difícil entender por qué a veces falla la sesión.
Cuando el cliente deshabilita la COOKIE (haga clic en "Herramientas" - "Opciones de Internet" en IE, haga clic en "Seguridad" - elemento "Nivel personalizado" en el cuadro de diálogo emergente y configure "Permitir COOKIE por conversación" en deshabilitado), Session_id no se aprobará y la sesión no será válida en este momento. Sin embargo, php5 puede verificar automáticamente el estado de las cookies en la plataforma Linux/Unix. Si el cliente está deshabilitado, el sistema agregará automáticamente el Session_id a la URL y lo pasará. Los hosts de Windows no tienen esta función.
Funciones y uso comunes de la sesión
Session_start (): inicia una sesión o devuelve una sesión existente.
Nota: Esta función no tiene parámetros y el valor de retorno es verdadero. Si utiliza sesiones basadas en cookies, el navegador no debe tener ningún resultado antes de usar Session_start(); de lo contrario, se producirá el siguiente error:
Advertencia: No se puede enviar el limitador de caché de sesión: los encabezados ya se enviaron (la salida comenzó en /usr/local/apache/ htdocs/cga/member/1.php:2)...
Puede iniciar Session.auto_start=1 en php.ini, de modo que no necesite llamar a Session_start() cada vez antes de usar Session. Pero existen algunas limitaciones para habilitar esta opción. Si Session.auto_start está realmente habilitado, no puede colocar objetos en la sesión porque la definición de clase debe cargarse antes de iniciar la sesión para recrear el objeto en la sesión.
Todas las variables registradas se serializarán una vez completada la solicitud. Las variables que están registradas pero no definidas se marcan como no definidas. Estas variables tampoco son definidas por el módulo de sesión en accesos posteriores a menos que el usuario las defina más tarde.
Algunos tipos de datos no se pueden serializar y, por lo tanto, no se pueden guardar en la sesión. Incluyendo variables de recursos u objetos con referencias circulares (es decir, un objeto pasa una referencia a sí mismo a otro objeto).