今天刚刚看了篇微信,大体意思是说g哥之类的网站把很多存session的东西都放cookie里了,可减少服务器的负担种种。然后我就发现我对request到application的记忆有些模糊了,哪些是在服务端的,哪些又是客户端的,来回读取这么方便还要ajax做什么用?引发了我的一顿思考。其实学的时候太注重实用,把太多心思用在实现项目功能上了,有些概念反而没有真的搞明白,看起来学的不错,就是坑太多。这个还真不能怪我,飘了那么久,到了这个年纪只想快快安稳下来,难免有些心急。

按照惯例,第一段结束了开正题。

request若是在客户端,那么又如何有getSession方法的呢?假设不在客户端,那么浏览器传参到parameter,就不应该在request里面读出来。所以request必然是在客户端,但是这个客户端的意义还是要重新理解,应该说是从客户端传过来,在服务器读取的,所以在客户端依然是不可见的,所以el表达式能读取,而js无法读取。就是说每次发起请求,会传一个request,连着cookie一起,而session和application是常驻服务端的,所以在同一次回话中,request,session,application可以自由相互通信,并不是说可以随意在客户端和服务端通信,一切都是发生在服务器,然后再由response生成html,html才是真正意义上的客户端。ajax是js级别的东西,属于html,所以也是客户端浏览器范畴。在各路脚本中,数el表达式最特别,他其实是在服务器端编译执行的,所以能读request,也就是说在传回浏览器的时候是看不到el表达式的,只能看到结果。当从服务端使用request存数据,它的意义就是在这一次请求中,用这些数据生成html,在jsp服务器上,所有的一切都是在response的输出流out来完成的,当发生了这一过程,request的生命周期就结束了,所以request本质上不会为你保存任何数据,所有用request传的javaBean,其实都是可以在servlet上多声明一个字段来代替,没有任何的传输过程,是这样吗?不要忘记还有请求的重定向机制,request是可以一层层传递的。这才是request的真意所在。吧一层层servlet的数据集中到同一个request请求对象,最终由el表达式体现到response的输出流中。session和application似乎就不在讨论范围内了,你连jdk的jar包都能调用,就更不用提这两个东西了。

那么,问题又回来了,我们如果把东西放很多在cookie里,势必每次请求都要发送大量数据,而且具有重复性,只要不清除cookie,每次都会把一样的数据多传一次,这样还不如直接把session生命周期调短一点管用。

存到cookie里能提高性能吗?的更多相关文章

  1. CSS性能分析,如何优化CSS提高性能

    不负十年后的自己,共勉! 前端性能优化一直是一个比较热门的话题,我们总是在尽我们最大的努力去,提高我们的页面性能,比如减少HTTP请求,利用工具对资源进行合并压缩,脚本置底,避免重复请求,css sp ...

  2. 使用C# yield关键字来提高性能和可读性

    对于”yield”这个关键字我已经见过N次了,直到最近我才知道这个关键字所蕴含的力量.我将在下面展示出一些使用”yield”让你的代码有更高可读性和更好性能的例子. 为了让你对yield有一些快速概览 ...

  3. 05_Smart-image通过SoftReference提高性能

    文章导读: 文件介绍了常见的图片下载开源插件smart-image, 由于移动设备硬件受限,因此Android的相关app都要考虑到性能的关系, 所以很多的第三方插件都使用到了缓存cache技术,本人 ...

  4. FMDB官方使用文档-GCD的使用-提高性能(翻译)

    FMDB官方使用文档-GCD的使用-提高性能(翻译) 发布于:2013-08-19 10:01阅读数:13395 由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍.与此 ...

  5. 转:使用WITH AS提高性能简化嵌套SQL

    使用WITH AS提高性能简化嵌套SQL   一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片 ...

  6. Smart-image通过SoftReference提高性能

    文章导读: 文件介绍了常见的图片下载开源插件smart-image, 由于移动设备硬件受限,因此Android的相关app都要考虑到性能的关系, 所以很多的第三方插件都使用到了缓存cache技术,本人 ...

  7. Linux kernel 的 sendfile 是如何提高性能的

    Linux kernel 的 sendfile 是如何提高性能的 现在流行的 web 服务器里面都提供 sendfile 选项用来提高服务器性能,那到底 sendfile 是什么,怎么影响性能的呢? ...

  8. 22 mysql有那些”饮鸩止渴”提高性能的方法?

    22 mysql有那些”饮鸩止渴”提高性能的方法? 正常的短连接模式是连接到数据库后,执行很少的SQL语句就断开,下次需要的时候再重新连接.如果使用的是短连接,在业务高峰期的时候,就可能出现连接数突然 ...

  9. php大型网站如何提高性能和并发访问

    一.大型网站性能提高策略: 大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器.高性能的数据库.高效率的编程语言.还有高性能的Web容器. ...

随机推荐

  1. python成长之路【第十三篇】:Python操作MySQL之pymysql

    对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...

  2. ireport5.6+jasperreport6.3开发(一)--中文环境配置在

    ireport在pdf的情况下无法显示中文字的解决方法 1,首先下载宋体的ttf(注意ttc的不行)下载链接如下(注意你可以用其他的ttf不一定要宋体) http://files.cnblogs.co ...

  3. Numpy Study 1

    Numpy 使用1 1.Numpy创建数组 import numpy as np 创建数组有以下方式: (1).arange numpy.arange([start, ]stop, [step, ]d ...

  4. ActiveReports中如何控制页面的记录数

    在 ActiveReports 中,可以固定报表每页显示的行数,当每页的数据不足固定的行数时,自动通过填补空白行来实现,当然这两种功能仅限于区域报表和页面报表中. 区域报表 在区域报表中,有很多方法来 ...

  5. jQuery滚动数字

    <ul class="dateList"> <li class="one"> <p class="titleName&q ...

  6. poj1753 Flip Game

    题意:4*4的正方形,每个格子有黑白两面,翻转格子使得4*4个格子显示全黑或全白,翻转要求:选中的那个格子,以及其上下左右相邻的格子(如果存在)要同时翻转.输出最小的达到要求的翻转次数或者Imposs ...

  7. 从下往上看--新皮层资料的读后感 第四部分 来自神经元的设计-perceptron 感知机

    搬地方了,其他的部分看知乎:https://zhuanlan.zhihu.com/p/22114481 直到50年代,perceptron被Frank Rosenblatt搞了出来.perceptro ...

  8. 基本类型和引用类型调用是的区别(Object.create)

    var person = { name : 'jim', address:{ province:'浙', city:'A' } } var newPerson = Object.create(pers ...

  9. kaggle数据挖掘竞赛初步--Titanic<派生属性&维归约>

    完整代码: https://github.com/cindycindyhi/kaggle-Titanic 特征工程系列: Titanic系列之原始数据分析和数据处理 Titanic系列之数据变换 Ti ...

  10. a 标签中调用js的几种方法 文章摘自他人

    我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题 ...