【Java】JavaWEB核心要点总结:64

news2024/11/25 12:27:36

文章目录

  • 1. TCP 和 UDP的异同
  • 2. TCP为什么要三次握手 两次不行吗
  • 3. get post put 请求方式有什么区别
  • 4. 什么是XXS攻击 如何避免
  • 5. 什么是 CSRF 攻击,如何避免


在这里插入图片描述

1. TCP 和 UDP的异同


TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常见的传输层协议,用于在网络中进行数据传输。它们之间主要有以下异同:

可靠性:TCP 是一种面向连接的可靠协议,它可以保证数据传输的可靠性,并通过重传机制和流量控制来保证数据的正确到达。而 UDP 则是一种无连接的不可靠协议,不提供确认、重传和流量控制等可靠性保证。

速度:由于 TCP 的可靠机制和复杂的协议头部,它的传输速度相对较慢;而 UDP 虽然不具有可靠性,但协议头部比 TCP 简单,传输速度较快。

连接:TCP 是面向连接的,需要三次握手建立连接,建立连接后才能进行数据传输。而 UDP 则是无连接的,发送方只需知道目的地址和端口号,即可向其中发送数据。

适用场景:TCP 通常应用于各种需要确保数据完整性、稳定性的应用程序,如文件传输、电子邮件、网页浏览、远程登录等;而 UDP 则适用于实时性要求高、延迟较小的应用程序,例如音视频传输、在线游戏等。

实现复杂度:TCP 协议本身具有较高的实现复杂度,需要手动实现一些具体的细节;而 UDP 相对简单,不需要很多额外的处理。

在选择 TCP 或 UDP 作为传输协议时,应根据具体的应用需求和性能要求来选择使用哪种协议。如果需要可靠地传输数据或进行大文件传输,则应选择 TCP;如果需要快速地进行实时数据传输,则应选择 UDP。

2. TCP为什么要三次握手 两次不行吗


TCP协议采用三次握手的原因在于确保双方之间建立可靠的连接,避免出现类似于以下的数据包重复发送的情况:

  • 客户端发送连接请求报文段 SYN。但是由于网络等原因导致该报文未及时到达服务器,客户端无法获得确认信息。

  • 服务端收到客户端请求后发送了确认信息回应(SYN+ACK码),但是由于网络等原因导致该信息还未及时到达客户端,此时服务端会启动超时重传机制,重传相同的确认信息。

  • 客户端接收到该确认信息,但此时客户端已经向服务端发送了其他请求或已关闭连接,不再响应认证信息。然而,服务端并不知道客户端已经关闭连接,会一直发送确认信息,这样可以占用过多的网络资源,影响网络性能。

如果只需要两次握手,那么在以上情况下就有可能会发生错误:双方都进入到了ESTABLISHED状态,但实际上客户端无意与服务端通信,使服务端的资源白白浪费了。所以,三次握手的步骤可以确保双方建立可靠的连接,并避免类似的问题出现,从而更好地保障数据传输的可靠性和安全性。


3. get post put 请求方式有什么区别


GET、POST和PUT都是常见的HTTP请求方法,主要区别如下:

GET:一般用于获取资源(特别是多次访问同一资源),通过 URL 传递参数,对数据没有修改操作,并且通常不支持发送大量数据。

POST:一般用于提交表单数据或者上传文件等请求,将数据置于请求体中,对服务器的数据做出改变,并且可以发送大量数据。

PUT:一般用于更新资源,是幂等的操作。可以通过请求内容来更新指定的资源,例如上传新版本的文件到服务器。

总结:

GET 请求是一种简单的数据获取方式,且速度较快,但安全性较低,不能用来传递敏感信息。经常被用作请求静态资源或者页面,从而加快网页展示速度。

POST 请求传输更大的数据和用户信息,有更好的安全性,同时也可用于创建更新资源。

PUT 请求同样也可用于更新资源,但更强调的是替换已存在的资源,如更新一个文件。

虽然每个方法都有其自身特性和优势,但在实际使用时需要根据具体的场景,选择合适的HTTP方法进行数据的传输和请求,以对网络的负载和性能影响最小化。


4. 什么是XXS攻击 如何避免


跨站脚本攻击(Cross-site scripting attack, XSS攻击)是一种常见的Web攻击,攻击者利用漏洞注入恶意的脚本代码,在用户浏览器上运行,从而窃取或篡改用户信息,以达到攻击目的。

