session

移动端访问服务器接口,对token是否需要设置问题的见解

此生再无相见时 提交于 2020-03-04 19:19:38
一般移动端访问服务器接口,服务器都会设置一个token,对token进行鉴权,鉴权通过就可以继续访问,否则就不通过。 直入主题: 我的实践是不需要特意设置token,通过在请求时添加一个请求头实现。如此有3点好处。一是不用设置token;二是移动端访问服务器接口的生命周期与session的生命周期保存一致,不用担心访问接口是session突然失效,当然你过了session周期,再次访问接口session依旧会失效,只需要替换一个新的session就可以解决问题。这就跟你访问一个网站系统,你登录后一段时间不做任何操作,然后在操作会让你重新退出登陆一样;三是移动端访问服务器接口不会生成新的session会话,一定程度上可以减轻服务器的压力。 接口是自己随便写的,做测试够用了。 直接上代码: 1.首先在浏览器输入自己接口的链接,效果如下: 访问接口后的session为7D08B4DA4CBA4ACC88D41944FBB0C8B7,以服务器session为准。这里用OkHttpClient来请求该接口,接口代码如下图所示: 通过GET方式请求接口,请求需要加上cookie这个请求头,见第一张图红框中内容。 运行后效果如下图所示: 上图没有产生新的session值,说明请求添加cookie请求头生效了。客户端效果如下: 此图时间与上图时间一致。 注释客户端添加请求头的代码,效果如下图:

前端知识点总结之cookie和session完全总结

帅比萌擦擦* 提交于 2020-03-04 10:23:01
cookie机制 123 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies 。 12 具体来说cookie机制采用的是在客户端保持状态的方案。它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持。cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力。 1234 正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript也可以生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。 12345 cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失

Nginx负载均衡

心不动则不痛 提交于 2020-03-04 10:04:30
转载:http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html 最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大.. nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。 如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 下载---安装Nginx这些不介绍了,前篇有介绍. windows和Linux下配置Nginx负载的写法一样,故不分开介绍. Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 2)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 3)、fair(第三方)

转:Session,Token相关区别

北城余情 提交于 2020-03-04 08:56:59
参考地址: https://www.cnblogs.com/xiaozhang2014/p/7750200.html 1. 为什么要有session的出现? 答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的。如果要进行类似论坛登陆相关的操作,就实现不了了。 2. session生成方式? 答:浏览器第一次访问服务器,服务器会创建一个session,然后同时为该session生成一个唯一的会话的key,也就是sessionid,然后,将sessionid及对应的session分别作为key和value保存到缓存中,也可以持久化到数据库中,然后服务器再把sessionid,以cookie的形式发送给客户端。这样浏览器下次再访问时,会直接带着cookie中的sessionid。然后服务器根据sessionid找到对应的session进行匹配; 还有一种是浏览器禁用了cookie或不支持cookie,这种可以通过URL重写的方式发到服务器; 简单来讲,用户访问的时候说他自己是张三,他骗你怎么办? 那就在服务器端保存张三的信息,给他一个id,让他下次用id访问。 3. 为什么会有token的出现? 答:首先,session的存储是需要空间的,其次,session的传递一般都是通过cookie来传递的,或者url重写的方式

Cookie和Session 会话技术

蹲街弑〆低调 提交于 2020-03-04 07:13:22
什么是会话技术 HTTP协议是无状态、无记忆的。多次请求之间,无任何的联系,无法把请求的状态保存下去,即同一用户请求同一网站的不同页面,服务器无法识别是否是同一用户发起的请求。用户无法进行连续的业务逻辑。 在同一台浏览器对服务器的多次请求中,将数据持久化存储的技术,以实现连续的业务逻辑。 会话周期:从打开浏览器,访问一些web资源,直至关闭浏览器为止,这个时间间隔为会话周期。 会话周期结束可能导致某些数据失效。 会话技术分类:按照数据持久化的位置进行区分,如果数据保存在浏览器端,我们称之为cookie技术,如果数据保存在服务器端,我们称之为session技术。 cookie原理 :我们的cookie数据是保存在浏览器端的,我们每次请求的时候,都会携带这个信息. 这样的话,服务器就认识我们了 ① 我们的浏览器如果是第一次请求服务器, 是没有cookie信息的.这个时候我们的第一次请求没有携带任何cookie信息, 请求发给服务器之后, A脚本会通过 setcookie来给我们设置一个cookie ② 响应的时候会携带设置的cookie信息, 浏览器接收到这个响应之后,会把cookie信息保存在浏览器的cookie区域中 ③ 如果我们再次请求 同一个网站的时候,我们的请求会携带cookie信息. ④ 服务器脚本会通过$_COOKIE来获取 请求携带的cookie

ssm重定向失效?

