JAVA面试题---WEB部分

网络通讯

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.rhkb.cn/news/318361.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5入门学习笔记(六)——编译低版本插件

对于有些低版本的插件&#xff0c;可以通过此方法自己编译到高版本而无需等待插件作者更新 使用工具&#xff1a;如图所示 步骤1&#xff1a;打开cmd&#xff0c;并使用cd命令切换到此目录 步骤2&#xff1a;输入如下指令 RunUAT.bat BuildPlugin -Plugin“路径1” -Package“…

WPF基础应用

WPF参考原文 MVVM介绍 1.常用布局控件 1.1 布局控件 WPF&#xff08;Windows Presentation Foundation&#xff09;提供了多种布局容器来帮助开发者设计用户界面&#xff0c;以下是一些常用的布局&#xff1a; Grid: Grid是最常用的布局容器之一&#xff0c;它允许你通过定…

类和对象【四】运算符重载

文章目录 运算符重载的概念运算符重载&#xff08;函数&#xff09;返回值类型&#xff1a;任意类型函数名&#xff1a;operator已有操作符 运算符重载&#xff08;函数&#xff09;的特点和注意点3个比较特殊的运算符重载赋值运算符&#xff08;&#xff09;重载返回值类型和返…

人工智能论文:BERT和GPT, GPT-2, GPT-3 的简明对比和主要区别

在BERT的论文里面&#xff1a; 2018.10 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding&#xff0c;BERT已经解释了BERT&#xff0c;GPT&#xff0c;ELMo的区别。 *ELMo为双向RNN&#xff0c;请忽略。 主要区别&#xff1a; BERT使用的是…

15、ESP32 Wifi

ESP32 的 WIFI 功能是模块内置的&#xff0c;通过 ESP32 的基础库调用一些函数就可以轻松使用它。 Wifi STA 模式&#xff1a; 让 ESP32 连接附近 WIFI&#xff0c;可以上网访问数据。 // 代码显示搜索连接附近指定的 WIFI // 通过 pin 按键可断开连接#include <WiFi.h>…

前端入门:HTML(css轮廓,填充,宽高)

1.CSS轮廓 注意&#xff1a; outline中&#xff0c;out-style是必须要设置的&#xff0c;格式为&#xff1a; outline-style一共有以下的几个值&#xff1a; 2.CSS填充属性 这是一个用于在一个元素的内容周围产生空间&#xff0c;也就是边框内到白框外之间的距离&#xff0c;…

基于Spring Boot的商务安全邮件收发系统设计与实现

基于Spring Boot的商务安全邮件收发系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 已发送效果图&#xff0c;用户可以对已发送信息…

AIGC元年大模型发展现状手册

零、AIGC大模型概览 AIGC大模型在人工智能领域取得了重大突破&#xff0c;涵盖了LLM大模型、多模态大模型、图像生成大模型以及视频生成大模型等四种类型。这些模型不仅拓宽了人工智能的应用范围&#xff0c;也提升了其处理复杂任务的能力。a.) LLM大模型通过深度学习和自然语…

第一课 自动驾驶概述

1. contents 2. 什么是无人驾驶/自动驾驶 3 智慧出行大智慧 4. 无人驾驶的发展历程

领域驱动设计(DDD)笔记(一)基本概念

文章链接 领域驱动设计&#xff08;DDD&#xff09;笔记&#xff08;一&#xff09;基本概念-CSDN博客领域驱动设计&#xff08;DDD&#xff09;笔记&#xff08;二&#xff09;代码组织原则-CSDN博客 DDD基本概念 DDD 是一种面向复杂需求的软件设计方法&#xff0c;将软件开…

C# wpf 运行时替换方法实现mvvm自动触发刷新

文章目录 前言一、如何实现&#xff1f;1、反射获取属性2、定义替换方法3、交换属性的setter方法 二、完整代码1、接口2、项目 三、使用示例1、倒计时&#xff08;1&#xff09;、继承ViewModelBase&#xff08;2&#xff09;、定义属性&#xff08;3&#xff09;、属性赋值&am…

【目标检测】DEtection TRansformer (DETR)

一、前言 论文&#xff1a; End-to-End Object Detection with Transformers 作者&#xff1a; Facebook AI 代码&#xff1a; DEtection TRansformer (DETR) 特点&#xff1a; 无proposal&#xff08;R-CNN系列&#xff09;、无anchor&#xff08;YOLO系列&#xff09;、无NM…

pycharm配置wsl开发环境(conda)

背景 在研究qanything项目的过程中&#xff0c;为了进行二次开发&#xff0c;需要在本地搭建开发环境。然后根据文档说明发现该项目并不能直接运行在windows开发环境&#xff0c;但可以运行在wsl环境中。于是我需要先创建wsl环境并配置pycharm。 wsl环境创建 WSL是“Windows Su…

EasyExcel 处理 Excel

序言 本文介绍在日常的开发中&#xff0c;如何使用 EasyExcel 高效处理 Excel。 一、EasyExcel 是什么 EasyExcel 是阿里巴巴开源的一个 Java Excel 操作类库&#xff0c;它基于 Apache POI 封装了简单易用的 API&#xff0c;使得我们能够方便地读取、写入 Excel 文件。Easy…

【讲解下如何解决一些常见的 Composer 错误】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【二等奖水平论文】2024五一数学建模C题22页保奖论文+22页matlab和13页python完整建模代码、可视图表+分解结果等(后续会更新)

一定要点击文末的卡片&#xff0c;那是资料获取的入口&#xff01; 【高质量精品】2024五一数学建模C题成品论文22页matlab和13页python完整建模代码、可视图表分解结果等「首先来看看目前已有的资料&#xff0c;还会不断更新哦~一次购买&#xff0c;后续不会再被收费哦&#…

DRF解析器源码分析

DRF解析器源码分析 1 解析器 解析请求者发来的数据&#xff08;JSON&#xff09; 使用 request.data 获取请求体中的数据。 这个 reqeust.data 的数据怎么来的呢&#xff1f;其实在drf内部是由解析器&#xff0c;根据请求者传入的数据格式 请求头来进行处理。 drf默认的解…

电路笔记 : 电容电阻大小表示(103、104、151、2R5、R15的含义)

电容电阻大小表示 电阻 数字索位标称法 数字索位标称法就是在电阻体上用三位数字来标明其阻值。它的第一位和第二位为有效数字&#xff0c;第三位表示在有效数字后面所加“0”的个数.这一位不会出现字母。如果阻值是小数.则用“R”表示“小数点”.并占用一位有效数字&#xf…

eaapp怎么改地区?eaapp账号区域更改的简单操作教程分享

eaapp怎么改地区&#xff1f;eaapp账号区域更改的简单操作教程分享 EA App是由Electronic Arts艺电公司开发的官方游戏平台&#xff0c;为玩家提供了一个集中管理和探索EA游戏世界的平台。该平台提供了丰富的游戏库&#xff0c;包括热门游戏如《FIFA》和《Apex Legends》等。…

C语言——小知识和小细节17

一、未能给指针成功赋值 #include <stdio.h> #include <stdlib.h> #include <string.h>void GetMemory(char* p) {p (char*)malloc(20 * sizeof(char)); }void Test() {char* str NULL;GetMemory(str);strcpy(str, "Hello World!");printf(&quo…