• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html/xhtml > cookie和session介绍

cookie和session介绍

作者:jnshu_it的博客 字体:[增加 减小] 来源:互联网 时间:2017-09-08

本文主要包含session,cookie,http协议等相关知识,jnshu_it的博客希望在学习及工作中可以帮助到您

一个小例子:

星巴克开始优惠活动,每消费10杯咖啡,会免费赠送1杯。考虑到一个人一次性消费10杯咖啡几乎不可能,所以需要采取某种方式来记录顾客的消费数量。

解决方案:

1,店员很厉害,每个顾客的消费记录都记得一清二楚;

2,分给顾客一张卡片,每消费一次记录一次;

3,发给顾客一张卡片,上面有卡号,顾客每消费一次,由店员在操作机上记录一次。

从生活上来看,方案一的可执行性几乎为0,方案二和方案三我们都见过。

而方案二和三正是对应的客户端记录和服务端记录。与之相对应的正式cookie和session。

好了,我们进入正题。

我们知道HTTP协议是一种无状态的协议,数据一旦交换完毕,客户端与服务端的连接就会关闭,再次交换数据需要重新建立连接。而我们有时候又有跟踪会话的需求,所以必须引入一种机制:cookie。

什么是cookie?

cookie是一小段文本信息,它记录了一个用户访问某个网站时的用户信息。

cookie机制

cookie机制其实在前面已经说了,但cookie需要解决三个问题:分发、内容和使用。

cookie的分发是通过扩展HTTP协议来实现的,服务器端通过在HTTP的响应由中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。

cookie的内容主要包括名字、值、过期时间、路径和域。

cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

cookie属性

name:cookie的名字,一旦创建,名称不可更改。

value:cookie的值,如果值为Unicode字符,需要为字符编码。如果为二进制数据,则需要使用BASE64编码。

maxAge:cookie失效时间,单位秒。如果为正数,则该cookie在maxAge后失效。如果为负数,该cookie为临时cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该cookie。如果为0,表示删除该cookie。默认为-1。

secure:该cookie是否仅被使用安全协议传输。

path:该cookie的使用路径。如果设置为"/sessionWeb/",则只有ContextPath为“/sessionWeb/”的程序可以访问该cookie。如果设置为“/”,则本域名下ContextPath都可以访问该cookie。

session机制

session机制是一种服务端的机制,服务器使用一种类似散列表的结构来保存信息。

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端里的请求里是否已包含了一个session标识--sessionID,如果已经包含一个sessionID,则说明以前已经为此客户端创建过session,服务器就按照sessionID把这个session检索出来使用(检索不到,可能会新建一个),如果客户端请求不包含sessionID,则为此客户端创建一个session并且声称一个与此session相关联的sessionID,sessionID的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个sessionID将被在本次响应中返回给客户端保存。

保存sessionID的方式

1,使用cookie:一般这个cookie的名字都是类似于XSESSIONID

      如:JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 ---名字就是JSESSIONID

2,URL重写:因为cookie可以被人为禁止,所以为了保证sessionID能够被传递给服务器,使用URL重写也是一种解决方法。

如:

http://...../xxx;jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764

http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764

两种写法都行。

session、cookie的区别

1,cookie数据存放在客户的浏览器(本地),session数据放在服务器上;

2,cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session;

3,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie;

4,单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie;

5,可以将重要信息存放为session。

 

 

您可能想查找下面的文章:

  • cookie和session介绍

相关文章

  • 2017-08-05网页常用代码 比较基础的东西
  • 2017-08-05html格式化json的实例代码
  • 2017-08-05HTML 标记一定不要忘记关闭
  • 2017-08-05a标签href属性与onclick事件使用实例
  • 2017-08-05DOCTYPE 文档类型声明(网页爱好者必看)
  • 2017-08-05关于iframe的一点发现与思考
  • 2017-08-05iframe的src设置为about:blank之后细节探讨
  • 2017-08-05纯css为select添加样式(无脚本)实现
  • 2017-08-05html页面互相传值的问题解决方案
  • 2017-08-05关于table表格中的内容溢出布局方法

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • htnl基础知识之网页页面的初步了解
    • 超连接的四种状态的应用详细讲解
    • XHTML标签的嵌套规则分析
    • 网页图片格式PNG,JPG,GIF如何选择使用
    • 这样去写你的 HTML 让你的代码更好的兼容性
    • H标记要在网页制作中合理使用
    • div怎样在object上面显示不被object动画给遮挡
    • HTML教程:收集的常用的HTML标签(4)
    • 通过CSS样式实现的html背景色渐变效果
    • 202个免费的高质量XHTML模板(1)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有