php - una - sesiones en html
¿Debo usar sesiones de base de datos o sesiones nativas de archivos PHP? (1)
Básicamente, para almacenar los datos de la sesión, las personas generalmente usan una de tres soluciones:
- archivos (por defecto)
- base de datos
- memcached
Archivos es el más utilizado, ya que es el predeterminado, y funciona perfectamente bien en la mayoría de los casos, pero hay al menos una situación en la que no funciona: cuando tienes varios servidores y tus usuarios tienen equilibrio de carga en aquellos (es decir, cuando 1 usuario no siempre está en el mismo servidor) .
En ese tipo de situación, es necesario tener un lugar central / compartido para almacenar las sesiones, y las bases de datos se ajustan a esa descripción; y son fáciles de instalar también, y las aplicaciones PHP generalmente funcionan con una base de datos.
Y como las bases de datos no se escalan tan bien, especialmente para escrituras, a veces se usa algo como memcached: un mecanismo que almacena datos en RAM (más rápido) , en tantos servidores como desee / necesite (escalas bien) .
¿Qué solución deberías usar?
Bueno, ¿en cuál de esas situaciones estás?
- Los archivos son correctos, al menos mientras un usuario esté siempre en el mismo servidor
- Si necesita una base de datos para su aplicación, puede almacenar sesiones en la base de datos: no se necesita ninguna configuración adicional (por ejemplo, Drupal lo hace de manera predeterminada) .
- memcached necesita más configuración, pero es probablemente la mejor solución si tienes mucho tráfico ...
Acabo de pasar de mi propio marco MVC a uno compatible con la comunidad (CodeIgniter). Solo estoy convirtiendo mis sesiones a las funciones de CodeIgniter y estoy notando que, de forma predeterminada, almacenan los datos de la sesión en una cookie cifrada. La alternativa que ofrecen son las sesiones de base de datos, pero no las sesiones de archivos del lado del servidor, como la biblioteca PHP nativa.
Ahora en mi sitio, construiré un panel de back-end seguro para que una cookie encriptada no parezca la opción inteligente, pero no quiero tener que conectarme innecesariamente a mi base de datos ya que no es muy rápido (hosting compartido).
Me pregunto cuál sería el razonamiento detrás de ellos que no admite sesiones nativas y si las sesiones de bases de datos o sesiones de archivos del lado del servidor generalmente se consideran como la mejor opción.
Gracias.