Cookie和Session

7 篇文章 0 订阅

1.为什么要有Cookie

单从网络连接的手段无法区分用户谁是谁(http无状态);所以需要一个“东西”来记录一下用户的状态(cookie)

Cookie为何存在

2.Cookie是什么

简而言之,就是服务端发给客户端的唯一身份信息(类似:你的姓名,年龄,身份证号…),每次客户端访问服务器时,都要带上Cookie(就像你出门要带脑子,不然不知道自己是谁)

3.Cookie如何记录状态

问题一中提到,Cookie是为了记录用户的状态而生的。那么他是如何记录用户的状态的呢?

	
	第一次,客户端向服务端发送请求时,服务端会给你一个身份信息,然后你把它保存在浏览器上。
	
	第二次,你再次访问服务器时,访问信息会自动带着"第一次服务器给你的身份信息";有了这个身份信息,服务器和自己的存根一匹配就知道你是谁了。
	
	这他妈不就知道你的状态了吗?

在这里插入图片描述

4.什么是session

上面几个问题提到,服务器与客户端之间的故事。故事的题目就叫Session。

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。上面这些问题描述的就是会话控制的内容。

服务端给用户发送的身份信息,就是session_id

5.session与cookie的区别

1.坐标不同
	cookie存放在客户端,session放在服务器,

2.安全性不同,
	别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,cookie相比较session不是很安全,
	
3.大小不同
	单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储与服务端,浏览器对其没有限制。

6.禁用cookie时,如何使用session

服务端执行session机制时候会生成session_id,这个id会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用。

PHP中的Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了。
必须注意的是:Session不一定必须依赖Cookie,这也是Session相比Cookie的高明之处。
"当客户端的Cookie被禁用或出现问题时,PHP会自动把session_id附着在URL中,这样通过URL的访问方式依旧可以使用"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值