面试问题总结
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.关系型数据库严格保证数据的一致性,非关系型数据库部分支持。
以上是关于面试问题总结的主要内容,如果未能解决你的问题,请参考以下文章