cookie,session原理,以及如何使用chrome查看。
首先,先补充下chrome浏览器的使用。
1.1、php源码:
<?php $cookieDomain = '.elf.com'; setcookie('elf', 'im elf cookie', time()+, '/', $cookieDomain); setcookie('aaa', 'aaaa', time()+);
1.2、chrome效果
解释:头文件中request headers表示浏览器向服务器发送的包头,告诉服务器我这边的信息,顺带带上我所有的cookie(无论你是否请求cookie,只要是本域名下和本域名的主域名下的cookie都返回)。
response headers表示服务器返回给浏览器的包头,其中set-cookie表示服务器说“喂,浏览器,给我写入这些cookie到你本地去”。
同理下图可以查看cookie。
注意上面两张图,没有PHPSESSID这个cookie哟。。。
1、3,修改服务器代码如下:
session_start(); echo 'cookie';
var_dump($_COOKIE);
1、4,第一次刷新浏览器
1,5、第二次刷新浏览器
两次刷新略有不同,
第一次刷新:
客户端没有任何cookie给服务器,
服务器运行代码session_start后,会自动生成一个session id,存放在cookie里,该cookie的key默认是PHPSESSID,value就是session id。所以服务器告诉客户端,“喂,给我set一个cookie,key是。。。value是。。。”
第二次刷新:
客户端把上一步生成的cookie带给服务器,也就是PHPSESSID=sjb2vafon1qi710hav8r8j5jl6这个鬼。
服务器虽然有session_start代码,但是已经生成了一个了,所以没有关于cookie的操作。
关于session id的生成,上面已经说了,session_start时自动生成,每个服务器对应每个浏览器的域名(bbs.a.com和login.a.com是不同域名)生成唯一一个,当浏览器关闭时,该session id失效,运行session_start会重新生成一个不同的session id存放在本地key为PHPSESSID的cookie里面。
关于session的数据,是存放在该web服务器里面的(默认/tmp目录),使用$_SESSION命令取session数据时,服务器会自动根据session id去找对应的session数据。
cookie和session的一个小区别,
如果服务器代码为setcookie('xxx','xxx',time); $_COOKIE['xxx'];
第一次运行该代码是取不到cookie的,因为第一次时,客户端的包头没有任何cookie传递给服务器,所以$_COOKIE为空,然后服务器返回给客户端的数据有setcookie,这个时候客户端才开始写入cookie到本地。
第二次运行,客户端包头就会把本地的所有cookie传递给服务器(包含主域名下的cookie)
同理,
换做session就不会有这个问题,比如服务器代码为session_start();$_SESSION['xxx'] = ‘xxx’; echo $_SESSION['xxx'];
第一次运行时,服务器是能取到key为xxx的session的。因为session_start时,服务器就生成了一个session id,并且在服务器开辟了一个空间存放该session id对应的data,所以$_SESSION['xxx'] = ‘xxx’这一步的数据此时已经写入到服务器了,
再echo $_SESSION['xxx'];时,是成功的。
cookie,session原理,以及如何使用chrome查看。的更多相关文章
- Chrome的cookie放在哪里了,Cookie/Session机制详解
Chrome的cookie放在哪里了,Cookie/Session机制详解:https://blog.csdn.net/u010002184/article/details/82082951
- session学习总结【session原理、应用、与cookie区别】
session原理 session也是一种记录浏览器状态的机制,但与cookie不同的是,session是保存在服务器中. 由于http是无状态协议,当服务器存储了多个用户的session数据时,如何 ...
- Session与Cookie的原理以及使用小案例>从零开始学JAVA系列
目录 Session与Cookie的原理以及使用小案例 Cookie和Session所解决的问题 Session与Cookie的原理 Cookie的原理 Cookie的失效时机 小提示 Session ...
- Session和Cookie的原理,以及在分布式应用中出现的问题和解决方案
产生原因 由于http协议是无状态的,同一个浏览器对服务器的两次请求之间是没有关系的,服务器认为两次请求都是全新的请求,不会记住上次请求成功的数据.然而现有的业务常常需要服务器能记住用户的访问情况, ...
- Cookie Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- Cookie Session 和Django分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- cookie,session 的概念以及在django中的用法,以及cbv装饰器用法
cookie的由来: 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后 ...
- Django之Cookie Session详解,CBV,FBV登陆验证装饰器和自定义分页
Cookie Session和自定义分页 cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接 ...
- Django 之 cookie & session
Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面 ...
- Java Web学习总结(6)Cookie/Session
一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 二.会话过程中要解决的一些问题 每个用户在使用浏览器与服务器进行 ...
随机推荐
- td的所有style
td.style.clear= td.style.posRight=0 td.style.backgroundRepeat= td.style.borderTopStyle= td.style.mar ...
- Linux内核分析总结
张潇月 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 学习目录: (1)计算机是如何工作的 h ...
- SQLServer : EXEC和sp_executesql的区别
MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql.通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就 ...
- REST及RESTful的实现
什么是REST? REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding ...
- leetcode 6. ZigZag Conversion
https://leetcode.com/problems/zigzag-conversion/ 题目: 将字符串转化成zigzag模式. 例如 "abcdefghijkmlnpq" ...
- ARCGIS Server 发布服务时出现的问题解决
target='CFH.ConfigurationFactoryHost' machine='IBM3850X5' thread='24072' elapsed='0.31200'>Ser ...
- 策划了个.NET控件的案例大赛
任何一个产品的普及,都有一个过程: 1. 对新事物充满热情.喜欢尝鲜.或后急迫需要的人首先成为产品用户.他们总数很少,但是是产品用户的第一批种子. 2. 思想比较开放.能接受新事物的人会成为第二批用户 ...
- BZOJ1093 [ZJOI2007]最大半连通子图
Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u ...
- DIOCP之编写第一个应用程序(一)
Server 设计功能如下: 1.支持客户端登录 2.连接数据库进行操作 3.推送信息 4.限制文件上传大小 第一步:创建一个VCL-Forms Application(创建一个标准VCL程序) 第二 ...
- JSP开发模式2_JSP/Servlet/JavaBean(简单注册功能)
import java.util.regex.Matcher;import java.util.regex.Pattern; public class RegisterBean { privat ...