java网络面试

1 http 响应码 301 和 302 代表的是什么?有什么区别?
301 Moved Permanently(永久重定向):表示请求的资源被永久移动到了新的URL,未来所有对该资源的请求都应该使用新的URL。搜索引擎会将原有的链接替换为新的URL。
302 Found(临时重定向):表示请求的资源暂时移动到了新的URL,未来可能还会发生变化,所以搜索引擎会保留原有的链接。对于重定向后的请求,客户端应该继续使用原有的URL。

2 forward 和 redirect 的区别?
Forward(转发):在服务器内部进行页面跳转,客户端浏览器对此无感知。服务器直接将请求转发到目标页面,目标页面再将响应返回给客户端。URL地址栏不会改变,原始请求的参数会传递给目标页面。
Redirect(重定向):服务器告诉客户端浏览器重新发送一个新的请求,客户端浏览器会重新请求新的URL。URL地址栏会改变为重定向的URL,原始请求的参数不会传递给新的URL。

3 简述 tcp 和 udp的区别?

TCP是面向连接的协议,提供可靠的数据传输。它通过三次握手建立连接,使用序号、确认和重传机制保证数据可靠性,还提供流量控制和拥塞控制等功能。TCP适用于要求数据完整性和可靠性的应用场景,如文件传输、网页访问等。
UDP是无连接的协议,提供不可靠但效率高的数据传输。UDP不需要建立连接,直接发送数据包。它不提供数据的可靠性保证,也不会对数据包进行重传或排序。UDP适用于实时性要求高、对数据传输可靠性要求相对较低的应用场景,如音视频传输、DNS解析等。

4 tcp 为什么要三次握手,两次不行吗?为什么?
第一次握手:客户端发送SYN包(同步序列编号)给服务器,请求建立连接。
第二次握手:服务器收到SYN包后,发送ACK包(确认序列编号)和SYN包给客户端,表示收到请求,并同意建立连接。
第三次握手:客户端收到服务器的ACK包后,发送ACK包给服务器,确认连接建立成功。
三次握手可以确保双方都能收到对方的确认信息,并建立起可靠的连接。如果只进行两次握手,可能会发生以下情况:

客户端发出的连接请求在网络中滞留,服务器收不到,导致连接无法建立。
服务器发出的确认信息在网络中滞留,客户端收不到,导致客户端一直处于连接等待状态。

5 说一下 tcp 粘包是怎么产生的?
TCP粘包是指发送方发送的若干个小数据包在接收方接收时粘成了一个大数据块。TCP粘包产生的原因主要有:

发送方连续发送多个小数据包,由于网络传输的特性,这些小数据包可能会被合并成一个大数据包。
接收方的应用程序不及时读取数据,导致数据在接收缓冲区中积累,最终一次性读取了多个数据包。

6 OSI 的七层模型都有哪些?
物理层(Physical Layer):负责传输比特流,定义物理接口、电气特性和传输介质等。
数据链路层(Data Link Layer):处理数据帧的传输和识别,提供可靠的点对点数据传输。
网络层(Network Layer):进行数据包的路由选择和转发,实现不同网络之间的通信。
传输层(Transport Layer):提供可靠的端到端数据传输,如TCP和UDP协议。
会话层(Session Layer):负责建立、管理和终止会话连接,提供会话状态控制。
表示层(Presentation Layer):处理数据的表示和转换,确保不同系统间的数据格式兼容。
应用层(Application Layer):提供用户与网络应用的接口,实现特定的应用功能。

7 get 和 post 请求有哪些区别?
GET请求用于从服务器获取资源,而POST请求用于向服务器提交数据。
GET请求将参数以查询字符串的形式附加在URL后面,而POST请求将参数放在请求体中。
GET请求的参数有长度限制,通常在2KB到8KB之间,而POST请求没有固定的限制。
GET请求可被缓存,可以通过浏览器的历史记录等方式重新访问,而POST请求不会被缓存。
GET请求在浏览器回退时会重新发起请求,而POST请求不会。

8 如何实现跨域?
CORS(跨域资源共享):通过设置响应头中的Access-Control-Allow-Origin字段来允许指定域名的请求跨域访问。
JSONP(JSON with Padding):利用<script>标签可以跨域加载资源的特性,在客户端动态创建<script>标签,通过回调函数的方式获取跨域数据。
代理服务器:在同源策略没有限制的服务器上设置一个代理接口,用于转发跨域请求和响应。
WebSocket:使用WebSocket协议进行双向通信,不受同源策略的限制。

