面试技能三

最后更新于:2022-04-01 21:06:30

## 题目1:请描述Post请求和Get请求的区别以及二者一般应用场景 Post请求和Get请求都是向服务器获取数据的请求,Get是通过URL向服务器发送获取数据的请求,Post是把要提交的数据放在HTTP包体中向服务器提交数据的请求。二者理论上都没有长度限制,例如IE浏览器对URL的长度限制为2KB。Post请求比Get请求安全性更高,因为Get请求通过URL实现,用户名和密码很容易暴露,所以在传参的时候一定要加密。可以采用Base64()进行编解码。 ~~~ var b = new Base64(); b.encode(pwd) b.decode(pwd) ~~~ 这篇文章对于二者的分析比较到位:[话说GET与POST那点恩怨](http://blog.csdn.net/liujiahan629629/article/details/17585899) ## 题目2:请说明forward和redirect的主要区别 forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户端无需知道;redirect则是服务器收到请求后发生一个状态头给用户,用户再次请求,这样会有两次客户端到服务端的通信,由于是再次请求,因此上一个jsp的信息不被保留。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/91de7f7fd9abcbbcaa2d188c152e5a70_592x195.jpg) 题目3:请写出以下javascript代码的执行结果 ~~~ var a1 = 10; var a2 = 20; var r1 = "a1+a2=" + a1 + a2; var str1 = "I am a soft engineer"; var r2 = str1.substring(9, 14); document.write(r1); document.write("%"); document.write(r2); ~~~ 结果是:a1+a2=1020%ft en ## 题目4:请写出以下javascript代码的执行结果,并说明原因 ~~~ function Person(name) { this.name = name; this.move = function () { alert("Prepare move for person [" + this.name + "]") }; } Person.prototype.move = function () { alert("Ready move for person [" + this.name + "]") }; $(function () { var person = new Person("Jim"); person.move(); }); ~~~ 执行的结果是:Prepare move for person [Jim] 个人觉得原因是由于对象如果自带有move()方法就不会向原型链查找。
';