【Java面试】2024年3月最新面试题系列 之 JavaWEB

1、Http请求头中的常见关键字

1、请求方式:GETPOSTPUT2、服务器域名地址:Host3User-AgentHTTP客户端浏览器运行的浏览器类型的详细信息;
4Accept:指定客户端浏览器能够接受的内容类型;
5Accept-Language:指定客户端浏览器优先展示信息的语言;
6AcceptEncoding:指定客户端浏览器可以支持的服务器返回内容压缩编码类型;
7Accept-Charset:浏览器可以接受的字符编码集;
8Content-Type:显示此HTTP请求提交的内容类型。一般只有post提交时才需要设置;
9Connection:表示是否需要持久连接;
10、cookie:HTTP请求时,会把保存在该域名下的所有cookie值一起发送给web服务器;
11Referer:包含一个url,用户从该url代表的页面发出访问当前请求的页面

2、JSON和JSONP区别

JSONJSONP是两种不同的概念。
JSON:是一种数据交换格式,是一种字符串
JSONP:是一种解决跨域问题的请求方式,本质是利用了script标签具有的课跨域性的特点。

3、如何保证请求的幂等性,防重的原理

1、常见的解决幂等性的方法
  唯一索引:防止新增脏数据
	token机制:防止页面重复提交
	悲观锁:获取数据的时候加锁(锁表或锁行)
	乐观锁:基于版本号version实现, 在更新数据那一刻校验数据
	分布式锁:redis(jedis、redisson)或zookeeper实现
	状态机:状态变更, 更新数据时判断状态
  
2、token机制的详解:
  为需要保证幂等性的每一次请求创建一个唯一标识token,先获取token,并将token保存在redis中,请求接口时,将此token放到header或者作为请求参数请求接口,后端接口判断redis中是否有此token。如果存在,正常处理业务,并从redis中删除此token。如果是重复请求,由于token已经删除,则不能通过校验,返回一个请勿重复操作的提示。如果不存在,说明参数不合法或者请求重复,返回提示就可以了。

4、正常保存到cookie中是否需要设置过期时间

每一个cookie都有自己的过期时间,默认时关闭浏览器为止。
需要设置,由于cookie保存在本地,因此无法直接将其移除,当用户关闭浏览器又马上打开浏览器,就需要重新登录。
现在浏览器都有一个帮助保存密码功能,所以也可以不设置。
  $.cookie("名称","值",{expires:失效时间})  expires设置失效时间

5、token是怎么放入cookie中的

新建一个cookie
HttpServletRequest request  
HttpServletResponse response
Cookie cookie = new Cookie("token","cookievalue");
response.addCookie(cookie);

6、cookie和session的区别

1、cookie数据存放在客户端,session数据放在服务器端;
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。所有浏览器最多存放300个cookie

7、cookie的总结

  1、存储的物理位置。客户端的Cookies文件夹内;
	2、存储的类型限制。字符串;
	3、状态使用的范围。当前请求上下文的上下文都能访问到CookieCookie对每个用户来说都是独立的;
	4、存储的大小限制。每个Cookie不超过4K数据。每个网站不超过20Cookie。所有网站的Cookie总和不超过300个;
	5、生命周期。每个Cookie都有自己的过期时间,超过了过期时间后失效;
	6、安全与性能。存储在客户端,安全性差。对于敏感数据建议加密后存储;
	7、优点缺点与注意事项。可以很方便地关联网站和用户,长久保存用户设置;
*如果不设置Cookies的过期时间则默认为关闭浏览器Cookies生命周期到期。

持续更新中。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈、小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值