session 注意事项

1. session 与 cookie 的区别与联系是什么?

session 能存各种数据类型。 cookie 只能存字符串。

$_SESSION 的下标只能是字符串。 $_cookie 的下标也是。

联系:session 的 id 存在 cookie 中。

2. session 的生命周期是?

浏览器关闭。默认的cookie生存周期是浏览器关闭。

3. 如何持久化 session ?

设置保存 sessionID 的 cookie 生存周期。

两种写法:

a:

session_start();

setcookie(‘PHPSESSID‘, session_id(), time()+3600);  // 要写在后面

注:session_id() 可以获得当前的 sessionID 。

b:

session_set_cookie_params(3600, ‘/‘, ‘baidu.com‘);  // 要写在前面

session_start();

注:

服务器端垃圾回收的时间,应该和 session 持久化时间一致!配置 php.ini:

session.gc_maxlifetime = 3600

其实,session 持久化不常用,因为持久化就持久化两方面,一个是浏览器端 cookie ,一个是服务器端的 sessionDATA ,这样 sessionDATA 会很多。

4. cookie 禁用,session 能否使用?

可用。

session 基于 cookie,cookie 不可用,典型的情况是 session 也不可用。

cookie不能带数据,可以使用 get 参数把数据带到服务器。使用 get 参数来传递 PHPSESSID 。不安全。只要带上 get 参数,就不用登录了。这个参数是自动生成的。而且,是在用户浏览器禁用 cookie 后才会有。没禁用,而我又配置了 php.ini 如下,那么优先使用 cookie 。

需要配置 php.ini:

session.use_only_cookies = 0   // 允许从url传递PHPSESSID, 不用cookie

session.use_trans_sid = 1      // 使用url传递sessionID

注:

1. php 只会自动的在 html 的 a 标签的 href 链接上增加 PHPSESSID 参数。header("Location: ");上的不行。php 代码内的地址不行。但,可以自己写上去:

header("Location: test1.php?PHPSESSID=".session_id());

2. 如果是通过表单跳转的话,是通过 post 方式传递信息的。这时,php 会自动生成一个隐藏域。name = "PHPSESSID" , value = "session_id()"

时间: 2024-11-16 05:28:54

session 注意事项的相关文章

couchbase作为分布式session容器时的注意事项

在开发MVC程序时,选择了couchbase作为session provider,但在部署的过程当中发现,两台web server负载均衡,只有一台有session,而负载到另外一台web server时,session就没有了. 经过仔细研究,最终发现是两台web server上IIS中的网站名称不同导致的,将两台web server上的IIS网站名称调整为一样的,就可以了.

hibernate中session的获取使用以及其他注意事项

hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行数据查询时不是出现了"session is close"异常就是出现其他异常问题,痛定思痛,决定收集并整理相关资料,方便今后的使用. 一.session的获取 在hibernate中的Session对象通过SessionFactory来管理,可以通过使用openSession ().get

部署新浪SAE web.py Session及图片上传等问题注意事项

1.以下几条代码解决编码问题 import sysreload(sys)sys.setdefaultencoding('utf-8') 2.图片上传问题 需要开通sina的Storage服务,随便建个什么Domain,注意HTML代码,那个enctype属性一定要写,两个上传图片的控件叫avatar和photo <form action="details" method="post" enctype="multipart/form-data"

mvc中session的几点注意事项

session在controller中传递出现空值 session在controller传值到view也是空值 session时默认引用的是System.Web.Mvc.Controll.session,可能这个session不能传递, 所以解决方法就是详细定义session,我们可以定义System.Web.HttpContext.Current.Session可以解决这个问题

79)PHP,session函数编写的注意事项

(1)先执行  session_set_save_handler()  在session_start(). (2)那么开启session_start(),有两种方法,一个就是session_start(),还有一个就是在脚本运行之前,服务器自动开启了session机制,就是改变了php.ini配置文件,所以  我们必须将里面的session配置改为不自动开启session (3)我们还可以在session的那个编写文件的同级目录中,编一个.htaccess文件,然后文件里面写上:,这样就保证我们

JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,如果浏览器没有禁用cookie的话,当浏览器再次访问项目中的Servlet程序时会将JSESSIONID带着,这时JSESSIONID就像唯一的一把钥匙  开启服务器端对应的session空间,进而获取到sessi

认证 协议 JWT OAuth Session Cookie

本文翻译自Auth-Boss. 如果有翻译的不恰当或不对的地方, 欢迎指出. 成为一个认证老司机, 了解网络上不同的身份认证方法. 本文档的目的是记录和编目Web上的身份验证方法.认证指的是创建一个系统的过程,用户可以通过该系统"登录"在线服务,并授予对受保护资源的访问权限.以下引用可能更好地总结我想要解释的内容: 客户端认证涉及向Web上的服务器证明客户端(或用户)的身份.[1] How 我写作风格简洁,会用到一些技术词. 免责声明:本文档不作为包含所有认证方法的网络的目录;本文档也

[项目构建 十]babasport 集群下session共享问题的解决方案.

这一篇博客来讲解下babasport这个项目中使用的Login功能, 当然这里说的只是其中的一些简单的部分, 记录在此 方便以后查阅. 一: 去登录页面首先我们登录需要注意的事项是, 当用户点击登录按钮时,转入登录页面时也要记住之前用户是从哪个页面发送请求过来的, 这样登录成功后还能继续跳回到用户之前浏览的那个页面.我们页面展示显示的登录按钮都是集成在一个common的jsp中, 前台每个页面都是引用的这个jsp, 所以需要在这个common的jsp中直接添加点击登录按钮跳转的页面.这里点击登录

(转)Tomcat7+Redis存储Session

原创http://blog.csdn.net/caiwenfeng_for_23/article/details/45666831 PS:截止到2015-05-12前是不支持Tomcat8的,详情见官网:https://github.com/jcoleman/tomcat-redis-session-manager 前提:你已经部署了Redis,尚未学会的,可以移步这里:http://blog.csdn.net/caiwenfeng_for_23/article/details/45511007