En mecanismo de la cookie, y Sesión de emergencia

I. Introducción

  Este blog para hablar de Webaplicaciones ampliamente utilizados Cookie, Sessionasí como Tokenlos mecanismos, que Webdesempeñan un papel vital en la aplicación, sino también los sitios de prueba de alta frecuencia en la entrevista. Este blog les presento principalmente los conceptos y principios de estas tres cosas se aplican, y las diferencias entre ellos.


En segundo lugar, el texto

  2.1 ¿Por qué se necesitan

  Ante todo, la primera pregunta, ¿por qué necesitamos estas tres cosas? Demasiado poco entendimiento HTTPdebe ser consciente de que HTTPel protocolo es un protocolo sin estado. Lo que no tiene estado? Es decir, HTTPel servidor para cada solicitud por igual, no registrar el estado de cada solicitud, como que se emite, todas las solicitudes es ajeno a ella. Incluso si envía dos solicitudes sucesivas al mismo servidor, es, y esto es dos solicitudes que no tienen relación. Sin embargo, nos encontraremos un fenómeno tal, cuando nos registramos en un sitio web, el servidor parecía saber, nosotros enviamos una petición, podemos obtener una respuesta asociada con la nuestra. Por ejemplo, hemos Taobao Después de inicio de sesión, haga clic en el carrito de la compra, será capaz de ver nuestros propios productos agregados; y si no firmamos adentro, estarán cortadas, saltar a la página de inicio de sesión. ¿Por qué es esto? No quiere decir HTTPno tiene estado ella. De hecho, esto depende de tres mecanismos anteriores.


  CookieDe hecho, algunos de los datos de texto almacenados en el navegador del ordenador, que es key-valuela forma, que contiene alguna información de nuestra cuenta, así como servidores. El hecho de enviar una solicitud a un servidor, el servidor puede querer que almacenemos algunos datos a nivel local, esta vez juntos, será en la cabecera de un nombre de paquete de respuesta es Set-Cookie(o Set-Cookie2, dependiendo de la versión) línea de cabecera, seguido por la navegación esperanza se almacena en los datos locales. Navegador recibe el paquete de respuesta, en el que se encuentran set-Cookielos campos, los datos contenidos en él serán almacenados en el ordenador, sino también de grabación de direcciones del servidor. Que estos datos ¿para qué sirve? En nuestra próxima enviar una solicitud al servidor, tales Cookieserán junto con el mensaje de solicitud al servidor, el servidor recibe los datos de Cookielos datos, con el fin de ser capaz de identificar la solicitud de transmisión de corriente que es un cliente, o pueden ser identificados el cliente, con el fin de dar una respuesta correspondiente a la operación. Este proceso se muestra a continuación:

  Dado que Cookiese guarda en un archivo local, por lo que se puede almacenar durante largos períodos de tiempo solo necesita ajustar el tiempo de expiración más largo. También hay que señalar que, debido Cookiea lo local, por lo que es en realidad un almacenamiento de datos no segura, lo que permite al navegador del cliente deshabilitado Cookie. Además, la Cookiecapacidad de guardar el tamaño de datos también está limitado, solo cookie no puede exceder de los datos almacenados 4K.


  2.3 Sesión

  SessionLa traducción se llama: la sesión, lo que indica que se trata de un cliente y el servidor de conversación. Y Cookieno es lo mismo, Sessionson mantenidos por el servidor. Cuando un cliente envía una solicitud al servidor, se creará el servidor para iniciar el cliente de la solicitud de un objeto y se almacena en un conjunto de servidores, mientras que la generación de una única SessionIdpara identificar el objeto, sino de la información del usuario actual se puede guardar en este objeto. Cuando el servidor envía un mensaje de respuesta para el usuario, será SessionIdcolocado en el paquete de respuesta Set-Cookiede cabeza, el usuario recibe el paquete de respuesta, cuando el detectado Set-Cookiefila de encabezado, contenida en el mismo SessionIdse almacena localmente. La próxima vez que el cliente envía una solicitud al servidor, SessionIddesde la Cookielectura a, y se envía al servidor. Servidor detecta SessionIddespués de un almacenamiento Sessionde encontrar este objeto de colección SessionIdque corresponde al objeto, para obtener información sobre el usuario. Los usos más comunes es que los usuarios inician sesión en: Cuando un usuario inicia sesión en el servidor, Sessionalmacenar información de usuario, tales como la identidad userId. Después de recibir la petición de un usuario, consulta Sessionlos objetos, cuando contengan userId, indica que el usuario ha iniciado la sesión, y puede ser adquirido por el userIdusuario consulta de datos privada. El servidor no tiene que mantener Session, que saldrá del usuario del navegador, o no después de recibir la petición del usuario, será por algún tiempo Sessionpara borrar.

  Sin embargo, Sessionhay algunos problemas, como para cada usuario, el servidor necesita para mantener uno o más Session, si un gran número de usuarios para acceder al servidor a través del tiempo, hará que las necesidades de los servidores para mantener un gran número de Sessionobjetos, huella grave. Además, los actuales Webservidores, han adoptado la tecnología de clúster, el clúster de cada servidor Sessiones independiente, para lograr Sessionla participación es una tarea más difícil. Por último, un punto más, el navegador puede ser desactivado Cookieen este momento SessionIdno se almacenará en Cookie, esta vez el navegador es la práctica general en la URLpuesta en SessionId, así que antes de que el usuario no se cierra la página, esto SessionIdno se perderá.


  2.4 de emergencia

  TokenLa función principal es hacer el usuario de autenticación , por lo general llamamos: Token. Cuando inicia sesión en un sitio Web, introduzca la contraseña de cuenta enviado al servidor. En este punto el servidor para consultar la base de datos para verificar la contraseña de la cuenta, si la autenticación tiene éxito, el servidor de acuerdo con algún algoritmo de cifrado especial para calcular una Token(cadena de caracteres), lo envía al cliente, y la información de la identidad del usuario también se envía en el pasado, tales como userId. Después de recibir la respuesta, se Tokenalmacena en Cookieo memoria local, una solicitud de nuevo Token, y userIdse envía al servidor. Cuando el servidor recibe una petición, de acuerdo con la información relevante del cliente, el nuevo cálculo Token, si el nuevo Tokenvalor es enviado al cliente con Tokenel mismo, antes de que el usuario ha sido validado indica, el servidor puede obtener los datos directamente.

  Y no me siento Sessionalgo similar, pero en realidad la diferencia es bastante grande. informática de servidores Tokenvalores necesitan utilizar la información personal del usuario (como cliente mac地址), y el mismo sólo se conoce servidor de claves, que garantiza también que Tokenpara cada cliente es único, y por única llave propia del servidor usted sabe, por lo que los piratas informáticos no pueden simular el servidor de cálculo de Tokenvalor, a continuación, enviar solicitudes falsas. Siempre y cuando el servidor detecta un error Token, que no permitirá que la solicitud del cliente, sino que requiere el cliente para autenticar. Además, para cada solicitud, el servidor no tiene que como Sessionel mismo, excepto la identidad del cliente, es necesario calcular la vez Tokenpuede ser comparado, es decir, que no rompe HTTPla apatridia.

  Sin embargo, esto también significa que Tokenuna vez que son interceptados por otros, por otro lado puede usar su identidad, hace una petición al servidor. Por lo tanto, Tokense basa generalmente en HTTPSel uso, en lugar de en inseguro HTTPpara su uso. También se almacena en el proceso de encriptación locales se llevará a cabo en consecuencia.


  La diferencia entre los tres 2.5

   La diferencia entre (1) y Cookie de Sesión

  1. Seguridad: Session más Cookieseguridad, Sessionse almacena en el servidor, puede ver sólo su propio servidor Sessionde almacenamiento de datos, sino que Cookieestá en la memoria del cliente, leer fácilmente de manera ilegal.
  2. Los valores de los diferentes tipos de acceso : Cookielos datos almacenados en un archivo de texto, por lo que sólo permite que los datos cadena almacenada, quieren establecer otros tipos de datos necesarios para convertirlo en una cadena, Sessionse pueden almacenar en cualquier tipo de datos, ya que se almacena en un servidor memoria, esencialmente un objeto.
  3. Diferentes validez: Cookie se puede establecer por períodos largos, como a menudo utilizamos la función de inicio de sesión predeterminado, Sessionel fracaso general de un corto período de tiempo, se cierra el cliente (por defecto) o Sessiontiempo de espera se producirá un error.
  4. Diferentes tamaños de almacenamiento: solo Cookielos datos guardados no pueden exceder 4K, Sessionque pueden ser mucho más altos que los datos almacenados Cookie, pero cuando el servidor Sessiones demasiado grande, se tomarán demasiados recursos del servidor, haciendo que el servidor se ejecute lentamente.

