摘要:机制正统的分发是通过协议实现的服务器通过在的响应头上加上一行特殊的指示以提示浏览器按照相应的。而的使用时浏览器按照一定的原则自动发送给后台服务器的。但是是可以被人为的禁止所以必须有其他的机制可以允许服务器想浏览器传回。
cookie和session的定义
cookie:
当你第一次访问某个网站的时候 web服务器会想你发送一小堆数据(cookie) 当你第二次访问这个网站的时候 web服务器就会通过cookie来查看你的身份 并把特定的内容发给你 这样就提供个人化的服务网站。
cookie机制:正统的cookie分发是通过http协议实现的 服务器通过在http的响应头上加上一行特殊的指示以提示浏览器按照相应的cookie 。同时js等也可以生成cookie。而cookie的使用时浏览器按照一定的原则自动发送给后台服务器的。
如果某个cookie所声明的作用范围大于等于请求的资源所在的位置 则把该cookie附在这次http请求头上并发送给服务器。
cookie的内容主要包括:key value 过期时间 路径和域 其中路径和域就构成了cookie的作用范围
若不设置过期时间 cookie的默认过期时间是会话关闭 这类cookie就称为会话cookie 存储在内存中
设置了过期时间 存储在硬盘上
session:
服务器端通常利用散列表来保存session的信息 key就是sessionid value就是session的值
服务器先检查这个客户端的请求里边是否已经包含了sessionid 如果已经包含了测出来的sessionid 服务器就按照把session检索出来使用 如果没有包含sessionid 则为客户端创建一个sessionid 并且在服务器的散列表中生成一个与sessionid对应的session值
sessionid的值就是通过cookie来保存的。但是cookie是可以被人为的禁止 所以必须有其他的机制可以允许服务器想浏览器传回sessionid。
1、表单隐藏字段 在表单中添加一个隐藏的input 服务器会自动修改客户端表单的值,以便在表单提交时就可以把sessionid传回服务器
1、cookie数据是存放在客户端上边的 session是存放在服务器数据上边的
2、cookie是不安全的 被人可以通过获得你本地的cookie 进而使用的这个cookie假装你进行网站的访问
3、单个cookie保存的数据不会超过4k 很多浏览器限制一个站点最多保存20个cookie
4、所以个人重要的信息(登陆信息)要存放在session中 其他信息可以存放在cookie中
var CookieUtil = { // 设置cookie set : function (name, value, expires, domain, path, secure) { var cookieText = ""; cookieText += encodeURIComponent(name) + "=" + encodeURIComponent(value); if (expires instanceof Date) { cookieText += "; expires=" + expires.toGMTString(); } if (path) { cookieText += "; path=" + path; } if (domain) { cookieText += "; domain=" + domain; } if (secure) { cookieText += "; secure"; } document.cookie = cookieText; }, // name=value; expires=expiration_time; path=domain_path; domain=domain_name; secure // 获取cookie get : function (name) { var cookieName = encodeURIComponent(name) + "=", cookieStart = document.cookie.indexOf(cookieName), cookieValue = ""; if (cookieStart > -1) { var cookieEnd = document.cookie.indexOf (";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd)); } return cookieValue; }, // 删除cookie unset : function (name, domain, path, secure) { this.set(name, "", Date(0), domain, path, secure); } }; // 测试 CookieUtil.set("name", "zhang"); var name = CookieUtil.get("name"); alert(name); // zhang CookieUtil.unset("name"); alert(CookieUtil.get("name")); // 空
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88619.html
摘要:首先先来一段总结用于本地数据存储,出现在服务器和浏览器交互的响应头部和请求头部中,受到单域名下的数量单个大小性能安全限制。子技术的出现缓解了单域名下的数量限制,关于子有一整套工具函数可以使用。 前言 本篇主要介绍Cookie技术的读书总结,但是我认为逻辑上最好会和Web Storage技术放在一起进行对比,因此后续会再总结一篇关于WEB存储的姊妹总结,敬请期待。 首先先来一段总结:Co...
摘要:首先先来一段总结用于本地数据存储,出现在服务器和浏览器交互的响应头部和请求头部中,受到单域名下的数量单个大小性能安全限制。子技术的出现缓解了单域名下的数量限制,关于子有一整套工具函数可以使用。 前言 本篇主要介绍Cookie技术的读书总结,但是我认为逻辑上最好会和Web Storage技术放在一起进行对比,因此后续会再总结一篇关于WEB存储的姊妹总结,敬请期待。 首先先来一段总结:Co...
摘要:保存中文上面我们的例子保存的是英文字符,下面我们来看下保存中文字符会怎么样。出异常了中文属于字符,英文数据字符,中文占个字符或者个字符,英文占个字符。如果为,则表示删除该。的值规定为域名的隐私安全机制决定是不可跨域名的。 什么是会话技术 基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一...
摘要:的属性在浏览器的控制台中,可以直接输入来查看。可以在浏览器的控制台中看出哪些是类型的,下带绿色对勾的即是,如图只要是类型的在控制台通过是获取不到的,也不能进行修改。当会话过期或被放弃后,服务器将终止该会话。在中,用取代了。 本文由云+社区发表 在前端面试中,有一个必问的问题:请你谈谈cookie和localStorage有什么区别啊? localStorage是H5中的一种浏览器本地存...
阅读 1864·2021-11-19 09:40
阅读 2110·2021-10-09 09:43
阅读 3165·2021-09-06 15:00
阅读 2795·2019-08-29 13:04
阅读 2740·2019-08-26 11:53
阅读 3466·2019-08-26 11:46
阅读 2304·2019-08-26 11:38
阅读 372·2019-08-26 11:27