JAVA面试题---WEB部分

news2024/11/26 19:55:31

网络通讯

TCP与UDP

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、 可靠的、 基于 IP 的传输层协议。

UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是 OSI 参考模 型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服 务。

TCP 和 UDP 都是来自于传输层的协议。传输层位于应用层和网络层之间,负责位于不 同主机中进程之间的通信。

1.TCP 基于连接 UDP 无连接

2.TCP 要求系统资源较多,UDP 较少

3.TCP 保证数据正确性,UDP 可能丢包

4.TCP 保证数据顺序,UDP 不保证

HTTP协议

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

TCP三次握手

为了准确无误地把数据送达目标处,TCP 协议采用了三次握手策略。

为什么要三次握手? 三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收, 而三次握手最主要的目的就是 双方确认自己与对方的发送与接收是正常的。

SYN:同步序列编号(Synchronize Sequence Numbers)。是 TCP/IP 建立连接时 使用的握手信号。

第一次握手:客户端给服务器发送一个 SYN。客户端发送网络包,服务端收到了。服务器得出结论:客户端的发送能力,服务端的接收能力正常。

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

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

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

实现

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

1> 重定向 2 次请求,请求转发 1 次请求

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

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

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

GET与POST的区别

1. Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户 来说都是不可见的。

2. Get 传送的数据量较小,一般传输数据大小不超过 2k-4k(根据浏览器不同,限制不一样, 但相差不大这主要是因为受 URL 长度限制;Post 传送的数据量较大,一般被默认为不受限 制。

3. Get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 Post 支持整个 ISO10646 字符集。

4. Get 执行效率却比 Post 方法好。Get 是 form 提交的默认方法

cookie 和 session 的区别?

1.存储位置不同

cookie 的数据信息存放在客户端浏览器上。 session 的数据信息存放在服务器上。

2.存储容量不同

单个 cookie 保存的数据<=4KB,一个站点最多保存20个cookie。session一般没有上限。

3.存储方式不同

cookie 中只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进制数 据。 session 中能够存储任何类型的数据,包括且不限于 string,integer,list,map 等。

4.隐私策略不同

cookie 对客户端是可见的,别有用心的人可以分析存放在本地的 cookie 并进行 cookie 欺 骗,所以它是不安全的。 session 存储在服务器上,不存在敏感信息泄漏的风险。

5. 有效期上不同

开发可以通过设置 cookie 的属性,达到使 cookie 长期有效的效果。31 session 依赖于名为 JSESSIONID 的 cookie,而 cookie JSESSIONID 的过期时间默认为-1, 只需关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果。

6.服务器压力不同

cookie 保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie 是很好的 选择。 session 是保管在服务器端的,每个用户都会产生一个 session。假如并发访问的用户十分 多,会产生十分多的 session,耗费大量的内存。

Jsp 和 Servlet

Jsp 和 Servlet 的区别?

相同点

jsp 经编译后就变成了 servlet,jsp 本质就是 servlet,jvm 只能识别 java 的类,不能识别 jsp 代码,web 容器将 jsp 的代码编译成 jvm 能够识别的 java 类。其实就是当你通过 http 请求一个 JSP 页面是,首先 Tomcat 会调用 service()方法将 JSP 编译成为 Servlet, 然后执行 Servlet。

不同点

JSP 侧重视图,Sevlet 主要用于控制逻辑。 Servlet 中没有内置对象 。 JSP 中的内置对象都是必须通过 HttpServletRequest 对象,HttpServletResponse 对象以 及 HttpServlet 对象得到。

Servlet 的生命周期

// 1. servlet 对象创建时,调用此方法 public void init(ServletConfig servletConfig);

// 2. 用户访问 servlet 时,调用此方法 public void service(ServletRequest servletRequest, ServletResponse servletResponse);

// 3. servlet 对象销毁时,调用此方法 public void destroy();

JSP 九大内置对象

out 对象:用于向客户端、浏览器输出数据。

request 对象:封装了来自客户端、浏览器的各种信息。

response 对象:封装了服务器的响应信息。

exception 对象:封装了 jsp 程序执行过程中发生的异常和错误信息。

config 对象:封装了应用程序的配置信息。

page 对象:指向了当前 jsp 程序本身。

session 对象:用来保存会话信息。也就是说,可以实现在同一用户的不同请求之间共享数据 application 对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。

pageContext 对象:提供了对 jsp 页面所有对象以及命名空间的访问。

Ajax 的介绍(必会)

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

$.ajax({

选项

})

常见的选项有:

type:请求方式,常见的值有"get","post"等,默认值:get

url:请求的路径,"/ajax/hello"

data:请求的参数,参数的常见写法有键值对或者 json

方式 1: name=tom&pwd=123

方式 2: {"name":"tom","pwd":"123"}

success:请求成功后的回调函数 function(返回值的参数名){}

contentType:用来设置请求参数的 mime类型 ,默认值 :表单的 enctype默认值name=tom&pwd=123

error:ajax请求时内部发生错误时执行的回调函数 function(){}

dataType:指定返回值的类型常见值:text json

async:是否异步默认值 true

Ajax应用程序的优势在于:

1.通过异步模式,提升了用户体验

2.优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用

3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

写在最后:WEB在面试过程中,相关协议TCP,UDP有一定的考察概率。如若个人项目经历上写到了使用了Cookie,Session,则会有很大概率被问到相关问题。希望大家能够引起重视,笔者小厂,中厂,大厂均有面试经历,每日分享JAVA全栈知识与相关面试题,希望与打击共同进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1639323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于光伏电站真实数据集的深度学习预测模型(Python代码,深度学习五个模型)

效果视频链接&#xff1a;基于深度学习光伏预测系统&#xff08;五个模型&#xff09;_哔哩哔哩_bilibili 界面设计 注册界面 登录界面 主界面 展示界面 1.数据集来源 The SOLETE dataset 这里分别保存了不同间隔采样时间表格 1min是以1min 间隔采集的数据集 数据集截图&…

分享自己一篇在亚马逊云科技AWS官网发的Blog技术文章

小李哥在亚马逊AWS官网&#xff0c;作为第一作者发了自己的第一篇AWS Blog文章&#xff0c;也是自己今年在AWS官网的第11篇文章。文章主要内容是描述为出海的金融企业&#xff0c;搭建满足PCI-DSS合规、FIPS 140-2 Level 3安全标准的传输中数据加密云端方案&#xff0c;主要用于…

云服务器平台Featurize--基本使用步骤与使用感受

基本介绍 图1 网址&#xff1a;Featurize 可租用实例的显示界面如图所示。 图2 在简单的注册、登录、充值之后就可以对想要的实例直接进行租赁了。 关于实例&#xff0c;这里我的理解是已经配置好一定环境的服务器。 图3 使用感受 总结一下&#xff0c;Featurize上云服务器的…

【经典算法】LeetCode112. 路径总和(Java/C/Python3/Go实现含注释说明,Easy)

作者主页&#xff1a; &#x1f517;进朱者赤的博客 精选专栏&#xff1a;&#x1f517;经典算法 作者简介&#xff1a;阿里非典型程序员一枚 &#xff0c;记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法&#xff08;公众号同名&#xff09; ❤️觉得文章还…

Agent AI智能体:如何借助机器学习引领科技新潮流

文章目录 &#x1f4d1;前言一、Agent AI智能体的基本概念二、Agent AI智能体的技术进步2.1 机器学习技术2.2 自适应技术2.3 分布式计算与云计算 三、Agent AI智能体的知识积累3.1 知识图谱3.2 迁移学习 四、Agent AI智能体的挑战与机遇4.1 挑战4.2 机遇 小结 &#x1f4d1;前言…

004 秒杀下单

文章目录 超卖问题方案一方案二方案三aop锁(单机锁)aop锁(单机锁)pom.xmlLockAspect.javaServiceLock.java 分布式锁Mysql分布式锁Redis分布式锁ServiceRedisLock.javaLockRedisAspect.java 下单性能优化数据一致性解决一致性问题异步同步库存 秒杀下单业务步骤: 1.数据校验(身…

DS:顺序表、单链表的相关OJ题训练

欢迎各位来到 Harper.Lee 的学习小世界&#xff01; 博主主页传送门&#xff1a;Harper.Lee的博客主页 想要一起进步的uu可以来后台找我交流哦&#xff01; 在DS&#xff1a;单链表的实现 和 DS&#xff1a;顺序表的实现这两篇文章中&#xff0c;我详细介绍了顺序表和单链表的…

Unity SteamVR入门

概述 VR项目现在在当前已经是非常热门的技术&#xff0c;可以给玩家身临其境的感觉&#xff0c;接下来让我们学习这部分的内容吧&#xff01; SteamVR Input SteamVR绑定流程&#xff0c;在Windows窗口的点击SteamVR-input&#xff0c;图1&#xff0c;在这里可以选择你需要绑定…

Photoshop前言

Photoshop前言 分辨率图像格式工具界面组件 分辨率 分辨率是指单位长度内包含的像素点的数量&#xff0c;其单位通常为像素/英寸&#xff08;ppi&#xff09;&#xff0c;300ppi表示每英寸包含300个像素点。对于1英寸1英寸大小的图像&#xff0c;若分辨率为72ppi&#xff0c;则…

Unity MeshRenderer 入门

概述 在项目制作过程中&#xff0c;肯定缺少不了模型的使用&#xff0c;那就一定接触过MeshRenderer&#xff0c;也许还有你不理解的地方&#xff0c;接下来让我们来学习一下这部分的内容吧。 Mesh Filter&#xff08;网格过滤器&#xff09; Mesh:提供一个网格的参考&#xf…

# notepad++ 编辑器英文版,如何打开自动换行

notepad 编辑器英文版&#xff0c;如何打开自动换行 在Notepad中&#xff0c;如果你想要开启自动换行功能&#xff0c;可以按照以下步骤操作&#xff1a; 1、打开 Notepad 编辑器。 1.1. 依次点击菜单栏中的【视图】&#xff0c;英文版对应【View】。1.2. 在【视图】下拉菜单…

Integer中的缓存机制

先看一个示例&#xff1a; public static void main(String[] args) {Integer a127;Integer b127;System.out.println(ab);Integer c128;Integer d128;System.out.println(cd);} 输出&#xff1a; true false 为什么明明都是同一个数字进行比较&#xff0c;当数字等于127的…

串口单线半双工转换电路

用来把单线半双工模式的串口转换成双线&#xff0c;然后才能连接到普通的双线USB 串口模块&#xff0c;比如CH340 之类的。电路设计来自大佬的博客&#xff1a;AVR half-duplex software UART supporting single pin operation。他在Arduino 上用软件模拟串口功能&#xff0c;利…

【火猫DOTA2】电竞世界杯DOTA2项目将在7月份的前三周举办

1、电竞世界杯将于今年7月3日至8月25日在沙特利雅得举办。近日主办方公布了各个项目的举办时间,其中DOTA2项目将在7月份的前三周举办。转载:火猫TV资讯https://www.huomaotv.com/ 目前Falcons、XG、GG和Liquid这五支赢得了足够EPT积分的队伍已经确定直邀沙特。剩下的三个名额还…

nginx的前世今生(二)

书接上回&#xff1a; 上回书说到&#xff0c;nginx的前世今生&#xff0c;这回我们继续说 3.缓冲秘籍&#xff0c;洪流控水 Nginx的缓冲区是其处理数据传输和提高性能的关键设计之一&#xff0c;主要用于暂存和管理进出的数据流&#xff0c;以应对不同组件间速度不匹配的问题…

图片高效批量美化,支持将图片进行旋转180度并生成浴室玻璃图片,让图片瞬间焕然一新!

图片已成为我们生活与工作中不可或缺的一部分。然而&#xff0c;一张张手动美化图片却是一项既耗时又耗力的任务。为了帮助您轻松应对这一挑战&#xff0c;我们推出了一款高效批量美化图片的工具&#xff0c;并支持将图片旋转180度及生成浴室玻璃效果&#xff0c;让您的图片瞬间…

安装英伟达nvidia p4计算卡驱动@FreeBSD14

FreeBSD也能跑cuda AI训练拉&#xff01; 在FreeBSD安装好pytorch和飞桨cpu版本后&#xff0c;尝试安装英伟达nvidia p4计算卡驱动。毕竟全靠cpu速度太慢了&#xff0c;还是GPU快啊&#xff01;在磕磕绊绊几天后&#xff0c;终于成功成功安装好nvidia p4的cuda驱动&#xff0c…

拆单算法交易(Algorithmic Trading)

TWAP TWAP交易时间加权平均价格Time Weighted Average Price 模型&#xff0c;是把一个母单的数量平均地分配到一个交易时段上。该模型将交易时间进行均匀分割&#xff0c;并在每个分割节点上将拆分的订单进行提交。例如&#xff0c;可以将某个交易日的交易时间平均分为N 段&am…

密码学基础练习五道 RSA、elgamal、elgamal数字签名、DSA数字签名、有限域(GF)上的四则运算

1.RSA #include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include <time.h>#define PRIME_MAX 200 //生成素数范围#define EXPONENT_MAX 200 //生成指数e范围#define Element_Max 127 //加密单元的…

26版SPSS操作教程(高级教程第十八章)

目录 前言 粉丝及官方意见说明 第十八章一些学习笔记 第十八章一些操作方法 经典判别分析 数据假设 具体操作 结果解释 判别结果的图形化展示 结果解释 判别效果验证 结果解释 适用条件的判断 结果解释 贝叶斯判别分析 具体操作 结果解释 逐步判别法 结束语…