session

理解cookie和session技术

有些话、适合烂在心里 提交于 2020-03-09 17:08:07
一、HTTP协议的无状态性 WEB应用程序使用的是HTTP协议传输数据的,HTTP协议是一个无状态的协议,这次数据传输完毕,客户端会和服务端断开连接,再次传输数据就需要重新建立新的连接,这也就无法会话跟踪。可以理解为服务器是一个健忘症,这次你访问他和它交换数据,下次来他就不认识你了,这是一个很不友好的事情。这个问题有一个很直接的方法解决它,就是服务器你认识你,你每次都告诉它你的名字,也就是每次客户端访问的时候都需要带上自己的参数,可以采用GET请求每次带上自己的参数,但是这肯定是不可取的,应为GET请求会把参数信息放在浏览器的地址栏中,信息都暴露了,完全保证不了安全性。为了解决HTTP协议这个健忘症患者,cookie和session技术登上了历史舞台。 二、Cookie 既然每次GET请求的时候把数据带上保证安全的,cookie技术把数据放在请求头中了,这样就安全一点了吧。其实也不怎么安全..后面说。cookie技术是一种客户端技术,首先程序给客户端以cookie的形式把数据存放在了浏览器中,这样浏览器再次去请求的时候会带上这个数据,这样浏览器就认识这个请求了。访问过程就是客户端第一次访问服务器的时候浏览器会在响应头中加上 Set-Cookie 信息,当跳转到另外一个资源的时候也就是再次发送一个请求的时候,请求会在请求头上带上 Cookie:xxx ,也就是前面自己的数据

cookie and session

牧云@^-^@ 提交于 2020-03-09 17:05:06
##### cookie 通过在客户端记录信息确定用户身份,Session通过在服务记录信息确定用户身份 http信息是无状态的协议。一旦数据交换完毕,客户端与服务器的链接就会关闭,再次交换数据需要建立新的链接。这就意味者服务器无法在链接上跟踪会话。 cookie就是这样的一种机制,它可以弥补http无状态的不足。 - 通过request.getCookie()获取客户端提交的所有的Cookie(Cookie[])数组形式返回。 - response.addCookie(Cookie cookie) 向 客户端设置Cookie. - cookie的不可夸域名性 Cookie在客户端是由浏览器来管理的 不同的域名的客户端是不能相互操作的 - cookie 的删除与修改 Cookie如果要修改某个Cookie,只需要新建一个同名的Cookie,添加到response中覆盖原来的Cookie。 如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。注意是0而不是负数。负数代表其他的意义。读者可以通过上例的程序进行验证,设置不同的属性 ## Session是服务器端使用的一种记录客户端状态的 机制,使用上比Cookie简单些,相应的增加服务的存储压力。 - session保存在服务器端

SSL连接建立过程分析

二次信任 提交于 2020-03-09 13:51:15
Https协议:SSL建立过程分析 web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Transfer Protocol over Secure Socket Layer),对于安全性要求比较高的情况,可以通过它访问web,比如工商银行https://www.icbc.com.cn/icbc/(当然也可以通过http协议访问,只是没那么安全了).其安全基础是SSL协议. SSL协议,当前版本为3.1(SSL3.1就是TLS1.0)。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输.它位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 为了了解详细过程,可以通过网络抓包工具(Commview,Iris)分析https协议,SSL连接建立过程中,数据包交换情况.

面试题篇(2016)】javaweb

