不要在cookie中使用特殊字符的原因分析


Posted in Javascript onJuly 13, 2010

Constructs a cookie with a specified name and value.

The name must conform to RFC 2109. That means it can contain only ASCII alphanumeric characters and cannot contain commas, semicolons, or white space or begin with a $ character. The cookie's name cannot be changed after creation.

The value can be anything the server chooses to send. Its value is probably of interest only to the server. The cookie's value can be changed after creation with the setValue method.

By default, cookies are created according to the Netscape cookie specification. The version can be changed with the setVersion method.

以上是java API文档中对Cookie类构造函数的说明,重点对name和value可以使用的字符进行了介绍。

参数name需要遵循规范RFC2109,也就是说name参数只能包含字母或者数字,不能包含逗号、分号、空格及美元符号。cookie的name属性设置之后不能被修改。

参数value可以是服务端设置的任意值,该值可以通过setValue方法进行重新设置。

然后实际情况并非如此!!

(1)value值中不能包含逗号,如果value中包含逗号则程序无法编译。

如果value中包含逗号,如下:

Cookie pwdCookie = new Cookie("option", "block1,block2");
则异常如下:

java.lang.IllegalArgumentException: block1,block2
在另外一篇关于JavaScript操作cookie的文章中提到:

在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。

总之,尽量不要在cookie中使用特殊字符。

Javascript 相关文章推荐
谷歌浏览器 insertCell与appendChild的区别
Feb 12 Javascript
jQuery 对象中的类数组操作
Apr 27 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
自己写的Javascript计算时间差函数
Oct 28 Javascript
JS实现日期加减的方法
Nov 29 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
Feb 13 Javascript
JavaScript获取IP获取的是IPV6 如何校验
Jun 12 Javascript
Angularjs---项目搭建图文教程
Jul 08 Javascript
JavaScript 函数节流详解及方法总结
Feb 09 Javascript
javascript实现数据双向绑定的三种方式小结
Mar 09 Javascript
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
Vue实现点击当前行变色
Dec 14 Vue.js
初识javascript 文档碎片
Jul 13 #Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 #Javascript
通过继承IHttpHandle实现JS插件的组织与管理
Jul 13 #Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 #Javascript
javascript中字符串拼接需注意的问题
Jul 13 #Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 #Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 #Javascript
You might like
php获取网页上所有链接的方法
2015/04/03 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
深入理解Python中的super()方法
2017/11/20 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
简单了解python中对象的取反运算符
2019/07/01 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Python简单实现区域生长方式
2020/01/16 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
降消项目实施方案
2014/03/30 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
班子四风对照检查材料
2014/08/21 职场文书
售后服务质量承诺书
2015/04/29 职场文书
戒赌保证书
2015/05/11 职场文书
python 逐步回归算法
2021/04/06 Python
vue ref如何获取子组件属性值
2022/03/31 Vue.js
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers
nginx访问报403错误的几种情况详解
2022/07/23 Servers