1、创建Cookie的NAME和VALUE不能设置成非ASSIC字符,如果要使用中文,可以通过URLEncoder将其编码,否则会抛出IllegalArgumentException。如:
Cookie cookie=new Cookie("saveusername", URLEncoder.encode(username,"utf-8"));
2、创建的Cookie的NAME不能和Set-Cookie或者Set-Cookie2的属性值一样,如果一样的话会抛IllegalArgumentException异常;
3、当NAME和VALUE的值出现一些TOKEN字符(如“\”、“,”等)时,构建返回头会将该Cookie的Version自动设置为1.
4、当我们请求某个URL路径时,浏览器会根据这个URL路径将符合条件的Cookie放在Request请求头中传回给服务器端,服务器端通过request.getCookies()来取得所有的Cookie。
5、不同的浏览器对Cookie的数量和大小有限制。如:
浏览器版本 | Cookie数限制 | Cookie总大小限制 |
IE9 | 50个/每个域名 | 4095个字节 |
Chrome | 50个/每个域名 | 大于80000 |
FireFox | 50个/每个域名 | 4097个字节 |