java web面试题

1. cookie和session的区别? (重点)

  1. 存储位置不同, cookie存放在客户端电脑中, 是一个磁盘文件, ie浏览器是可以从文件夹中找到的. session是存放在服务器内存中的一个对象. chrome浏览器进行安全处理, 只能通过浏览器找到. session是服务器端会话管理技术, 并且session就是cookie实现的

  2. 存储容量不同

    1. 单个cookie保存的数据 <= 4kb, 一个站点最多保存20个cookie

    2. 对于session来说并没有上限, 但出于对服务器性能考虑, session内不要放过多的东西, 并且设置session删除机制.

  3. 存储方式不同

    1. cookie 中只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进制数据。

    2. session 中能够存储任何类型的数据,包括且不限于 string,integer,list,map 等。

  4. 隐私策略不同

    1. cookie 对客户端是可见的,别有用心的人可以分析存放在本地的 cookie 并进行 cookie 欺骗,所以它是不安全的。

    2. session 存储在服务器上,不存在敏感信息泄漏的风险。

  5. 有效期上不同

    1. 开发可以通过设置cookie 的属性,达到使 cookie 长期有效的效果。

    2. session 依赖于名为JSESSIONID 的cookie,而 cookie JSESSIONID 的过期时间默认为-1,只需关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果

  6. 服务器压力不同

    1. cookie 保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie 是很好的选择。

    2. session 是保管在服务器端的,每个用户都会产生一个 session。假如并发访问的用户十分多,会产生十分多的 session,耗费大量的内存。

2. HTTP中重定向和请求转发的区别

  1. 重定向是两次请求, 请求转发是一次请求,

  2. 重定向地址栏会变, 请求转发地址栏不变

  3. 重定向是浏览器跳转, 请求转发是服务器跳转

  4. 重定向可以跳转到任意网址, 请求转发只能跳转当前项目

  5. 请求转发不会丢失请求数据, 重定向会丢失

3. Get和Post的区别

get请求建议将参数放在url中, 但是这只是http规范中的建议, 也可以将数据放在body中

post一般将参数放在body中, 也可以传递文件

4. 什么是Token

Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

token一般都需要在后端服务保存一份,比如使用redis保存。如果不想保存,可以使用jwt方案。

5. 如何解决跨域问题

跨域指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制。

所谓同源指的是:协议、域名、端口号都相同,只要有一个不相同,那么都是非同源。

解决方案:

1:使用ajax的jsonp

2:nginx 转发:利用nginx反向代理,将请求分发到部署相应项目的tomcat服务器,当然也不存在跨域问题。

3:使用cors:写一个配置类实现WebMvcConfigurer接口或者配置FilterRegistrationBean 网关也可以配置跨域,如果网关配置了跨域,后边微服务一般不需要配置

6. http和https的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值