cookie

摘自: http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html

Cookie是什么? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。

为什么需要Cookie? 因为HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分 是不是来源于同一个浏览器。所以,需要额外的数据用于维护会话。 Cookie 正是这样的一段随HTTP请求一起被传递的额外数据。

客户端检测

使用浏览器端的js语句来检测,具体思路是,先设置一个cookie, 然后尝试读取此cookie,如果读取不到则表示,浏览器不支持此cookie, 如果能够读取到, 则表示浏览器支持cookie。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="./jquery.js"></script>
<link rel="stylesheet" href="./test.css" />
</head>
<body>
<style>
<!--
#template{
background:red;
}-->
<!-- error -->
</style>
<div id="template" name="template">
<input type="button" id="testBtn" value="click me">
</div>
<script> function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null; }
function delCookie(name)//删除cookie
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
} //检测是否支持cookie
SetCookie('cookie_test','1');
var cookie_test = getCookie('cookie_test');
if( '1' != cookie_test)
{
alert('不支持');
}
else
{
alert('支持');
}
</script>
</body>
</html>

服务器端检测

有时候,例如大多数的网址登陆都需要cookie支持, 如果cookie关闭,则后台登陆功能也应该同步关闭,不允许有请求过去进行强制登陆, 这样就需要通过一种手段让服务器知道浏览器是否支持cookie。

在http报文中, 没有特殊的头域来标识浏览器对cookie的支持程度,

可以采用两次访问方法解决: 第一次页面访问,服务器在响应头中添加cookie信息, 第二次页面访问则会带有cookie信息(如果浏览器支持), 服务器端收到第一次访问设置的cookie信息,则表示浏览器支持cookie。

下面示例代码,第一次访问,_TESTCOOKIE为空, 第二次访问打印出来是1

<?php
header("Set-Cookie: _TESTCOOKIE=1"); echo 'Hello _TESTCOOKIE=' . htmlspecialchars($_COOKIE["_TESTCOOKIE"]) . '!'; exit;
?>

aaarticlea/png;base64,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" alt="" />

最新文章

  1. Ubuntu16.04 LTS下apt安装WireShark
  2. IOS常用正则表达式
  3. The Truth About .NET Objects And Sharing Them Between AppDomains
  4. Navicat创建和设计MySQL事件
  5. Js Pattern - Self Define Function
  6. ORACLE之PACKAGE-游标变量
  7. PC-经典之“运行里面的密密”
  8. OnClose()和 OnDestroy()
  9. TP中的AJAX返回ajaxReturn()
  10. @RequestParam 和 @ PathVariable 的区别
  11. leetcode20:有效的括号
  12. Luogu P2403 [SDOI2010]所驼门王的宝藏
  13. [administrative][archlinux][netctl][wpa_supplicant] 查看WIFI链接信息
  14. mybatis3 前台传数组 的处理
  15. 使用Git去管理修改
  16. 使用patroni 解决hasura graphql-engine pg 数据库ha的问题
  17. js增减日期
  18. C/C++如何整行读入字符串?
  19. C++实现一个web服务器, 弱智版服务器
  20. C# lambda方式取出前十个经常联系的手机号码

热门文章

  1. 原生js添加和删除类
  2. BZOJ 1925[Sdoi2010]地精部落 题解
  3. ACM: HDU 2563 统计问题-DFS+打表
  4. Android -- EditText方法
  5. mvc2 To 4
  6. [代码] 类似 YYText 将表情文本转换成表情字符
  7. iOS定时器
  8. [LintCode] House Robber 打家劫舍
  9. .offsetLeft,.offsetTop
  10. 二叉树-二叉查找树-AVL树-遍历