天大地大妈咪最大 提交于 2020-03-09 08:21:40
面试题篇(2016)】java基础 1. get和post的区别 都是http的请求方式 get 一般用于获取查询资源信息,提交的数据会在地址栏显示出来,有长度限制,安全性较低 post一般用于更新资源信息,提交的数据放在请求头的消息体中,没有长度限制,安全性较高 2. 对servlet的理解 全称Java Servlet,是用java编写的服务器端程序,都要实现Servlet接口的类 3. servlet生命周期 Servlet 通过调用 init () 方法进行初始化。 Servlet 调用 service() 方法来处理客户端的请求。 Servlet 通过调用 destroy() 方法终止(结束)。 4. forward和redirect的区别 名字 含义 forward 服务器端的转向,是在一次请求中完成的,在客户端浏览器地址中不会显示出转向后的地址(更高效) redirect 客户端的转向,浏览器将会得到跳转的地址,并 重新发送 请求链接,如需跳转到另一个服务器上的资源,使用sendRedirect() 方法 5. jsp和servlet的区别 jsp是servlet的扩展,所有的jsp文件都会被翻译为一个继承HttpServlet的类,也就是说jsp最终也是一个Servlet。 jsp侧重视图,servlet主要用于控制逻辑。 6. jsp的内置对象 九大内置对象 含义

python框架Django实战商城项目之工程搭建

≯℡__Kan透↙ 提交于 2020-03-09 08:20:12
项目说明 该电商项目类似于京东商城,主要模块有验证、用户、第三方登录、首页广告、商品、购物车、订单、支付以及后台管理系统。 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用jinja2模板引擎实现,局部刷新采用vue.js实现。 项目运行机制如下: 项目搭建 工程创建 项目使用码云进行源代码版本控制,在码云创建好后直接克隆到本地即可,然后在项目根目录下执行 virtualenv venv创 建虚拟环境, source venv/bin/activat 激活虚拟环境后,安装django后,执行 django-admin startproject immortal_mall 创建django工程。 配置开发环境 商城项目有两个环境,分别为测试环境和开发环境,django项目在创建完成后只有一个settings配置文件,但是两个环境需要两个配置文件,这里需要修改django获取配置文件的方式。新建settings包,再新建dev和pro两个配置文件,将默认生成的settings文件里面的内容拷贝至dev和pro文件里,结果如下 再在mange.py文件里指定开发环境需要的配置文件,生成环境的后面再说 配置jiaja2模板引擎 安装jinja2扩展包pip install jinja2,然后在dev文件中配置一下 这里有个注意的点,如果在运行的时候报错了,提示

JSTL 核心标签库 使用

ⅰ亾dé卋堺 提交于 2020-03-09 07:27:56
JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签: out 、 set 、 remove 、 catch 2.流程控制标签: if 、 choose 、 when 、 otherwise 3.循环标签: forEach 、 forTokens 4.URL操作标签: import 、 url 、 redirect 使用标签时,一定要在jsp文件头加入以下代码: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 下面分别对这些标签进行说明: 1. <c:out> 用来显示数据对象(字符串、表达式)的内容或结果 使用Java脚本的方式为:<% out.println("hello") %> <% =表达式 %> 使用JSTL标签:<c:out value="字符串">,例如: <body> <c:out value="&lt要显示的数据对象(未使用转义字符)&gt" escapeXml="true" default="默认值"></c:out><br/> <c:out value="&lt要显示的数据对象(使用转义字符)&gt" escapeXml="false" default="默认值"></c:out><br/> <c:out value="${null}" escapeXml=

前端开发数据存储技术

一个人想着一个人 提交于 2020-03-09 04:40:40
浏览器端: cookie WebStorage(localStorage、sessionStorage) indexedDB 服务器端: session cookie Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右。cookie只能保存字符串类型,以文本的方式。 它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。 #session机制: 当服务器收到请求需要创建session对象时,首先会检查客户端请求中是否包含sessionid。如果有sessionid,服务器将根据该id返回对应session对象。如果客户端请求中没有sessionid,服务器会创建新的session对象,并把sessionid在本次响应中返回给客户端。通常使用cookie方式存储sessionid到客户端,在交互中浏览器按照规则将sessionid发送给服务器。如果用户禁用cookie,则要使用URL重写,可以通过response.encodeURL(url) 进行实现;API对encodeURL的结束为,当浏览器支持Cookie时,url不做任何处理;当浏览器不支持Cookie的时候,将会重写URL将SessionID拼接到访问地址后。

