Java常见面试题-06-web

TCP 与 UDP 区别?

在这里插入图片描述
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于 IP 的传输层协议。
UDP (User Datagram Protocol 用户数据报协议),是 OSI 参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

  • TCP 基于连接,UDP 无连接
  • TCP 要求系统资源较多,UDP 较少
  • TCP 保证数据正确性,UDP 可能丢包
  • TCP 保证数据顺序,UDP 不保证
  • TCP速度慢,UDP速度快

什么是 HTTP 协议?

客户端和服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。是一个基于请求与响应模式的、无状态的、应用层的协议,基于 TCP 的连接方式

TCP 的三次握手

在这里插入图片描述
为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。
第一次握手:
客户端给服务器端发送一个SYN。客户端发送网络包,服务器收到了,服务器得出结论:客户端的发送能力、服务器的接收能力正常。

第二次握手:
服务器接收到了SYN报文之后,会应答一个SYN + ACK报文,服务器发包,客户端收到了,客户端得出结论:服务器端的发送、接收能力以及客户端的发送、接收能力正常,但是此时服务器端不能确认客户端的接收能力是否正常。

第三次握手:
客户端接收到了SYN + ACK报文之后,回应一个ACK报文。客户端发包,服务器收到了,服务器得出结论:客户端的接收和发送能力,自己的接收和发送能力都正常。

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

转发:用 request 的 getRequestDispatcher()方法得到 ReuqestDispatcher 对象,调用forward()方法
重定向:调用 response 的 sendRedirect()方法

  • 重定向 2 次请求,请求转发 1 次请求
  • 重定向地址栏会变,请求转发地址栏不变
  • 重定向是浏览器跳转,请求转发是服务器跳转
  • 重定向可以跳转到任意网址,请求转发只能跳转当前项目
  • 请求转发不会丢失请求数据,重定向会丢失

Get 和 Post 的区别?

  • Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户来说都是不可见的,因此较为安全。
  • Get 传送的数据量较小,一般传输数据大小不超过 2k-4k(根据浏览器不同,限制不一样, 但相差不大这主要是因为受 URL 长度限制;Post 传送的数据量较大,一般被默认为不受限制。
  • Get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 Post 支持整个 ISO10646 字符集。
  • Get 执行效率却比 Post 方法好。Get 是 form 提交的默认方法。

cookie 和 session 的区别?

  1. 存储位置不同
    cookie 存放在客户端电脑,是一个磁盘文件。Ie 浏览器是可以从文件夹中找到。
    session 是存放在服务器内存中的一个对象。 chrome 浏览器进行安全处理,只能通过浏览器找到。Session 是服务器端会话管理技术,并且 session 就是 cookie 实现的。
  2. 存储容量不同
    单个 cookie 保存的数据<=4KB,一个站点最多保存 20 个 Cookie。
    对于 session 来说并没有上限,但出于对服务器端的性能考虑,session 内不要存放过多的东西,并且设置 session 删除机制。
  3. 存储方式不同
    cookie 中只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进制数据。
    session 中能够存储任何类型的数据,包括且不限于 string,integer,list,map 等。
  4. 隐私策略不同
    cookie 对客户端是可见的,别有用心的人可以分析存放在本地的 cookie 并进行 cookie 欺骗 , 所以它是不安全的 。
    session 存储在服务器上,不存在敏感信息泄漏的风险。
  5. 有效期上不同
    开发可以通过设置 cookie 的属性,达到使 cookie 长期有效的效果。
    session 依赖于名为JSESSIONID 的cookie,而 cookie JSESSIONID 的过期时间默认为-1,只需关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果。
  6. 服务器压力不同
    cookie 保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie 是很好的选择。
    session 是保管在服务器端的,每个用户都会产生一个 session。假如并发访问的用户十分多,会产生十分多的 session,耗费大量的内存。

介绍一下Ajax以及其优势

Ajax 即"Asynchronous JavaScript And XML"(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

优势:

  • 通过异步模式,提升了用户体验
  • 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
  • Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

axios 是什么?怎样使用它?怎么解决跨域的问题?

axios 的是一种异步请求,用法和 ajax 类似,安装 npm install axios --save 即可使用,请求中包括 get,post,put, patch ,delete 等五种请求方式.

解决跨域常用的有两种方式:
1.CORS 解决跨域问题,这需要通过后端来解决,通过设置 header 头来通配。使服务器允许跨域请求接口数据,而前端正常使用 axios 请求方式。
2.通过接口代理的方式,在 vue 项目中创建一个 vue.config.js,导入一个 devserve,并配置里面的选项即可。

欢迎java热爱者了解文章,作者将会持续更新中,期待各位友友的关注和收藏。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿胡爱编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值