以下是一些可行的避免措施:

  • 输入检查和过滤:应对用户输入进行检查和过滤,特别是对 HTML 和 JavaScript 等敏感符号进行转义处理。可以通过使用一些现成的库来实现安全地处理数据。

  • 设置HTTP头中的X-XSS-Protection属性:该属性用于开启或关闭XSS筛选功能,并指定浏览器的反射性XSS保护级别。设置该属性能够帮助浏览器检测和防御潜在的XXS攻击。

  • 使用Content-Security-Policy(CSP):CSP可以控制Web页面的资源加载,使其只能加载域名白名单内的资源文件,从而有效地防止执行恶意脚本的情况出现。

  • 安全编码和安全管理:在系统设计开发和维护阶段,应严格执行安全编码和安全管理标准规范,及时修补已知漏洞和弱点,包括但不限于更新后台管理系统、强化用户密码等。

XXS攻击对于现代Web应用来说是一个普遍的问题。应采取一系列适当的技术和管理措施,以防止这种类型的攻击和恶意代码注入。


5. 什么是 CSRF 攻击,如何避免


跨站请求伪造攻击 (Cross-Site Request Forgery, CSRF) 是一种常见的Web攻击,攻击者通过某种方式诱导用户在登录了某个网站后,进入一个恶意网站,利用漏洞来实现对登录状态的利用。

以下是一些可行的避免措施:

  • 防止非法请求:在程序中进行验证,只接受来自正式页面的请求,设定一个验证机制 ,比如 唯一Token之类的方法,这样可以减少被CSRF攻击的可能性。

  • 关闭第三方 Cookie:在应用程序上关闭第三方Cookie的使用(最好禁用该功能),可以有效地避免来自恶意 JavaScript 的操作。

  • 对敏感操作进行二次验证:对于敏感操作,加入二次验证 (如:输入验证码或 token),以提高安全性.

  • 安全编码和安全管理:在Web应用的设计、开发和维护过程中,应严格执行安全编码和安全管理标准规范,及时修补已知漏洞和弱点。同时,其他通用的防御措施(如CSP)也可参考。

通过尽量避免信任外部输入及严格限制用户权限,并采取以上几点防范措施,可以有效地降低CSRF攻击的风险。



在这里插入图片描述

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

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

相关文章

typedef 和 # define 用法区别

typedef 和 # define 用法区别 前言1. 原理不同1.1 typedef int * int_ptr;与#define int_ptr int * 详细讲解 2. 功能不同3. 作用域不同 前言 博主在牛客网上看到了一道有关typedef和# define题目。发现有很多初学的小伙伴对两者的用法不是特别清楚,所以博主在这总…

python内存

在python中,一切都是对象。Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。 Java虽然也是面向对象编程的语言,但是血统没有Python纯正。比如Java的八种基本数据类型之一int,在持久化的时候…

HCIA-NAT

目录 NAT:网络地址转换 NAT原理: NAT转换原理图: 静态NAT 静态NAT的工作原理: 静态NAT配置命令 静态NAT配置实例: 动态NAT 动态NAT的工作原理 动态NAT: 动态NAT配置命令 动态NAT案例 NAPT NA…

css蓝桥杯--⾃适应⻚⾯

目录 一、介绍二、准备三、⽬标四、代码五、完成 一、介绍 响应式布局是在 2010 年 5 ⽉份提出的⼀个概念,这个概念是为解决移动互联⽹浏览⽽诞⽣的。简⽽⾔之,就是⼀个⽹站能够兼容多个终端——⽽不是为每个终端做⼀个特定的版本。通过响应式布局可以为…

EXCEL文本处理总结:如何查找(/定位)字符串内,符合条件的多个符号里的最后一个?

目录 题外话:学习总结 1 新手切忌贪多 2 熟练者切忌懒惰 3 这2件事恰恰都和人性相反 1 EXCEL文本处理相关函数 2 查找函数 find() 和 search() 2.1 find() 2.2 search() 2.3 下面是测试的公式情况 3 如何查找(定位)符合条件的某个字符的位置?…

MySQL触发器的使用

目录 一、前言二、触发器分类1.插入触发器2.更新触发器3.删除触发器 三、查看触发器四、异常处理五、小结 一、前言 各种主流数据库,都集成了触发器的功能。触发器提供了一种机制,允许开发者在对数据库表的插入、更新、删除的前后捕获相应的数据行。从而针对数据行实现特定的逻…

DebugView的使用

目录 一、前言二、本机调试1.DebugView程序文件说明2.OutputDebugString函数使用3.示例程序4.远程调试 三、问题与注意事项四、小结 一、前言 DebugView是windows下的一款调试工具,可以捕获程序输出的日志,分为64位和32位,支持应用层和内核层的日志捕获,利用它排除bug是个不错的…