9 说一下 JSONP 实现原理?
客户端动态创建<script>标签,src属性指向跨域请求的URL,并通过回调函数名作为URL的参数传递给服务器。
服务器接收到请求后,将响应数据包装在回调函数中,并返回给客户端。
客户端解析响应数据时,由于是<script>标签加载的资源,因此会自动执行回调函数,并将响应数据作为参数传递给回调函数。
客户端在回调函数中处理响应数据,完成跨域数据请求。
需要注意的是,JSONP只支持GET请求,并且存在安全性问题,因为它依赖于服务器返回的代码的可信任性。因此,在使用JSONP时,必须确保获取的数据来源可信,以防止恶意代码的注入攻击。

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

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

相关文章

CSS新手入门笔记整理:CSS3弹性盒模型

特点 子元素宽度之和小于父元素宽度&#xff0c;所有子元素最终的宽度就是原来定义的宽度。子元素宽度之和大于父元素宽度&#xff0c;子元素会按比例来划分宽度。在使用弹性盒子模型之前&#xff0c;必须为父元素定义“display:flex;”或“display:inline-flex;”。 弹性盒子…

一款基于.NET Core的快速开发框架、支持多种前端UI、内置代码生成器

前言 经常看到有小伙伴在技术群里问有没有什么好用且快速的开发框架推荐的&#xff0c;今天就给大家分享一款基于MIT License协议开源、免费的.NET Core快速开发框架、支持多种前端UI、内置代码生成器、一款高效开发的利器&#xff1a;WalkingTec.Mvvm框架&#xff08;简称WTM…

阿里云常用配置:日志采集、OSS、RAM 权限策略

文章目录 引言I 日志采集1.1 具体查询语法1.2 查询示例1.3 设置token时间(登录过期时间)II OSS2.1 设置防盗链2.2 验证Referer防盗链是否生效III 通义灵码 (智能编码)IV RAM 权限策略4.1 短信策略4.2 内容风险检测引言 SLS I 日志采集

CyclicBarrier实战应用——实现异步多线程业务处理,异常情况回滚全部子线程

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; CyclicBarrier实战应用——实现异步多线程业务处理&#xff0c;异常情况…

Python办公自动化 -- Python发送电子邮件和Outlook的集成

Python办公自动化 – Python发送电子邮件和Outlook的集成 文章目录 Python办公自动化 -- Python发送电子邮件和Outlook的集成前言一、使⽤Python发送电⼦邮件1、导⼊所需的模块2、设置邮箱参数3、 创建邮件内容4、连接到SMTP服务器并发送邮件 二、Python与Outlook的集成1、使⽤…

K-均值聚类算法及其优缺点

K-均值聚类算法是一种常用的无监督学习算法&#xff0c;用于将数据集划分为 K 个不同的类别&#xff0c;每个类别由其内部的数据点表示。该算法通过将每个数据点分配到离其最近的聚类中心&#xff0c;并且根据新的聚类中心更新聚类的位置来迭代地优化聚类的结果。 算法步骤&am…

Linux笔记本电脑投屏到电视,用网页浏览器就能投屏到电视!

Linux系统的电脑如果要投屏到安卓电视屏幕上&#xff0c;可以使用投屏工具AirDroid Cast的网页版和TV版一起实现。 首先&#xff0c;在Linux系统的电脑里用chrome浏览器或edge浏览器打开网址webcast.airdroid.com。这个网址就是AirDroid Cast的网页版。你可以看到中间白色框框的…

Canal使用详解

Canal介绍 Canal是阿里巴巴开发的MySQL binlog增量订阅&消费组件&#xff0c;Canal是基于MySQL二进制日志的高性能数据同步系统。在阿里巴巴集团中被广泛使用&#xff0c;以提供可靠的低延迟增量数据管道。Canal Server能够解析MySQL Binlog并订阅数据更改&#xff0c;而C…

cilium原理之ebpf尾调用与trace

背景 在深入剖析cilium原理之前&#xff0c;有两个关于epbf的基础内容需要先详细介绍一下&#xff1a; 1. ebpf尾调用 尾调用类似于程序之间的相互跳转&#xff0c;但它的功能更加强大。 2. trace 虽然之前使用trace_printk输出日志&#xff0c;但这个函数不能多用&#x…

