cookie

关于session的总结(摘录)

﹥>﹥吖頭↗ 提交于 2020-01-22 04:44:42
作者Hyddd 链接:http://www.cnblogs.com/hyddd/archive/2008/12/29/1364646.html 看了一些Session的资料,在这里再总结一下Session相关的知识(很多是从网上搜集的资料)。 1.Session是什么?   session,中文经常翻译为会话。   (1).打个比方:比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。同理,用户的一次Session可以理解为:打开这个网站到关闭这个网站的一系列动作。    (2).然而当session一词与网络协议相关联时,它又往往隐含了“面向连接”和/或“保持状态”这样两个含义,“面向连接”指的是在通信双方在通 信之前要先建立一个通信的渠道,比如打电话,直到对方接了电话通信才能开始,与此相对的是写信,在你把信发出去的时候你并不能确认对方的地址是否正确,通 信渠道不一定能建立,但对发信人来说,通信已经开始了。“保持状态”则是指通信的一方能够把一系列的消息关联起来,使得消息之间可以互相依赖,比如一个服 务员能够认出再次光临的老顾客并且记得上次这个顾客还欠店里一块钱。这一类的例子有“一个TCP session”或者“一个POP3 session”。   (3).而到了web服务器蓬勃发展的时代,session在web开发语境下的语义又有了新的扩展

了解Cookie

♀尐吖头ヾ 提交于 2020-01-22 04:43:40
前言 网络早期最大的问题之一是如何管理状态。简而言之,服务器无法知道两个请求是否来自同一个浏览器。当时最简单的方法是在请求时,在页面中插入一些参数,并在下一个请求中传回参数。这需要使用包含参数的隐藏的表单,或者作为URL参数的一部分传递。这两个解决方案都手动操作,容易出错。 网景公司当时一名员工Lou Montulli,在1994年将“cookies”的概念应用于网络通信,用来解决用户网上购物的购物车历史记录,目前所有浏览器都支持cookies。 cookie是什么 cookie翻译过来是“饼干,甜品”的意思,cookie在网络应用中到处存在,当我们浏览之前访问过的网站,网页中可能会显示:你好,王三少,这就会让我们感觉很亲切,像吃了一块很甜的饼干一样。 由于http是无状态的协议,一旦客户端和服务器的数据交换完毕,就会断开连接,再次请求,会重新连接,这就说明服务器单从网络连接上是没有办法知道用户身份的。怎么办呢?那就给每次新的用户请求时,给它颁发一个身份证(独一无二)吧,下次访问,必须带上身份证,这样服务器就会知道是谁来访问了,针对不同用户,做出不同的响应。,这就是Cookie的原理。 其实cookie是一个很小的文本文件,是浏览器储存在用户的机器上的。Cookie是纯文本,没有可执行代码。储存一些服务器需要的信息,每次请求站点,会发送相应的cookie

webp图片实践之路

狂风中的少年 提交于 2020-01-22 04:14:11
最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中。传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显。估计在不久的将来,webp会成为标配。 本文主要分享一下我们在webp图片使用上的实践之路。 我们会从三部分来聊聊webp这个话题。 什么是webp,它有什么用? 使用webp的常规方法以及优劣。 我们是如何用上webp的。 PS:如果是对webp有一定了解的朋友,建议直接看第三部分。因为是讲我们的实践之路,所以第三部分会多讲一些。 一、什么是webp,它有什么用? webp是谷歌推出的一种图片格式,它的优点就是同等画面质量下,体积比jpg、png这些少了25%以上。 大家都知道移动互联网时代,页面大小和用户留存息息相关,更快的加载页面才能让更多用户关注到你的内容,而图片一直都是页面体积的大头,拿我们的活动页面来说,图片占据了80%以上的页面大小。所以使用webp的话,可以瞬间让页面大小下降1/4,不得不说是一个极具性价比的优化点。 当然,它也不是没有缺点,浏览器对于webp的解码速度相对于jpg来说会慢一些,不过这和体积减小带来的性能提升,可以忽略不计了。 那么既然webp这么好,为什么没有大范围使用呢?归根结底还是webp是谷歌推出的,目前主流浏览器只有chrome和安卓支持。不过IOS也快支持了,期待ing^ ^。在

【WebDriver API】python之selenium操作Cookie

夙愿已清 提交于 2020-01-22 04:10:24
有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的。WebDriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息。 WebDriver操作cookie的方法: get_cookies():获得所有cookie信息。 get_cookie(name):返回字典的Key为“name”的cookie信息。 add_cookie(cookie_dict):添加cookie。“cookie_dict”指字典对象,必须有name和value值。 delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,"optionsString"是该cookie的选项,目前支持的选项包括“路径”,“域”。 delete_all_cookies():删除所有cookie信息。 下面通过get_cookies()来获取当前浏览器的cookie信息。 from selenium import webdriver driver=webdriver.Firefox() driver.get("http://www.youdao.com") #获得cookie信息 drver=webdriver.Firefox() drver.get("http://www

Zuul丢失Cookie的解决方案

