- cookie和session的区别是什么
- 存储位置
- cookie存放客户端,session存放服务端
- 存储容量
- 单个cookie<=4KB,一个站点最多保存20个cookie,session没有上限
- 存储方式
- cookie只能保存ASCII字符串,session可以保存任意类型
- 隐私策略
- cookie对客户端可见,不安全;session对客户端不可见
- 生命周期
- cookie可以通过设置长期有效,session不能长期有效
- 服务器压力
- cookie不占用服务器,每个用户都会产生一个session在服务端
- 跨域支持
- cookie支持跨域,session不支持跨域
- 存储位置
- cookie和session各自适合什么场景?
- session
- 敏感数据
- cookie
- 普通数据
- session
- 介绍session的工作原理
- 客户端首次访问服务器,服务器产生session对象且该对象有唯一标识SESSIONID
- 同时在响应阶段服务端创建一个cookie,将SESSIONID存入
- 客户端通过响应的cookie来持有SESSIONID,再次访问服务端时,服务端会获取到cookie中的SESSIONID,找到对应的session对象,进而获取响应状态
- get和post的区别(面试真题)
- 浏览器退回时
- GET无害,POST会再次提交请求
- GET产生的url地址可以被Bookmark,POST不行
- GET会被浏览器主动cache,POST需要手动设置
- GET只能url编码,POST支持多种
- GET参数被保留在浏览器历史记录,POST不会
- GET在URL传送的参数有长度限制,POST没有
- GET通过URL传递,POST通过RequestBody
- 浏览器退回时
- get请求的参数能放到body里吗?
- 可以但不建议
- post不幂等是为什么?
- POST所对应的URI并非创建的资源本身。两次相同的POST请求会在服务器端创建两份资源,它们具有不同的URI。所以,POST方法不具备幂等性。
- 400是什么意思
- 请求的语义有误,当前请求无法被服务器理解
- 请求数据出现乱码怎么处理?
- 原因是客户端与服务端编码方案不一致
- 用中间相互转化
- 显示声明实体内容或请求路径编码与服务器一致
- 原因是客户端与服务端编码方案不一致
- 如何在SpringBoot框架下实现一个定时任务
- Spring提供了可执行定时任务的线程池,在配置类中启用线程池注解即可
- 调用接口时要记录日志,该怎么设计
- 可以定义一个组件,通过AOP织入到接口的调用