首先编写以下简单的代码:

复制代码 代码如下:<?php

setcookie('a','value');

print $_COOKIE['a'];

第一次访问时,报错:

报错的原因是$_COOKIE['a']的值不存在。第二次访问:

问:为什么第一次访问的时候,会没有cookie呢??我不是先设置,再获取吗??

答:使用firefox的firebug查看”网络“:

客户端:

可以看到,浏览器(客户端)向服务器发出一次请求,发出请求的时候,在请求头信息中带上了各种参数,告诉服务器,我要接收什么样的文本(Accept)、什么编码格式(Accept-Encoding)、什么语言(Accept-Language)等等,当然,还把Cookie也传到了服务器(Cookie)。

服务器端:

第一步:setcookie('a','value')

因为cookie是设置在客户端的,setcookie函数自己并不能设置cookie,它只能通过头信息的方式告诉浏览器说:兄弟,我要设置一个cookie,键为a,值为value,你在你那里帮我设置一下。你也可以理解为:”来,朕今天高兴,赏你一个小甜饼“。

第二步:$_COOKIE['a']$_COOKIE['a']

很简单,执行的操作就是在浏览器带过来的cookie字符串中搜索键为a的cookie,并返回它的值。

很明显,这个”键为a“的cookie不可能找到,因为客户端访问服务器的时候,这个cookie压根就不存在,而前面第一步设置cookie的头信息,也还没有返回给客户端(php要从上到下把语句执行完才会返回给客户端)

第三步:服务器返回信息

其中,返回的头信息中带有”Set-Cookie

a=value“,浏览器收到这个头信息,把cookie存放到电脑的某个文件中,对于不同浏览器cookie的存放位置貌似不同,这个不在本文的范围。

刷新浏览器,再次访问服务器的时候,同样,也会把很多头信息带给服务器,只不过这次带过去的cookie中,就多了一个a=value了。所心$_COOKIE['a']自然就能从cookie字符串中找到这个键为a的cookie的值。

相关推荐:

php的cookie不存在会是什么值,PHP setcookie() 首次存储不上值相关推荐

  1. html5 localstorage 生命周期,cookie、localStorage和sessionStorage 三者之间的区别以及存储、获取、删除等使用方式...

    写在前面: 前端开发的供个到效近一项消果近一项消果近一项消果近时候,在网页刷新的时候,所有数据都会被清空,这时候就要用到本地存储的技术,前端本地存储的方式有三种,分别是cookie,localstor ...

  2. Postman:ResponseHeader存在多个Set-Cookie时,教你获取Cookie值

    背景: 想通过Postman实现接口串联,从登录接口的RespouseHeader中获取 Set-Cookie值:发现RespouseHeader中存在多个:Set-Cookie,如何取到自己想要的呢 ...

  3. jQuery hash 插件

    URL中的hash,也就是网址井号后面的部分,其实是一块宝地,它能创建浏览历史,也能存储一些简单数据.从Twitter开始Hash被用来定义Ajax内容,虽然如今已被HTML5的pushState所替 ...

  4. 面试题大全1-javaSE部分-JavaEE框架中间件

    文章目录 Java面试题大全 一.JavaSE 部分 基础部分 1.Java中基本数据类型有哪些? 2.Integer 和 int的区别 3.String和StringBuilder和StringBu ...

  5. VC#复习资料(是轩~)

    一.判断题 2."闪电"图标 3.using命名空间 命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式,using 关键字表明程序使用的是给定命名空间中的名称,使用 u ...

  6. PHP的各种安全问题总结 一文了解PHP的各类漏洞和绕过姿势

    目录 前言 一.基础知识 1.九大全局变量 二.弱类型以及各种函数 1.精度缺陷 2.类型转换缺陷 3.`==`和`===` 4.`strcmp()`函数 5.`intval()`函数 6.`sha1 ...

  7. JAVA面试题大全(200+道题目)

    目录 一.Java 基础 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4 ...

  8. java后端面试大全,java后端面试宝典

    文章目录 -2 flink -1 linux of view linux查看占用cup最高的10个进程的命令: 〇.分布式锁 & 分布式事务 0-1分布式锁--包含CAP理论模型 概述 分布式 ...

  9. Cookie和Session的区别与联系

    Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...

最新文章

  1. 【机器视觉案例】(13) 脸部和摄像机间的距离测量,自适应文本大小,附python完整代码
  2. Xcode - Other Linker Flags
  3. 期末微积分考试试题求解 :利用python求解
  4. 建博客的原因。。。。
  5. MongoDB中_class字段的作用
  6. 成功驱动5150用HT68F30
  7. 企业资源计划软件 业务知识点汇编整理
  8. SpringBoot文档翻译系列——26.日志logging
  9. kotlin环境配置
  10. cesium 基于在vue框架写功能
  11. Mybatis-generator自动生成
  12. IntelliJ IDEA 2021.1.2 x64版的 IDEA 创建 jsp项目
  13. 将UCF101数据集的视频提取为帧(多线程实现)
  14. 进项税额和销项税额介绍
  15. 档案查询系统php,档案信息管理系统 v2.0
  16. 人际关系中的万有引力
  17. Spark写入Hudi报分区列乱码问题java.net.URISyntaxException: Illegal character in path at index 46:
  18. win10资源管理器explorer总是崩溃重启
  19. 浙工大计算机学院2013学年二等奖学金,关于2012—2013学年学院奖学金评定文件.doc...
  20. 计算机软件研究方法与技术路线,开题报告研究方法与技术路线.doc

热门文章

  1. 非递归生成的TreeView
  2. 迁移.NET 1.0 应用到FX 2.0 –.NET评测网的工具箱
  3. ajax 获取java数据_如何使用Ajax从服务端获取数据
  4. [网络安全自学篇] 八十.WHUCTF之WEB类解题思路WP(代码审计、文件包含、过滤绕过、SQL注入)
  5. 搜索引擎和知识图谱那些事 (上).基础篇
  6. 463. Island Perimeter 岛屿的周长
  7. 将SQL文件导入Hive
  8. 使用python判断流媒体mp3格式
  9. 2019第十届蓝桥杯C/C++ A组省赛 —— 第四题:迷宫
  10. ROS自定义地图(CAD、手绘等)