记得在以前找工作的时候,可多次被问到如果客户端被禁用cookie,session还能使用吗?

今天终于找到了相关的答案:我们来看一下:

session是在服务器段保持会话数据的一种方法,对应的cookie是在客户端保存用户的数据,http协议是一种无状态的协议,服务器响应完之后就失去了与浏览器的联系,最早netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那服务器如何记住众多用户的会话数据呢?

首先要将客户端和服务端建立一一的联系,每个客户端都得有一个唯一的表示,这样的话服务器才能识别出来。建议唯一标识的方法有两种:cookie或者get的方式制定。

默认配置的PHP使用session的时候会建立一个名叫“PHPSESSID”的cookie(这个名称可以通过php.ini中的session.name值指定)

如果客户端禁用cookie,那我们可以通过指定的GET方式将这个session id传到服务器端(修改一下php.ini中的session.use_trans_sid等参数)。

<a href="p.php?<?php print session_name()?>=<?php print session_id()?>">xxx</a>,那也可以通过POST的方式传递session值

如果客户端禁用cookie,session还能使用吗?的更多相关文章

  1. session与cookie的区别? 如果客户端禁止 cookie session 还能用吗?

    一.session与cookie的区别 session:Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个 ...

  2. 客户端禁用cookie情况下的URL重写

    客户端禁用cookie情况下的URL重写: servlet: package com.stono.servlet.listenerorder; import java.io.IOException; ...

  3. 客户端禁用cookie

    如果客户端禁用cookie的话不影响session使用 的设置方法: <sessionState     cookieless="AutoDetect"

  4. php在客户端禁用cookie时让session不失效的解决方法

    cookie固然好,不过有些客户端浏览器会禁用cookie,这就会导致你所依赖cookies的程序会失效或出错,那么若真出现用户关闭cookies的情况,PHP应该如何再次使用session?方法还是 ...

  5. php 会话控制(禁用cookie后session为什么会失效?)

    首先说明一点:session不一定必须依赖cookie,只是php默认客户端sessionid基于cookie方式保存. 到此,我想你也应该了解了php默认的session客户端保存方式是基于cook ...

  6. 关于用户禁用Cookie的解决办法和Session的图片验证码应用

    当用户通过客户端浏览页面初始化了Session之后(如:添加购物车,用户登陆等),服务器会将这些session数据保存在:Windows保存在C:\WINDOWS\Temp的目录下,Linux则是保存 ...

  7. django框架--cookie/session

    目录 一.http协议无状态问题 二.会话跟踪技术--cookie 1.对cookie的理解 2.cookie的使用接口 3.cookie的属性 4.使用cookie的问题 三.会话跟踪技术--ses ...

  8. Javaweb学习笔记5—Cookie&Session

    今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的 ...

  9. cookie禁用了,session还能用吗?

    Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案.但为什么禁用Cookie就不能得到Session ...

随机推荐

  1. CocoaPods使用详细说明

    使用说明: 原文:http://blog.csdn.net/lizhongfu2013/article/details/26384029 http://blog.csdn.net/showhillle ...

  2. [zz]利用碎片时间健身

    利用碎片时间健身(上) http://v.163.com/zixun/V96957QH6/VBSQ4D861.html#from=zixunplay_recommended 利用碎片时间健身(下) h ...

  3. vi 颜色配置

    一.vi 默认黑色背景上,蓝色注释很难看不清,必须重新设置. (1)查看vi支持的配色方案: $ ls /usr/share/vim/vim72/colors (2)支持如下方案: blue.vim ...

  4. 获取小众ftp服务器指定目录内容列表

    今天获取小众ftp服务器指定目录内容列表时费劲急了. ///parama url="ftp://x.x.x.x/dir_name" public string GetFTPDir( ...

  5. 通过开户银行账号查询客商名称 sql

    select * from bd_cubasdoc where pk_cubasdoc in ( ') 查询空客商客户银行的单位名称 select b.custcode,b.custname, d.b ...

  6. sip协议注册时response值的计算方法

    sip注册时有四个步骤, 1.客户端向服务端发送不带Authorization字段的注册请求 2.服务端回401,在回复消息头中带WWW_Authorization 3.客户端向服务端发送带Autho ...

  7. 流水灯 外侧<->中间<->外侧

    /* //side<-center->side //side->center<-side //loop *// #include "reg52.h" voi ...

  8. MYSQL 内存报错 Use 'mysqld --thread_stack=#' to specify a bigger stack.

    今天在使用mysql的过程中,连接数据库始终无法成功 最后发现是数据库无法执行增加修改的操作 :错误代码 Thread stack overrun:  11552 bytes used of a 13 ...

  9. nginx-my

    #user nobody; 3 worker_processes 1; 4 5 error_log logs/error.log; 6 #error_log logs/error.log notice ...

  10. 用ADO.NET存入数据库

    点击按钮存入登录名和密码: const string connstr = @"data source=USER-20160705UW\JSQL;initial catalog=Test;in ...