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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289900.html