一、AJAX
ajax的原理简单来说是通过XmlHttpRequest对象来向服务器发送异步请求,从服务器获得数据,然后使用JavaScript来操作DOM而更新页面,这其中最关键的一步就是从服务器中获取请求数据。XMLHTTPRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术,简单的来说,也就是JavaScript可以及时向服务器提出请求和处理响应,而不阻塞用户,达到无刷新的效果。
优点:
1、最大的一个有点就是页面无刷新,在页面内与服务器通信,给用户的体验非常还
2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应的能力
3、可以把以前一些服务器负担的工作转嫁到客户端上,利用客户闲置的能力来处理,减轻服务器和带宽的压力,节约空间和宽带租用成本,并且减轻服务器的负担,ajax的原则就是按需来去数据,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
缺点:
1、ajax干掉了back按钮,就是对浏览器后退机制的破坏,后退按钮是一个标准的web站点的重要功能,但是却没法和js进行很好的合作,这是ajax所带来的一个比较严重的一些问题
2、安全问题,技术同时也对 IT 企业带来了新的安全威胁,ajax 技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。ajax 的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有 ajax 也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL 注入攻击和基于 credentials 的安全漏洞等
二、Servlet
主要分四大选择器,分别是基本选择器,层次选择器,过滤选择器,和属性过滤选择器。常用的选择器分为以下几种
1、基本选择器
id选择器
class选择器
element选择器
*选择器
并列选择器
2、层次选择器
parent > child(直系子元素)
prev+next(下一个兄弟元素,等同于next()方法)
prev+sibiling(prev元素的所有兄弟元素,等同于nextAll()方法)
3、过滤选择器
first和:last(取第一元素和第二个元素)
even和:odd(取偶数索引或者奇数索引元素,索引从0开始,even表示偶数,odd表示的是奇数)
t(取非元素)
eq(x) (取指定索引的元素)
gt(x)和:lt(x)(取大于 x 索引或小于 x 索引的元素)
header(取 H1~H6 标题元素)
三、Cookie和Session
1、会话(Cookie)跟踪是web程序中常用的技术用来跟踪用户的整个会话,常用的会话跟踪技术是(Cookie和Session),Cookie通过在客户端记录信息,确定用户身份,Session通过在服务端记录信息确定用户身份
2、什么是cookie技术呢?
Cookie实际上是一小段的文本信息,客户端请求服务器如果服务器需要记录该用户的状态,就是用response向客户端浏览器发送一个Cookie,客户端浏览器会把Cookie保存起来。当浏览器再次请求该网站的时候,浏览器把请求的网址连同该cookie一同提交给服务器,服务器检查该Cookie,以此来辨认该用户状态,服务器还可以根据需要修改Cookie的内容。
3、cookie机制
在程序中会话跟踪是一个很重要的技术,理论上,一个用户的所用的请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者是不能混淆的。例如,用户a在超市中购买的任何商品都应该放在a的购物出中,不论用户a是什么时间购买的,这都是属于同一个会话的,不能放入用户B或者用户C的购物车内,因为这不是属于同一会话的。而web应用程序是使用HTTP协议来传输数据的,HTTP协议是无状态的协议,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要进行建立新的连接,这就意味着服务器是无法从连接上跟踪会话,就是用户A购买了一件商品放入购物车内,当再次购买商品的时候,服务器已经无法判断该购买行为,是属于用户A的会话,还是属于用户B的会话,如果要跟踪该会话,必须引入一种机制。
Cookie就是这样的一种机制,他可以弥补HTTP协议无状态的不足,在Session出现之前,基本上上所有的网站都是采用cookie来跟踪会话的
4、什么是Session?
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器,而Session保存在服务器中。客户端浏览器访问服务器端的时候,服务器把客户端浏览器中信息以某种形式记录在服务器中,这就是Session。客户端浏览器再次访问服务器的时候只需要从该Session中查找该客户的状态就可以了。如果说cookie机制是通过检查客户身上的通行证来确定客户身份的话,那么Session机制就是通过检查服务器上的客户明细表,来确认客户的身份。session相当于程序在服务器上建立一份客户档案,,客户来访的时候只需要检查客户档案就好了
5、Session机制?
除了使用cookie,web应用程序中还经常使用session来记录客户端状态,session是服务器端来记录客户端状态的机制,使用上比cookie简单一些,,相应的也会增加服务器的存储压力
6、如何利用cookie实现自动登录?
当用户在某个网站注册的时候,就会收到一个唯一用户id 的cookie。用户后来重新进入的时候,这个用户id就会自动返回服务器对他进行检查,确定他是否为注册用户选择了自动登录,从而使用户无需给出明确的用户名和密码,就可以访问服务器上的资源
7、保存session id有几种方法?
A;保存session id 的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则,把这个标识发送给服务器
B:由于cookie可以被认为的进行禁止,所以必须要有其他机制以便于在cookie被禁止时仍然可以把session id 传递给服务器,经常采用的一种技术就是url重写,就是把session id附加在url路径的后面,附加的方式也有两种,一种是作为url路径的附加消息,另一种作为查询字符串附加在url后面,网络在整个交互过程中始终保持保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id
C:另一种技术叫做表单隐藏字段,就是服务器会自动修改表单,添加一个隐藏字段,以便于在表达提交的时候把session id提交给服务器
8、session什么时候被创建?
一个常见的错误是以为session在有客户端访问的时候 就被创建,然而事实是直到某sever端程序(如 Servlet)调用 HttpServletRequest.getSession(true)这样的语句时才会被创建。
9、session何时被删除?
A. 程序调用 HttpSession.invalidate()
B.距离上一次收到客户端发送的 session id 时间间隔超过了 session 的最大有效时间
C.服务器进程被停止
注意关闭浏览器只会使存储在客户端浏览器内存中的 session cookie 失效,不会使服务器端
的 session 对象失效
10、cookie集合和session机制的区别?
具体来说 cookie 机制采用的是在客户端保持状态的方案,而 session 机制采用的是在服务器端保持状态的方案。同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以 session 机制可能需要借助于 cookie 机制来达到保存标识的目的,但实际上还有其他选择