调侃Cookie
近期看着某些小朋友那琢急的学习心态,瞬间发文一篇,谨此以助小朋友早日有成!
闲话不扯远,实话见真言,晃悠许久觉得开头还是谈谈Cookie这只菜篮,而且是一只私家菜篮,为啥说它是一只菜篮呢,各位看官必定见过菜篮,不过如果是高富帅,或是白富美,那就还得劳驾您去百度图库搜张图喵上一眼。在菜市场一眼望去,除了大妈的吆喝声,那最显眼的就是大妈手中的菜蓝,菜蓝里五花八门什么都有。
言归正转,cookie 在asp.net这个菜市场里,充其量也就是一只菜蓝,现在各位看观也就是拎菜蓝的大妈,真没说各位看观都是大妈,只是形容,纯属比喻。我们浏览的打开的很多网站都会把一些基本信息放在我们的浏览器的Cookie当中也就是我刚说的菜蓝。
客位客观可能也会问,是怎样生成的?到底cookie在哪里呀?cookie 在.net 下可以在客户端用JS创建,也可以在页面下用.net 创建,用respone输送到前台。大家可以查看一下浏览中的存的Cookie (怎么查,本文不述,看观自问度娘),咋一看网站存这些乱七八糟的是什么玩意呀,堪比火星文(别紧张一般是加密的),回到大妈来,大妈去菜市场买菜肯定都是一些重要的食材,用来做美味的,那我们ASP.NET 中菜蓝(cookie)也不可能一直是装素的吧。cookie里装的也有鸡肋的,比如用户登录的一些帐户信息,登录验证码和一些密钥。。。很多网站没有咱cookie这菜蓝早就over了。
看到了鸡肋是否有点心动,看观别急,你的鸡肋别人可是不是这么轻易拿的。就好比大妈的菜篮是大妈的,里面的菜别的大妈可不是轻易能动的哦,拿了大妈会怒的,这是人家的私房菜.我们的cookie也是这样的,别的网站的cookie也不是轻易能访问得到我们的cookie,因为有一个跨域的问题,就像我们刚说的一样这个大妈不可能轻易的去拿别一个大妈菜蓝子里面的菜。好了,峰回路转,刚说到一个网站的Cookie不是那么轻易的访问另一个网站的Cookie,即然是不轻易,看观肯定还是能看出些端倪的。大妈要想去拿另一个大妈菜蓝里面的菜,首要必须要满足以下几个条件:1、两个大妈是一家的。2、两个大妈是熟人 。除了以上两个条件,比较合法成立的外,各位看客想出来的,就自已在心里偷笑会吧。
各位看观请换回频道来,我们的cookie也是这样的,也需要满足以下几个条件的:1、同一个公司同一个域名的站点。2、公司的合作伙伴许可。除了以上两个条件比较合法成立的外,各位看客想出来的,就也再次自已在心里偷笑会吧。因些我们的cookie提供了跨域功能,只需设置cookie的domain为同一域名就可以,比如把domain都设成xxx.com就可以两个站点相互访问了。刚只是说了其中的一种,还有一种就是通过iframe钳套,在一个网页中钳入一个iframe实现cookie访问。这下大妈间就能谈笑互换菜蓝子里的菜了。
是否感觉大妈间只要关系好,就能随意拿菜蓝子里的菜了,这也不一定,大妈可不是那么傻的人,大妈都是人精的,好不容易得来的鸡肋,怎么可能给别人,必定留一手的。cookie也是这样的,我们网站的一些重要的帐户信息不可能轻易的就被前端的Js给抓去用了,也必定要留一手的。所以我们的cookie也像大妈一样,留了一手,只要将Httponly 设为true,就万事大吉,前端的js休想访问,大妈就可以偷着乐了。
cookie这个菜蓝还真聪明的呀,最后还有一点就是,大妈买菜也不可能是从早上一直呆在菜市场买到晚上的吧,如果这样的话家人都会叫起来的。因此大妈买菜也是有时间限制的,大妈的时间有限制说明菜蓝子呆在菜市场的时间也是有限制的。因此我们的菜蓝(cookie)也是有时间限制的,我们可以通过expires来为我们的cookie设置相关过期时间的,如果不设置也就默认为网站会话过期时间,关掉浏览器cookie也会消失的。
通篇概述,cookie就完成了与大妈买菜这一相似的举动,主要是为了便于存储一些看似重要但又不重要的信息,(重要在于它能够一定程度的标记一些会话信息,不太重要在于它一般多次加密和需多个密钥才能破解),更重要在于减轻服务器的压力,加快网站响应,实现状态管理,继承于富客户端的理念。
调侃Cookie的更多相关文章
- vue + spring boot + spring security 前后端分离 携带 Cookie 登录实现 只写了个登录
最近想弄一下vue 所以就自己给自己找坑入 结果弄的满身是伤 哈哈哈 首先我说下 前后端分离 跨域请求 我在网上找了一些 可是都是针对于 spring boot 的 我自己还有 securi ...
- 超大 Cookie 拒绝服务攻击
有没有想过,如果网站的 Cookie 特别多特别大,会发生什么情况? 不多说,马上来试验一下: for (i = 0; i < 20; i++) document.cookie = i + '= ...
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...
- 解决cookie跨域访问
一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- 一个诡异的COOKIE问题
今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...
- [转载]Cookie/Session的机制与安全
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...
- jquery.cookie的使用
今天想到了要为自己的影像日记增加赞的功能,并且需要用到cookie. 记得原生的js操作cookie也不是很麻烦的,但似乎jquery更简单,不过相比原生js,需要额外引入2个文件,似乎又不是很好,但 ...
- 跨域问题,前端主动向后台发送cookie
跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同 http://www.baidu.com:80 和 https:/ ...
随机推荐
- C++ | 调试 · 从汇编代码看i++和++i的区别
以int类型为例 C++编译器为++i生成的代码是 013E1375 mov eax,dword ptr [i] 013E1378 add eax, 013E137B mov dword ptr [i ...
- php include 与 require 起底[转]
转自 http://www.guangla.com/post/2014-01-24/40060857811 起因: 一朋友面试被问到,php的include和require的区别,这个可能是面试中出现 ...
- codevs 2541 幂运算(迭代加深搜索)
/* 一开始想到了简单的深搜 维护当前可用的mi数组 然后回溯用哪个 不断更新新产生的mi 这样的问题是 由于mi不断产生 搜索规模扩大 不好 不好 下面是奇丑的WA掉的代码 做个反面教材 */ #i ...
- oracle 关于动态执行语句 execute immediate 的用法
当在开发的应用场景中 数据库处理复杂业务逻辑里用到 SQL 语句拼接 可以用 execute immediate 来执行语 举个例子 insert into tb_temp_public( ...
- Android界面刷新方法
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...
- C# 各版本更新简介
经常在不同版本的.net framework下作业.于是乎想了解下,.net下各版本C#的新特性. ---------- C#2.0 针对于.net framework 2.0 新特性有: 分部类 ...
- Android开发-解决 AIDL 中找不到couldn't find import for class错误
最近在使用AIDL做IPC的时候,在处理复杂的数据类型的时候,编译器总是报couldn't find import for class错误,所以在这里总结下AIDL使用的时候的一些注意事项,希望对你能 ...
- 数据类型和Json格式[转]
1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml. 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开. 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一 ...
- js 实现分割条
js 实现 切分条效果, 为了熟悉js 写法,纯javascript 脚本编写 简单介绍几个函数: setCapture()函数的作用就是将后续的mouse事件都发送给这个对象, releaseCa ...
- jquery easy ui 学习 (9)Pagination in TreeGrid 分页
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...