昨天工作室的大前端SAM去百度的二面,看样子应该是没什么问题。
之后sam 发了他面试中的一些题目。 但是只有题没有详细的解答。。。。。。
想到自己总会有一天要用到这些面试的东东 ,决定开一个专题,来把这些题目 自己整理一遍。
反正早晚都会用得到。
下面是SAM 的博客 :http://www.kirsten-s.me/index.php/
首先第一题:
1.post、get的区别:
这里在网上的资料中可以看到大家基本都是相同的结论。
复制的:
表单提交中get和post方式的区别有5点 1.get是从服务器上获取数据,post是向服务器传送数据。 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。 4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 5.get安全性非常低,post安全性较高。 |
我们来一个个的来看一下具体的差别。
1.其实第一条本身就是错误的,不太严格的说get post 都是传输数据的一种。
而关于上面的第一条,是在html 的相关约定。 也就是说,他们本身是没有这种区别的。
只是大家的一个约定 ,所以应该算不上什么区别,只能说是大家对他们两个之间的认识或者说是
约定的不同而已。
2.对于这句话,我们可以用一些比较通俗的方式去解释,get 的数据会加到URL 中 相关的值就是和input 表单一一 对应的,这些都是用户可以看到的。这也就是为什么说get 不安全的原因。而相对于post 所用的HTTPpost机制。
会把内容放入一个header 中按照所写的url 进行传送。而用户是看不到的。
3.关于第三点。。。。。。真心没有服务器端的研究。而且这些应该属于网络协议中的规定。在这里我就不去废话了,因为本身也不太了解。
4.关于第四条,其实也算是大家的一个误解,因为在传输量问题上get 对于get 的限制是因浏览器而产生的,如果有一个超长的url 那必然会影响到浏览器的访问速度。所以说这不是get post 本身的差异,而是因浏览器的限制而产生的。
5.安全性的问题:这个问题上get 他本身的传输机理上就看的出,他将相关的内容放在url 上,而且是明文显示,而post 就没有这样的问题。
关于get 和post 的相关东西就进行了这些总结。
因为本身这些东西和服务器端有很大的关联,自己的确也不是特别的懂,有什么说的不对的地方也请大家多多指正,多多交流。 之后我会陆续的将其他的题目进行简析,希望能对自己有所帮助。