视觉学习(1)—— 理论

一、提问 初入视觉的几个问题&#xff1a; 1、视觉是怎么被控制的 2、怎么让视觉启动 3、视觉需要完成什么东西 4、视觉启动如何将完成的东西反馈给我 二、回答 1、视觉都是通过通讯协议控制&#xff0c;如串口、Modbus TCP等协议 2、视觉中的所有功能块都在流程中&…

使用StableDiffusion进行图片Inpainting原理

论文链接&#xff1a;RePaint: Inpainting using Denoising Diffusion Probabilistic Models代码链接&#xff1a;RePaint Inpainting任务是指在任意一个二进制的掩码指定的图片区域上重新生成新的内容&#xff0c;且新生成的内容需要和周围内容保持协调。当前SOTA模型用单一类…

js-cookie的使用以及存储token安全的注意要点

js-cookie的使用以及存储token安全的注意要点 npm 安装 npm i js-cookie -S // https://www.npmjs.com/package/js-cookie引入使用 import Cookies from js-cookie获取 Cookies.get(token); // 读取token Cookies.get() // 读取所有可见的 Cookie > { token: value }设置…

高级算法设计与分析(四) -- 贪心算法

系列文章目录 高级算法设计与分析&#xff08;一&#xff09; -- 算法引论 高级算法设计与分析&#xff08;二&#xff09; -- 递归与分治策略 高级算法设计与分析&#xff08;三&#xff09; -- 动态规划 高级算法设计与分析&#xff08;四&#xff09; -- 贪心算法 高级…

FATFS文件系统

文件系统是为了存储和管理数据&#xff0c;而在存储设备上建立的一种组织结构。 Windows常用的文件系统&#xff1a; 1、FAT12 2、FAT16 3、FAT32 4、exFAT 5、NTFS FAT&#xff1a;File Alloction Table 文件分配表 在小型的嵌入式存储设备大多…

Ubuntu 常用命令之 ping 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 ping命令是一种网络诊断工具&#xff0c;用于测试主机之间网络的连通性。它发送ICMP Echo Request消息到指定的网络主机&#xff0c;并等待接收ICMP Echo Reply。通过这种方式&#xff0c;我们可以知道两台主机之间的网络是否畅通…

pycharm修改项目文件夹名称

目录 1 修改项目文件夹名称 2 修改代码中的项目名称 1 修改项目文件夹名称 选中项目文件夹&#xff0c;右键&#xff0c;选择refactor-rename。 选择rename project&#xff1a; 然后输入新的项目名称。 此时进入资源管理器&#xff0c;修改项目文件夹的名字&#xff0c;完成…

IntelliJ IDEA 2023.3 新功能介绍

IntelliJ IDEA 2023.3 在众多领域进行了全面的改进&#xff0c;引入了许多令人期待的功能和增强体验。以下是该版本的一些关键亮点&#xff1a; IntelliJ IDEA mac版下载 macappbox.com/a/intellij-idea-for-mac.html 1. AI Assistant 的全面推出 IntelliJ IDEA 2023.3 中&am…

ES-mapping

类似数据库中的表结构定义&#xff0c;主要作用如下 定义Index下的字段名( Field Name) 定义字段的类型&#xff0c;比如数值型、字符串型、布尔型等定义倒排索引相关的配置&#xff0c;比如是否索引、记录 position 等 index_options 用于控制倒排索记录的内容&#xff0c;有如…

钓鱼与木马实践(仅供参考不可实践)

声明:内容仅供学习&#xff0c;请勿违法使用&#xff0c;违者后果自负 一.部署云服务器 购买一台云服务器,Windows&#xff08; 中文 &#xff09;版本即可 华为云官网&#xff1a;https://www.huaweicloud.com/ 登录后进入控制台购买完成后远程登录云服务器 二.部署WEB运行…

【Python百宝箱】图像魔法师:Python数据可视化的艺术之旅

视觉盛宴&#xff1a;畅游Python数据可视化的瑰丽星空 前言 在当今数据驱动的世界中&#xff0c;数据可视化是解读和传达信息的强大工具。Python生态系统中涌现出众多优秀的可视化库&#xff0c;本文将深入探讨其中的五大明星库&#xff1a;Ggplot、PyQtGraph、VisPy、Bqplot…