chatgpt赋能python:Python开发手机软件的优势和挑战

Python开发手机软件的优势和挑战 随着智能手机的普及,移动应用开发已成为当前最热门的技术领域之一。随着越来越多的企业意识到移动应用的重要性,越来越多的开发者开始加入这个领域。 在移动应用的开发中,由于其高效性和易于学习的特点&…

【Flutter】Dart/Flutter SDK如何降低版本、回退到指定版本

因为dart3.0以后不再支持 no-sound-null-safety;但是有些项目不得以切换到dart3.0以前继续使用运行项目 方法1: 通过 $ flutter downgrade命令,将flutter降级为当前通道的上一个活动版本; 如果没有存在老版本则会提示 flutter …

从零手写操作系统之RVOS软件定时器实现-08

从零手写操作系统之RVOS软件定时器实现-08 定时器分类软件定时器的分类软件定时器设计与实现软件定时器调用流程增加对周期性定时任务支持测试优化点 本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整理而来,主要作为xv6操作系统学习的一个前置基础。…

chatgpt赋能python:Python强制等待:如何优化你的Python技能

Python强制等待:如何优化你的Python技能 在Python编程中,强制等待是一种非常重要的程序设计方式。Python代码中的强制等待通常使用time.sleep()方法实现。在本文中,我们将详细介绍什么是Python强制等待,以及如何使用它来优化你的…

基于最近电平逼近的开环MMC逆变器MATLAB仿真模型

资源地址: 模型介绍: MATLAB21b版本 DC:12kV,N=12, 采用最近电平逼近调制,采用基于排序的均压方法,冒泡排序+桥臂电流方向判断。 连接负载,可以得到13电平相电压波形。…

Windows10下使用VS2019编译chromium

Windows10下使用VS2019编译chromium 工具设置代理cmd运行gclient配置VS的版本,环境变量设置下载源码生成编译工具 下载depot_tools,并配置环境变量,PATH下添加depot_tools的解压路径E:\src\depot_tools 设置代理 控制台管理员权限执行 git config --global http.proxy…

CenoOS连接 SQL Server

目录 1、问题:2、解决步骤3、拓展3.1 常用查询3.2 SQL Server 语句规则3.3 python调用 1、问题: 连接:ProviderSQLOLEDB.1;Persist Security InfoFalse;User IDXXX;passwordXXXXX;Initial CatalogXXXXX;Data SourceXXXXX; 解析:…

chatgpt赋能python:Python屏幕截图:完美的方法记录你的屏幕

Python屏幕截图:完美的方法记录你的屏幕 Python作为一种高级编程语言,被广泛用于开发各种应用程序和游戏,其中之一就是屏幕截图。 在本文中,我们将介绍使用Python进行屏幕截图的方法和技巧。 什么是屏幕截图? 屏幕截…

第六十八天学习记录:高等数学:导数(宋浩板书)

导数是微积分中的一个概念,描述了函数在某一个点上的变化率。具体地说,函数 f ( x ) f(x) f(x)在 x a xa xa处的导数为 f ′ ( a ) f(a) f′(a),表示当 x x x在 a a a处发生微小的变化 Δ x \Delta x Δx时, f ( x ) f(x) f(x)对…

Golang每日一练(leetDay0090) 运算优先级、有效字母异位词

目录 241. 为运算表达式设计优先级 Different Ways to Add Parentheses 🌟🌟 242. 有效的字母异位词 Valid Anagram 🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 …

Vector源码

介绍 Vector是矢量队列,继承于AbstractList,实现了List, RandomAccess, Cloneable和Serializable接口Vector继承了AbstractList,实现了List接口,所以它是一个队列,支持相关的添加、删除、修改、遍历等功能Vector实现了…

chatgpt赋能python:Python的强制语句缩进解析

Python的强制语句缩进解析 什么是语句缩进 在其他编程语言中,我们通过使用花括号或者一些其他的符号来区分控制语句的范围。但在Python中,我们使用缩进来实现这个目的。这意味着任何控制结构的主体都必须按照要求正确缩进。 为什么Python强制要求使用…

【Java】JavaWEB核心要点总结:63

文章目录 1. JSP 和 Servlet 有什么区别2. JSP有哪些内置对象 分别是什么3. 详细讲解cookie session token4. 如果客户端禁止 了cookie ,session 还能用吗5. session 的工作原理 1. JSP 和 Servlet 有什么区别 JSP(Java Server Pages)和Servl…