瘦欲@ 提交于 2020-01-22 03:12:06
我们是使用spring cloud zuul作为api-gateway实践中,发现默认zuul会过滤掉cookie等header信息,有些业务场景需要传递这些信息该怎么处理呢? 处理方式 在api-gateway的application.properties文件中添加 zuul.sensitive-headers= 问题原因 负责根据ServiceId来路由的RibbonRoutingFilter在route之前会调用ProxyRequestHelper的buildZuulRequestHeaders(request)来重新组装一个新的Header。 在buildZuulRequestHeaders方法中会对RequsetHeader中的每一项调用isIncludedHeader(name)来判断当前项是否应该留在新的Header中,如下图,如果当前项在IGNORED_HEADERS(需要忽略的信息)中,就不会在新header中保留。 PreDecorationFilter过滤器会调用ProxyRequestHelper的addIgnoredHeaders方法把敏感信息(ZuulProperties的sensitiveHeaders属性)添加到请求上下文的IGNORED_HEADERS中 sensitiveHeaders的默认值初始值是"Cookie", "Set-Cookie",

vue-cookies组件 使用教程

落爺英雄遲暮 提交于 2020-01-21 23:46:45
目录 一、vue-cookies简介 二、vue-cookies安装与配置 三、vue-cookies的使用 一、vue-cookies简介 vue-cookies组件是vue框架用来操作浏览器cookies的一种组件。 可以按 key:value 的形式将数据储存到浏览器的cookie中。 注意: vue-cookies和vue-cookie是两种组件,不要混淆了! 二、vue-cookies安装与配置 安装:前端项目目录下的终端 >: cnpm install vue-cookies 配置:main.js import cookies from 'vue-cookies' Vue.prototype.$cookies = cookies; 三、vue-cookies的使用 // 设置cookie exp: '1s' | '1h' | '1d' this.$cookies.set(key, value, exp) // 按key取cookie this.$cookies.get(key) // 手动移除cookie this.$cookies.remove(key) // 判断cookie是否存在 return false or true this.$cookies.isKey(key) 注意: cookies的名称key不能设置为以下关键字: ['expires','max

cookie封装函数(添加,获取,删除)

故事扮演 提交于 2020-01-21 11:40:09
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //添加cookie(封装) encodeURI()中文编码,decodeURI()中文解码 function addcookie(key,value,day){ var date=new Date(); date.setDate(date.getDate()+day); return document.cookie=key+"="+encodeURI(value)+";expires="+date; } addcookie('name','许小霞',5); //添加cookie var date=new Date(); date.setDate(date.getDate()+4);//设置过期时间 document.cookie='password=123;expires='+date; //获取cookie function getcookie(key){ //获取的cookie值为字符串,用;分隔成数组对象。 var arr=decodeURI(document.cookie).split(';'); //用for循环取出每一个数组对象中的元素 for(var i=0;i

Tomcat:A cookie header was received[xxxxxx] that contained an invalid cookie. That cookie will be ig

别等时光非礼了梦想. 提交于 2020-01-21 09:44:06
Tomcat:A cookie header was received[xxxxxx] that contained an invalid cookie. That cookie will be ignored. 搬运来源:https://blogs.yahoo.co.jp/dk521123/36721868.html 原因: *从Tomcat 8,Cookie的解析已经符合RFC 6265。 *由于RFC 6265不再接受以前允许的逗号分隔符(例如RFC 2109) "Cookie:KEY 1 = VAL 1,KEY 2 = VAL 2"的格式被视为非法 发生过程: *客户端(Java) | HTTPS ↓ 负载均衡器/粘性会话 | HTTP ↓ Apache(v 2.4.6)*也发生在2.2.31版本中 | AJP 1.3 ↓ Tomcat(v8.5.11) ↓ Web服务(Java) RFC 2109 Cookie标头中的分隔符在任何地方都是分号(;)。 #Cookie标头中的分隔符是分号(;)无处不在 服务器还应该接受逗号(,)作为cookie值之间的分隔符,以便将来兼容。 #服务器应该接受逗号和分隔符以向后兼容cookie值。 ⇒换句话说,RFC 2109中的"Cookie:KEY 1 = VAL 1,KEY 2 = VAL 2"正常 RFC 6265 cookie

01.安全扫描之解决Cookie未设置Secure标识问题

雨燕双飞 提交于 2020-01-21 07:33:33
1.问题描述 cookie未设置Secure标识:Cookie中有一个Sevure标识,如果设置了,那么这个cookie只会再https下被发送出去,https的传输时加密的,减少敏感cookie再http明文传输时泄露的可能性 2.解决方案 在web.xml中添加一个对controller的过滤器 <filter> <filter-name>cookie</filter-name> <filter-class>com.skycloud.bigdata.bdtm.authority.CookieFilter</filter-class> </filter> <filter-mapping> <filter-name>cookie</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> CookieFilter.java package com.skycloud.bigdata.bdtm.authority; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import javax

分布式session

青春壹個敷衍的年華 提交于 2020-01-21 01:17:59
什么是session session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。 说白了session就是一种可以维持服务器端的数据存储技术。session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能 3. 单纯的使用session来维持用户状态的话,那么当同时登录的用户数量较多的时候,或者存在较多的数量的session会导致查询慢的问题 本质上:session技术就是一种基于后端有别于数据库的临时存储数据的技术 分布式session实现方式 tomcat+redis方案 方便,但是与tomcat容器重耦合 使用 session 的代码,跟以前一样,还是基于 tomcat 原生的 session 支持即可,然后就是用一个叫做 Tomcat RedisSessionManager 的东西,让所有我们部署的 tomcat 都将 session 数据存储到 redis 即可。 Spring session+redis 给 sping session 配置基于 redis 来存储 session 数据,然后配置了一个 spring