面试问题总结

Posted ll9507

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试问题总结相关的知识,希望对你有一定的参考价值。

2019-08-05 面试问题总结

1.get与post的区别:

  • HTTP 定义了与服务器交互的不同方法,两种最常用的 HTTP 方法是:GET 和 POST。

 

  • 下面的表格比较了两种 HTTP 方法:GET 和 POST。
  get post
后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
书签 可收藏为书签 不可收藏为书签
缓存 能被缓存 不能缓存
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data。为二进制数据使用多重编码。
历史 参数保留在浏览器历史中。 参数不会保存在浏览器历史中。
对数据长度的限制 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 无限制。
对数据类型的限制 只允许 ASCII 字符。 没有限制。也允许二进制数据。
安全性 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用 GET !
POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
可见性 数据在 URL 中对所有人都是可见的。 数据不会显示在 URL 中。

 

  • get和post的使用场景的分析:

post:表单提交(因为数据量可能过大超过浏览器规定的URL长度限制),登录(密码不能包含在URL中,为了用户安全)

get: 静态资源的获取(因为不涉及安全和URL长度限制的问题,而get请求的速度要快于post)

总结:只要不涉及URL长度和数据安全的情况都可以用get(速度快)。

  • get速度快的原因:

post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据,get直接发送数据。

get会对静态资源或数据缓存(IE两者都缓存,其他chrom,火狐只缓存静态资源),下一次请求静态资源或数据将不用访问服务器。


 

2.String,Stringbuffer,StringBudiler的区别。

  • String:用final修饰的不可变对象(字符串发生变化会生成新的对象),线程安全的,在字符串不经常发生变化的业务场景优先使用String。
  • StringBuffer:线程安全的,字符串发生变化不会生成新的对象,在字符串经常发生变化且需要保证线程安全的业务场景优先使用String。
  • StringBuilder:线程不安全的,字符串发生变化会生成新的对象,在字符串经常发生变化且需要保证线程安全的业务场景优先使用String。

 


3.谈谈你对tomcat的理解

  • tomcat是web网络服务器,是sevlet的容器,可以用来处理用户请求。

4.关系型数据库和非关系型数据库的区别

  1.关系型数据库因为是从磁盘读取和写入数据,相比非关系型数据库从内存读取和写入数据,速度较慢。但是一旦非关系型数据库发生故障,数据将丢失。

  2.关系型数据库严格保证数据的一致性,非关系型数据库部分支持。

  

 

以上是关于面试问题总结的主要内容,如果未能解决你的问题,请参考以下文章

面试问题总结(一)Golang

Java常见面试问题总结

Java开发基础面试题,java研发工程师年终总结

面试问题总结

在Java面试中常会遇到的技术问题总结

Nginx常见面试问题总结