ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java web

2022-09-17 00:05:15  阅读:388  来源: 互联网

标签:web 浏览器 Session session cookie 服务器 java 客户端


HttpServlet

因为HttpServlet已经帮我们实现了很多功能,所以一般我们只需要继承与HttpServlet,然后重写里面的方法就好了

 

 

 

会话

是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份

cookie

我们知道,web应用程序是用http协议来传输数据的。而http是无状态的协议,什么是无状态?也就是数据一旦交换完毕了,客户端与服务端的连接就会断开,再次通信交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。

cookie便是为了解决这个问题,客户端访问一次服务器之后,服务器便会传回一个cookie存到客户端(浏览器),当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

session

Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

Session在用户第一次访问服务器的时候自动创建,并将通过特殊算法算出一个session的ID,用来标识该session对象,当浏览器下次(session继续有效时)请求别的资源的时候,浏览器会将sessionID放置到请求头中,服务器接收到请求后就得到该请求的sessionID,服务器找到该id的session返还给请求者(Servlet)使用

如果Session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

session技术是要使用到cookie的,之所以出现session技术,主要是为了安全。如果客户端的浏览器禁用了 Cookie 怎么办?一般这种情况下,会使用一种叫做URL重写的技术来进行会话跟踪,原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。

总结

1.Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

2.session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过url重写技术解决)

3.cookie不是安全的,考虑到安全应使用session

4.session会占用服务器的内存,考虑到减服务器性能方面的影响则应该使用cookie

 

标签:web,浏览器,Session,session,cookie,服务器,java,客户端
来源: https://www.cnblogs.com/happy12123/p/16435034.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有