关于 InnoDB 锁的超全总结

这一生的挚爱 提交于 2020-03-09 02:28:16
共享锁和排他锁,其实就是我们常说的读锁和写锁。它们之间的互斥规则,想必都清楚,就不赘述了。但有一点需要注意,共享锁和排他锁是标准的实现行级别的锁。举例来说,当给 select 语句应用 lock in share mode 或者 for update,或者更新某条记录时,加的都是行级别的锁。 与行级别的共享锁和排他锁类似的,还有表级别的共享锁和排他锁。如 LOCK TABLES ... WRITE/READ 等命令,实现的就是表级锁。 Intention Locks 在 InnoDB 中是支持多粒度的锁共存的,比如表锁和行锁。而 Intention Locks - 意向锁,就是表级锁。和行级锁一样,意向锁分为 intention shared lock (IS) 和 intention exclusive lock (IX) . 但有趣的是,IS 和 IX 之间并不互斥,也就是说可以同时给不同的事务加上 IS 和 IX. 兼容性如下: 这时就产生疑问了,那它俩存在的意义是什么?作用就是,和共享锁和排他锁互斥。注意下,这里指的是表级别的共享锁和排他锁,和行级别没有关系! 官网中给了这样一段解释: The main purpose of intention locks is to show that someone is locking a row, or going to lock

java web----jsp语法

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 00:43:41
JSP学习 注意:jsp中${user},是在服务器上的,首先去request中找,没有去session中找。。。。。(自己总是错误的认识jsp是一个网页,在浏览器上进行的) Jsp的page指令学习   <%@page属性名=“属性值”属性名=“属性值”...%> 属性名:   1anguage:声明sp要被转译的语言。   import:声明转译的java文件要导入的包,不同的包使用逗号隔开。   pageEncoding:设置jsp文件的数据编码格式。   contentType="text/html;charset=utf-8"设置isp数据响应给浏览器时,浏览器的解析和编码格式。   session:设置转译的servlet中是否开启session支持,默认开启,true表示开启。false表示关闭。   errorPage:设置jsp运行错误跳转的页面。(里面传入跳转的jsp路径)   extends:设置jsp转译的java文件要继承的父类(包名+类名)。 作用:   配置sp文件的转译相关的参数。 jsp java代码块 使用:<% java代码 %>局部代码块   缺点:可阅读性极差 局部代码块   声明的java代码会被原样转译到jsp对应的servlet文件的_JspService方法中 <body> <% int a =3; if (a>1){ %> <b>

Java自学路线图之Javaweb自学

元气小坏坏 提交于 2020-03-09 00:11:05
文章目录 Javaweb自学技术要点 Javaweb自学--MySQL Javaweb自学--JDBC Javaweb自学--HTML5&CSS3 Javaweb自学--JavaScript Javaweb自学--jQuery Javaweb自学--XML Javaweb自学--Web服务器基础 Javaweb自学--Servlet Javaweb自学--Cookie&Session Javaweb自学--JSP Javaweb自学--EL Javaweb自学--JSTL Javaweb自学--Filter&Listener Javaweb自学--文件上传和下载 Javaweb自学--VUE Javaweb自学--Maven初级 Javaweb自学--Redis Javaweb自学--Linux Javaweb自学--Nginx Javaweb自学资源 Java自学路线图的第三个阶段是Javaweb自学,在Java自学路线图前两个阶段学完后开始自学Javaweb。Javaweb的自学目标是具备基本的JavaWeb开发能力,熟悉Linux服务器及相关软件的使用,可完成中小型企业级项目的开发需求。这个阶段自学完成后就可以考虑工作了,是不是很快? 黑马程序员Java自学路线图的这个阶段需要你掌握JavaWeb开发基础知识,熟悉Java基本开发环境、