调侃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:/ ...
随机推荐
- xcode6制作IOS .a静态库小记
xcode6制作IOS .a静态库小记 创建iOS静态库 简单写个打印的代码 编码完成之后,直接Run就能成功生成.a文件了,选择 xCode->Window->Organizer-> ...
- Java NIO中核心组成和IO区别
1.Java NIO核心组件 Java NIO中有很多类和组件,包括Channel,Buffer 和 Selector 构成了核心的API.其它组件如Pipe和FileLock是与三个核心组件共同使用 ...
- NSString截取文件名(很笨的方法)
对NSString的操作不熟悉,目前采用以下方法取得路径中的文件名以及文件夹路径 NSString* test=[[NSString alloc]initWithFormat:@"D:\\c ...
- .net验证控件
一.客户端验证(用户体验,减少服务器端压力) 二.服务器端验证(防止恶意攻击,客户端js很容易被绕过) 验证控件:RequiredFieldValidator:字段必填:RangeValidator: ...
- HUD3336
/* 巧妙地使用fail数组 根据fail数组的定义 fail[i] 有 长度为i的子串最长公共前后缀为fail[i] 比如样例 fail 0 0 1 2 那么我们维护一个ans[i]表示到i位置的时 ...
- AES对称加密算法
package cn.jsonlu.passguard.utils; import org.apache.commons.codec.binary.Base64; import javax.crypt ...
- windows服务状态自动启动
很多人制作成Windows服务安装包时发现明明在属性里面设置了自动启动,可在服务安装完成以后,还需要手动启动服务,我这里有一种完全实现自动启动的方法 在ProjectInstaller.cs 文件做文 ...
- Cacti以MB为单位监控流量
Cacti自带的流量监控阀值模板为“Interface – Traffic”,只能监控bytes,在添加阀值之后,报警的流量信息以bytes为单位,查看很不友好,可以通过以下方法将btyes转换成MB ...
- Swift - 31 - 常量参数, 变量参数和inout参数
//: Playground - noun: a place where people can play import UIKit // swift中默认情况下, 传入的参数是不可以修改的, 也就是l ...
- 七、C# 接口
并非只能通过继承使用多态性,还能通过接口使用它. 和抽象类不同,接口不包含任何实现(方法). 然后和抽象类相似,接口也定义了一系列成员,调用者可以依赖这些成员来支持一个特定的功能. 实现接口的类会 ...