(1) la diferencia entre la Sesión y Token

  SessionY Token, de hecho, son esencialmente diferentes, que no se utilizan en la misma cosa. SessionEl papel principal es el de almacén de sesión de información del cliente y el servidor, que es servidor necesita saber la información sobre el cliente solicitante actual, por lo que mantiene un depósito de la colección Sessionde objetos que contiene la información del cliente. Sin embargo, Sessioneste mecanismo también puede ser utilizado para la verificación, siempre y cuando el servidor tiene un cliente actual Session, y que contiene la información relevante, el servidor que los clientes actuales han sido verificados.

  Sin embargo Token, no se requiere el servidor para mantener el estado del cliente, su función es sólo para el cliente envía una solicitud al hacer la verificación, para evitar algunos ataques a la red. Sólo autenticado petición del cliente, el servidor le dará la respuesta, de lo contrario, será necesario verificarlo. Por otra parte, Tokenla autenticación de seguridad que Session. Los dos no están en conflicto, podemos utilizar el servidor Tokenal cliente para su verificación, y luego usar el SessionGuardar información de sesión.


En tercer lugar, el resumen

  En la cara Cookie, Sessiony de Tokenhecho una introducción general, creo que después de la lectura, estas tres personas pueden tener un conocimiento general, pero quieren estudiar muy a fondo el mecanismo de principios y la aplicación, justo por encima del contenido es completamente no es suficiente, también tenemos que aprender la información más específica.


En cuarto lugar, la referencia

Supongo que te gusta

Origin www.cnblogs.com/tuyang1129/p/12563602.html
Recomendado
Clasificación