0. Introducción, ¿por qué necesitamos galletas y sesiones?
Debido a que las solicitudes HTTP son apátridas (el estado de inicio de sesión del usuario no se puede registrar, etc.), se necesita un cierto mecanismo para guardar el estado de inicio de sesión del usuario y otra información. La próxima vez que acceda al servicio web, no necesita verificar si inicia sesión u otro estado nuevamente. El mecanismo de sesión y el mecanismo de cookies son soluciones en el lado del servidor y el navegador, respectivamente.
1. Acerca de las galletas
1.1 ¿Qué es una galleta?
Cookie, original de significado cookies. Se utiliza para almacenar información de estado del usuario en el lado del navegador y luego devolver esta parte de la información al backend al acceder al backend.
El contenido de las cookies incluye principalmente: nombre, valor, tiempo de vencimiento, ruta y dominio
1.2 Categoría de cookies
Las cookies de cookies de sesión que no establecen el tiempo de vencimiento se guardan en la memoria del navegador. Si el navegador está cerrado, las galletas serán destruidas. (a menudo utilizado como sesión)
Las cookies normales establecen el tiempo de vencimiento y guárdelo en el disco duro
1.3 Cómo aplicar
Al iniciar una solicitud: el navegador verifica todas las cookies almacenadas. Si el alcance de la acción declarado por una cookie (determinada por la ruta y el dominio) es mayor o igual que la ubicación del recurso a solicitar, la cookie se adjunta al encabezado de solicitud HTTP del recurso de solicitud y se envía al servidor.
Al procesar solicitudes: en el lado del servidor, la información de cookies contenida en el encabezado de solicitud generalmente se verifica (como la verificación de inicio de sesión). Si se pasa el cheque, se puede realizar el procesamiento comercial real.
Si la verificación falla, como no encontrar la cookie o la información de la cookie es incorrecta (tal vez forjada), salte para iniciar sesión y después de iniciar sesión, devuelva la información de la cookie en la respuesta. El navegador lo guardará en el disco duro o la memoria en función de la información de cookies devuelta para el próximo uso. ,
2. Sobre la sesión
2.1 ¿Qué es la sesión?
La sesión se utiliza para guardar información de estado del usuario en el lado del servidor.
2.2 Cómo usar
Cuando el navegador inicia una solicitud: el servidor leerá primero la información de la sesión en el encabezado de solicitud. Si no se encuentra la información de la sesión o el SessionId no se puede recuperar localmente, si no es así, se generará y almacenará un nuevo SessionID en el disco duro o Memcache del servidor.
El navegador recibe una respuesta: el SessionID devuelto se guardará en la memoria local para su uso en la siguiente solicitud. Una de las implementaciones de la sesión guardada localmente es guardar información sobre las cookies, pero de hecho, las cookies no son la única solución para guardar sesiones. También es posible usar reescrituras de URL (agregue la ID de sesión directamente detrás de la ruta de URL).
3. Las principales diferencias entre cookies y sessiond
1. Hay una ligera diferencia en la ubicación de almacenamiento
Los datos de cookies se almacenan en el navegador del cliente y no es necesario guardar en el lado del servidor. Los datos de la sesión se colocan en el servidor y también hay una copia de la memoria local.
2. Diferente seguridad
Las cookies no son tan seguras como la sesión. Debido a que las cookies ordinarias se guardan en el disco duro local, los piratas informáticos pueden lanzar ataques XS forjando URL y otros medios para obtener cookies en el estado guardado en el disco duro local, y luego robar la información confidencial de los usuarios.
La sesión es diferente. Solo cuando se lanza un ataque XSS cuando un usuario inicia sesión en este sitio web se puede obtener la información de la sesión. Después de cerrar el navegador, la sesión será destruida. La seguridad es mejor que las cookies.
3. Diferencias en el soporte de dominio cruzado
Las cookies admiten el acceso al dominio cruzado. Por ejemplo, si el atributo de dominio se establece en ".biaodianfu.com", entonces todos los nombres de dominio con el sufijo ".biaodianfu.com" pueden acceder a la cookie. Las cookies de dominio cruzado ahora se usan ampliamente en Internet, como Google, Baidu, Sina, etc. La sesión no es compatible con el acceso al dominio cruzado. La sesión solo es válida dentro del nombre de dominio en el que se encuentra.
4. La diferencia en la presión del servidor
La sesión se almacena en el lado del servidor, y cada usuario generará una sesión. Si hay muchos usuarios que acceden simultáneamente, generará muchas sesiones y consumirá mucha memoria. Por lo tanto, es poco probable que sitios web como Google, Baidu y Sina con visitas concurrentes extremadamente altas puedan rastrear la sesión. Teniendo en cuenta la reducción del rendimiento del servidor, se debe usar cookie.
5. Diferentes métodos de acceso
Las cadenas ASCII solo se pueden almacenar en cookies. Si se requieren caracteres unicode o datos binarios, primero se requiere codificación. No se puede acceder a los objetos Java directamente en las cookies. Para almacenar información ligeramente compleja, usar cookies es bastante difícil.
La sesión puede acceder a cualquier tipo de datos, incluidos, entre otros, cadena, entero, lista, mapa, etc., en la sesión, los granos Java e incluso las clases de Java, los objetos, etc. se pueden almacenar directamente, lo cual es muy fácil de usar. Puede pensar en la sesión como una clase de contenedor Java.
6. El tamaño de las cookies es limitado
Los datos guardados por una sola cookie no pueden exceder el 4K, y muchos navegadores restringen un sitio para ahorrar hasta 20 cookies.
La comprensión simple anterior de la sesión y las cookies es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.