本秂侑毒 提交于 2020-03-04 05:15:59
@RequestMapping(value = "delReply") @ResponseBody public String delReply(@Param("replyid") Integer replyid, HttpSession session, RedirectAttributes attr) { Integer userid = (Integer) session.getAttribute("userid"); msgReplyService.delReply(replyid); attr.addAttribute("userid",userid); System.out.println("删回复表"); return "redirect:message"; } 重定向失效,页面显示的是redirect:message,并不是转到message方法。 解决方案: @RequestMapping(value = "delReply") public String delReply(@Param("replyid") Integer replyid, HttpSession session, RedirectAttributes attr) { Integer userid = (Integer) session.getAttribute("userid");

hibernate入门---Hibernate查询方式(for循环、构造器、对象数组等)【第三天,相当于总结整合】

柔情痞子 提交于 2020-03-04 04:30:55
Hibernate查询方式【内连接和外连接不在此篇】 本文讲述的是HQL以及各种情况输出对象的for循环以及构造器的例子,当然这是Hibernate结合一起完成的任务。技术上,离开一些方法,不掌握一些基本的方法,灵活使用,是会带来诸多不便的。 查询方式都在例子里的方法里,我把全部都写在了一个类里,基本思路: 类:Customer->CustomerManager->Demo 配置文件:hibernate.cfg.xml->Customer.hbm.xml 关系: (我们不去考虑什么session啊之类的内部机制,单纯的从自己写的类和配置文件来进行初步理解,深入机制前面已有/也可查阅资料了解更多) 下面直接贴例子,自行体会(因为之前的文章基本总结过了,当然这个例子还是能够看出一些思想的): 一、配置文件:(你没有看错,还是那个hibernate.cfg.xml的配置文件) <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate

Tensorflow的基本使用

浪子不回头ぞ 提交于 2020-03-03 23:22:09
基本使用 使用 TensorFlow, 你必须明白 TensorFlow: • 使用图 (graph) 来表示计算任务. • 在被称之为 会话(Session)的上下文 (context) 中执行图. • 使用 tensor 表示数据. • 通过变量(Variable)维护状态. • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据. 综述 TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个Tensor , 执行计算, 产生 0 个或多个Tensor . 每个 Tensor 是一个类型化的多维数组. 例 如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是[batch,height,width,channels] . 一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在会话 里被启动. 将图的 op 分发到 诸如 CPU 或 GPU 之类的 设备上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 P ython 语言中, 返回的 tensor 是 numpy ndarray对象; 在 C 和 C++ 语言中, 返回的 tensor

解决JPA使用Set属性时自动持久化

前提是你 提交于 2020-03-03 22:07:01
今天有个场景,需要将jpa查询出来的结果集合里的id设置为自1开始自增 如果直接将list去forEach 遍历设置id,最后肯定是报错的 所以这里就需要解决JPA自动持久化的问题 Hibernate的持久化状态默认是和session关联的,并且数据是已经存在与数据库和缓存里的。 如果将查出来的id进行重新设置,那么缓存session中的数据就会发生变化,随后数据库也会被update。 所以这个时候就在重设id之前,先将session中,这些数据给移除。 @PersistenceContext private EntityManager entityManager; HibernateEntityManager hEntityManager = (HibernateEntityManager)entityManager; Session session = hEntityManager.getSession(); itemList.forEach(item -> {session.evict(Item);item.setId(ItemTypeEnum.findByType(item.getType()).getCode());}); 首先先用注解注入实体类管理器,然后获取到session,接着调用 evict 移除该数据。 session还有close和clear方法

vulnhub~MyExpense

一笑奈何 提交于 2020-03-03 20:24:46
最近有点忙,这几天的vulnhub断更了,今天试着做了一下myexpense,当然想要一帆风顺是不可能的,哪怕是有别人的steps 和walkthrough.所以就遇到的坑总结如下: 一般套路就是nmap上手 dirsearch 发现/admin/admin.php ,访问后得到如下所示: 然后如别人所言,成功的利用xss(store),but file_put_contents()无法创建文件,这就尴尬啦。session 就无从获取了,最终发现是/var/www/html目录没有写的权限给其他用户,所以你懂的,只需要 chmod 777 /var/www/html。万事大吉,另外最重要的就是开启http服务,不然你是无法得到任何消息的。(上图中许多用户都是自己创建的) 然后成功执行脚本。得到session。 在利用mrivier 用户的cookie 登录的时候,必须对于每次的request都使用bp修改cookie,否则请求就会失败。 对于sql注入的时候,对于不太了解的人,我是强烈的建议使用sqlmap,简单自动化, 脚本文件内容 基本情况就是这样了。 来源: https://www.cnblogs.com/wlpk/p/12403449.html