cookie 和session以及小知识 的区别详解

xiaoxiao2021-02-27  191

具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

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

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

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

5、所以个人建议:    将登陆信息等重要信息存放为SESSION    其他信息如果需要保留,可以放在COOKIE中

Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可以代表Spring容器。 Spring容器是生成Bean实例的工厂,并管理Spring中的bean,bean是Spring中的基本单位,在基于Spring的java EE工程,所有的组件都被当成bean处理。 包括数据源、Hibernate的SessionFactory、事务管理器。 ①Spring容器:Spring最基本的接口就是BeanFactory, BeanFactory有很多实现类,通常使用 XmlBeanFactory,但是对于大部分的javaEE应用而言,推荐使用 ApplictionContext,它是BeanFactory的子接口, ApplictionContext的实现类为 FileSystemXmlApplicationContextClassPathXmlApplicationContext FileSystemXmlApplicationContext: 基于文件系统的XML配置文件创建ApplicationContext; ClassPathXmlApplicationContext: 基于类加载路径下的xml配置文件创建ApplicationContext。 ②ApplicationContext的事件机制, ApplicationContext事件机制是基于观察者设计模式实现的。通过ApplicationEvent类和ApplicationListener接口, 其中ApplicationEvent:容器事件,必须由ApplicationContext发布; ApplicationListener:监听器,可有容器内的任何监听器Bean担任。 ③容器中bean的作用域: singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的bean将只有一个实例; prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新实例; request:对于每次HTTP请求中,使用request定义的bean都将产生一个新实例,只有在web应用程序使用Spring时,该作用域才有效; session:同理 global session:同理          注意:request和session作用域只在web应用中才生效,并且必须在web应用中增加额外的配置才会生效,为了让request,session两个作用域生效,必须将HTTP请求对象绑定到为该请求提供服务的线程上,这使得具有request和session作用域的Bean实例能够在后面的调用链中被访问。         当支持 Servlet2.4及以上规范的web容器时,我们可以在web应用的 web.xml增加如下Listener配置,该 Listener负责为request作用域生效:

接下来看看两种请求方式的区别:

1、GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。

POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。

因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

2、传输数据的大小

在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。

对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。

3、安全性

POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击

4、HTTP中的GET,POST,SOAP协议都是在HTTP上运行的

转载请注明原文地址: https://www.6miu.com/read-10492.html

最新回复(0)