当前位置: 首页 > news >正文

【JavaEE】网络(6)


一、http相关概念

1.1 什么是http协议

http协议(超文本传输协议),是应用层的一个协议

1.2 应用场景

  1. 网页与服务器之间交互
  2. 手机app与服务器之间交互

http协议是典型的一问一答模式的协议,即请求和响应是一一对应的

二、http协议格式

2.1 抓包工具——FIddler

抓包工具的作用就是能够获取网络上传输的http数据,并显示出来,抓包工具有很多,很典型的一个就是Fiddler,下述为其页面

  • 页面左侧为所有http请求与响应,点击即可查看详情
  • 右侧上方为http请求的报文格式
  • 右侧下方为http请求的报文格式

2.2 抓包工具原理

抓包工具相当于一个代理程序,浏览器要访问服务器,Fiddler会抓到这个http请求,然后发给服务器,服务器返回响应,Fiddler也会抓取这个http响应,然后发给浏览器

注意:

  • 代理程序不止有抓包工具,还有其他类型的抓包工具,比如:游戏加速器
  • 代理程序之间会冲突,若要抓包,确保其他代理程序关闭

2.3 http请求格式分析

Fiddler的右上窗口就是http请求的报文格式,假如访问bing

首行:

  • 方法:请求的方法,描述这个请求要干什么,下面详细解释
  • url:网址
  • 版本:http协议版本

Header:请求报头,都是键值对,键值之间以冒号分隔,每组键值对以\n分隔,到第一个空行代表Header结束


Body:正文,空行以下的部分,相当于载荷,Body不仅仅是html数据,也有可能为空,get请求中通常为空,如果Body不为空,则在Header中会有⼀个Content-Length属性来标识Body的长度

2.3.1 url详解

url基本格式:

https://cn.bing.com/search?q=%E4%BD%A0%E5%A5%BD&form=QBLH&sp=-1&lq=0&pq=%E4%BD%A0%E5%A5%BD&sc=11-2&qs=n&sk=&cvid=41094B30C53846FB9AA29ECE0CF8B52D&ghsh=0&ghacc=0&ghpl=

  • https:协议方案名,描述url要干什么,常见的有http和https
  • user:pass:登录信息,现在的网站一般通过登录页面来验证,一般不通过url的方式,所以这部分经常省略
  • cn.bing.com:域名,确定访问的主机
  • 端口号:用来确定访问主机上的哪个程序,上述url中端口号被省略,当省略端口号的时候,浏览器会根据协议类型自动决定使用哪个端口,例如http的默认端口是80,https是443
  • /search:带层次的文件路径,确定访问程序中的哪个资源,通过IP地址确定主机,通过端口号确定程序/进程,通过文件路径确定资源,上述三者可以确定互联网的唯一一个资源
  • 上述url中问好后面可以看到一个个键值对,键和值之家以=分隔,每组键值对之间以&分隔,这些是查询字符串(query string),表示一些参数,是客户端要告诉服务器的数据

url encode:

url中这些字符:/在url中有着特殊的意义,不能随意出现,如果在query string中的value部分出现了这些字符,url就会解析失败,为避免这种情况,url就引入了encode机制:针对键值对中的value进行转义
转义的规则如下:将要转码的字符转换为16进制(如果是字符,就是acsii码值,如果是汉字,就是utf8)之后在每个字符的16进制的前面加上%,编码成%XY的形式

2.3.2 方法详解

方法,描述了请求要干什么,用的最多的两个是GET 和 POST

① GET 和 POST 有什么区别(面试题)

  • GET 和 POST 本质上没有区别,GET的应场景,POST也可以用,POST的应用场景,GET也可以用
  • 从语义上,GET用来获取数据,POST用来发送数据
  • GET一般通过query string 传输数据,POST一般通过body传输数据
  • 服务器对于GET请求的设计经常是幂等的,而POST不是;
    GET请求通产是幂等的:多次发送相同的GET请求,返回的数据是相同的,不会改变服务器上的资源的状态,比如查看一篇博客,点进去再退出再点进去,每次点进去这个文章都不会变
  • GET请求的结果可以被缓存,比如通过GET获取的图片,浏览器可以缓存这些图片,下次访问的时候,直接从缓存中来读取(缓存再硬盘上),POST一般不行

② 针对GET 和 POST的一些错误说法

  • POST安全,GET不安全:关于安全不安全,主要取决于加密操作(后面讲到https会讲,并不是参数写到body里就安全(因为可以抓包),也不是参数写到query string就安全
  • GET传输的数据有限,POST传输的数量没有限制:在http标准中明确指出GET请求的URL没有长度限制,也就是query string没有长度限制
  • GET只能传输文本数据,POST可以传输文本,也可以传输二进制数据:url提供了encode机制,二进制数据可以进行encode得到转义,并进行传输;POST虽然可以直接传二进制数据,但很多时候也是转义了之后通过文本的方式来传的

2.3.3 请求报头详解

  • Host:标识服务器主机上的IP和端口号,一般和URL中的域名相同

  • Content-Length:描述了body的长度,通过这个字段就可以避免粘包问题:通过空行可以知道body从哪开始,通过该字段可以知道body到哪结束
  • Content-Type:描述了body的数据类型,常见的有下面两种

1. application/x-www-form-urlencoded:form表单提交数据,此时body格式如下:

title=test&content=hello

2. application/json:数据为json格式,此时body格式如下:

{"username":"123456789","password":"xxxx","code":"jw7l","uuid":"d110a05ccde64b16"}
  • User-Agent(简称UA):表示浏览器/操作系统的属性

  1.  Mozilla:是一个开源组织
  2. Windows NT 10.0; Win64; x64:表示操作系统的信息
  3. AppleWebKit/537.36:表示浏览器的内核

  4. 浏览器内核后面的属于浏览器的其他信息

UA两个作用:

1. 告诉服务器,用户使用的是什么浏览器和该浏览器版本,有助于服务器提供与客户端兼容的内容

2. 让服务器知道用户使用的什么设备,如果是手机,就返回一个较小的页面;如果是电脑,就返回一个较大的页面

  • Referer:表示这个页面是从哪个页面跳转过来的

    

上图就表示是从百度的某个页面跳转过来的
该字段主要用于广告业上,广告主可以根据这个属性知道哪个平台的流量高

  • Cookie:Cookie是浏览器本地存储数据的一种机制,cookie中保存的是一个一个键值对,这些键值对代表一些用户名、用户偏好、会话ID之类的信息,这些数据都是服务器返回的

    工作原理
    当用户首次访问网站时,服务器生成一个Cookie,为用户创建一个唯一的会话ID,并将这个ID存储到刚刚创建的Cookie中,将这个Cookie返回给用户浏览器,此时浏览器就会将这个Cookie存储在硬盘的文件中,当用户后续访问网站时,浏览器会自动将这个Cookie发送给服务器,服务器通过读取Cookie中的信息,快速识别出用户身份,以便服务器对于该用户提供个性化服务

    举个例子:自动登录

当用户首次访问网站并输入用户名和密码进行登录时,服务器会生成一个唯一的会话ID,并将其与用户的登录信息相关联,同时,服务器会创建一个包含该会话ID的Cookie,并将其发送给客户端浏览器

客户端浏览器接收到Cookie后,会自动将其保存在本地,在用户后续访问该网站时,浏览器会自动将之前保存的Cookie(包含会话ID)包含在HTTP请求头中发送给服务器。

服务器会维护一个会话表,用于存储用户的会话ID和相关信息,服务器会根据会话ID查询到用户身份,就可以对该用户提供个性化服务(夜间模式、背景等)

2.4 http响应格式分析

Fiddler的右下窗口就是http响应的报文格式,假如访问bing

首行:


Header:请求报头,都是键值对,键值之间以冒号分隔,每组键值对以\n分隔,到第一个空行代表Header结束(可以看到响应里有Set-Cookie字段)


Body:和http请求的格式基本一样

2.4.1 状态码详解

状态码状态说明
200成功服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页
404未找到服务器找不到请求的网页。
403禁止服务器拒绝请求
405方法禁用禁用请求中指定的方法
500服务器内部错误服务器代码出现bug,无法完成请求
504网关超时服务器作为网关或代理,但是没有及时从上游服务器收到请求
302临时重定向服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
301永久重定向请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置

解释302:在访问某个旧地址的时候,自动跳转到新地址上,在登录的页面中,经常会见到302,用于实现登录之后自动跳转到主页

2.4.2 响应报头详解

响应报头的基本格式和请求报头基本一致.

响应中Content-Type的常见取值:

  • text/html:body数据格式是HTML
  • text/css:body数据格式是CSS
  • application/javascript:body数据格式是JavaScript
  • application/json:body数据格式是JSON
     

三、https协议

https 也是一个应用层协议,在http的基础上引入了一个加密层

3.1 核心概念

  • 加密:将明文(要传输的原始数据)经过一系列转换生成密文
  • 解密:将密文经过一些列变换还原成密文
  • 密钥:进行加密和解密用到的重要道具

https就是通过加密操作来保证安全的,接下来介绍两种加密操作

3.2 对称加密

客户端和服务器使用同一个密钥对数据进行加密和解密

上图中客户端和服务器使用的是同一个密钥,该密钥就是对称密钥

服务器面对的是多个客户端,多个客户端可以使用同一个密钥吗?当然是不行的,因为客户端会提前和服务器约定好密钥是什么,那么黑客可以用自己的客户端获取到密钥,此时就知道了其他所有客户端的密钥了
所以每个客户端的对称密钥都必须不一样,客户端生成自己的对称密钥后,要告诉服务器,如果明文发送的话,也会被黑客截取,所以传输的时候要对称密钥进行加密,那就要提前生成一个密钥的密钥,仍然要告诉服务器,这样无法解决问题,所以引入非对称加密

3.3 非对称加密

非对称加密采用公钥和私钥两种密钥对数据进行加密和解密,服务器会将公钥告诉所有客户端(客户端并不是一开始就有公钥,而是连接上服务器后,服务器给客户端返回的公钥),私钥服务器自己会留着,每个客户端生成自己对称密钥后,会先使用公钥将对称密钥进行加密,然后发送给服务器

接下来是重点:使用公钥将对称密钥进行加密,但是只能使用服务器自己的私钥才能解密,私钥只有服务器拥有,所以即便黑客截取到了加密后的对称密钥也没办法对其解密(黑客只能获取到公钥)

服务器获取到数据后,先通过私钥解密获得对称密钥,再通过对称密钥解密获取原始数据

【中间人攻击】

非对称加密仍然存在不安全的要素,黑客无法获取到私钥,但他可以通过 "伪装" 的方式截取数据:

上图客户端与服务器建立连接,想要获取公钥,服务器返回公钥pub后被黑客截取,此时黑客自己会生成一对公钥pub1和私钥pri1,站在客户端的角度并不知道这个公钥已经被"掉包"了

此时客户端会采用pub1将自己生成的对称密钥进行加密并发送给服务器,黑客截取后,会使用自己的私钥pri1进行解密,最终获取到明文数据

黑客接下来会将数据使用服务器的密钥pub进行加密发送给服务器,这样在面对服务器,黑客伪装成客户端,面对客户端时,黑客伪装成服务器

接下来看如何解决中间人攻击问题

3.4 证书

上述问题的核心在于客户端无法辨认公钥是不是服务器发放的,所以为了让客户端有辨认能力就引入证书

服务器上线自己网站的时候,要先去第三方公正机构申请一个证书:

证书中包含一系列信息,比如:

  1. 发证机构
  2. 服务器的公钥
  3. 持有者网站的域名
  4. 证书的有效期
  5. 数字校验和

上述前四点的数据都是明文,而数字校验和是经过加密生成的:

第三方公证机构自己有一对公钥和私钥,将 校验和1 通过 公证私钥 加密得到 数字校验和

此时客户端和服务器建立连接就不会要公钥,而是要证书:

客户端拿到证书后,先对明文字段计算校验和,得到校验和A,然后对数字校验和进行校验,数字校验和是将校验和1通过公证私钥进行加密得到的,那么就需要公证公钥进行解密,获取公钥并不是通过网络获取的,而是在操作系统中内置了市面上所有第三方公证机构的公钥

客户端会根据证书中发证机构这个字段,来找到对应的公钥并对数字校验和进行解密,此时得到校验和B,如果校验和A和校验和B相等,则校验通过

【证书是否可以伪造?】

  • 如果黑客修改了证书中服务器的公钥这个字段,而不修改数字校验和
    此时客户端解密出来的校验和B和自己计算出来的校验和A不相同,则校验不通过
  • 如果黑客修改了公钥,然后使用自己的私钥计算并修改了数字校验和
    此时客户端是拿着系统内置的公钥去解密,肯定解密不了,所以校验不通过

🙉关于网络的篇章就到此结束

相关文章:

【JavaEE】网络(6)

一、http相关概念 1.1 什么是http协议 http协议(超文本传输协议),是应用层的一个协议 1.2 应用场景 网页与服务器之间交互手机app与服务器之间交互 http协议是典型的一问一答模式的协议,即请求和响应是一一对应的 二、http协议…...

什么是单例模式

单例模式就是 只有一个 不能存在多个 饿汉式单例模式 实现方式: 这种模式在程序启动或单例类被加载时就创建好实例。例如,以下是一个简单的 C 实现的饿汉式单例类,用于记录日志(假设这个日志类在整个程序中有且仅有一个实例&#…...

protobuf实用教程

引言 protobuf安装 protobuf数据类型 基本数据类型 复合类型 Map类型 protobuf使用教程 编写.proto文件 编译 使用 序列化与反序列化 结语 引言 protobuf 是 google 的一种数据交换的格式,它独立于平台语言。 google 提供了 protobuf 多种语言的实现&am…...

人工智能ACA(五)--深度学习基础

一、深度学习概述 1. 深度学习概念 1-1. 深度学习基本概念 深度学习是机器学习的一个分支基于人工神经网络(模仿人脑结构)通过多层网络自动学习特征能够处理复杂的模式识别问题 1-2. 深度学习的优点与缺点 优点 强大的特征学习能力可以处理复杂问题…...

用python ollama qwen2.5 开发一个AI修仙游戏

用 Python Ollama (Qwen2.5) 开发一个 AI 修仙游戏 简介 本文将介绍如何使用 Python 和 Ollama (Qwen2.5 模型) 开发一个文字版修仙游戏。这个游戏具有以下特点: 完整的修仙世界观和成长体系基于 AI 生成的动态剧情和事件丰富的物品系统(功法、丹药、灵宝等)社交…...

tts语音合成相关开源项目试用对比

chatTTS 如下图所示,在不添加Sample Audio和Text的时候可以正常完成文本转语音,可以自定义添加语气词,笑声和停顿等。 无法实现声音克隆,即模仿某人的音色生成语音。 试用了chatTTS官网推荐的https://voicv.com/voice-cloning进行…...

基于JAVA_JSP电子书下载系统的设计与实现【源码+文档+部署讲解】

目 录 第1章 绪论 课题的研究背景、内容和意义 第2章 主要技术概述 2.1 B/S结构 2.2 JSP技术 2.2.1 JSP技术的强势 2.2.2 JSP技术的弱势 2.3 SQL Server 2000数据库 2.4 JDBC数据库连接 2.4.1 JDBC接口 2.4.2 JDBC的驱动程序 2.5 TOMCAT应用服务器 第3章 需求分…...

外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列

在《SQL 改写系列:外连接转内连接的常见场景与错误》一文中,我们了解到谓词条件可以过滤掉连接结果中的 null 情形的,将外连接转化为内连接的做法是可行的,正如图1中路径(a)所示。此时,敏锐的你或许会进一步思考&#…...

35道面向初中级前端的基础面试题

新鲜出炉的8月前端面试题 跨域资源共享 CORS 阮一峰 3. JSONP 是什么? 这是我认为写得比较通俗易懂的一篇文章jsonp原理详解——终于搞清楚jsonp是啥了。 4. 事件绑定的方式 嵌入dom 按钮 直接绑定 btn.onclick function(){} 事件监听 btn.addEventList…...

自动驾驶控制算法-横向误差微分方程LQR前馈控制

本文是学习自动驾驶控制算法第六讲 前馈控制与航向误差以及前两节的学习笔记。 1 横向误差微分方程 以规划的轨迹作为自然坐标系,计算自车在轨迹上的投影点,进而计算误差: 如图所示,横向误差为 d d d,航向误差为 θ…...

灭屏情况下,飞行模式+静音模式+插耳,播放音乐,电流异常

1. 功耗现象 灭屏情况下,飞行模式静音模式插耳,播放音乐,电流异常 1.1测试数据 飞行模式静音模式插耳机 原生音乐播放器 DriverOnly 32.5mA User版本 45mA 1.2 电流波形现象 上述看怀疑 CPU 未进入 Deep idle 导致? 2. …...

jsp | servlet | spring forEach读取不了对象List

导致这个问题的原因有很多的&#xff0c;这里讲到的只是原因之一 原因 taglib不认识forEach 解决办法 添加<% taglib uri"http://java.sun.com/jsp/jstl/core" prefix"c" %> &#xff08;我忘写这个东西了哈哈哈&#xff09;...

Taro小程序开发性能优化实践

我们团队在利用Taro进行秒送频道小程序的同时&#xff0c;一直在探索性能优化的最佳实践。随着需求的不断迭代&#xff0c;项目中的性能问题难免日积月累&#xff0c;逐渐暴露出来影响用户体验。适逢双十一大促&#xff0c;我们趁着这个机会统一进行了Taro性能优化实践&#xf…...

数据结构:栈(顺序栈)

目录 1.栈的定义 2.栈的结构 3.栈的接口 3.1初始化 3.2栈的销毁 3.3压栈 3.4判断栈是否为空 3.5出栈 3.6得到栈顶元素 3.7栈的大小 1.栈的定义 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端…...

【Maven】Maven的快照库和发行库

1、分类 Maven 支持两种类型的仓库&#xff1a;快照库&#xff08;Snapshot Repository&#xff09;和发行库&#xff08;Release Repository&#xff09;&#xff0c;用于存储不同性质的构件&#xff08;Artifacts&#xff09;。 (1) 快照库 (Snapshot Repository)&#xff…...

如何给负载均衡平台做好安全防御

在现代网络架构中&#xff0c;负载均衡&#xff08;Load Balancing&#xff09;扮演着至关重要的角色。它不仅负责将流量分配到多个服务器以确保高效的服务交付&#xff0c;还作为第一道防线来抵御外部攻击。为了保护您的应用程序和服务免受潜在威胁&#xff0c;必须对负载均衡…...

AI应用-本地模型实现AI生成PPT(简易版)

文章目录 前言技术栈效果展示 一、实现思路二、实现步骤1.本地安装marp-cli2.后端实现3.前端实现 三、代码地址及说明 前言 在许多项目中&#xff0c;生成 PPT 是常见的需求&#xff0c;尤其在教育和报告展示中。传统的生成 PPT 的方法需要手动创建&#xff0c;而使用生成模型…...

JavaScript 数组方法完整指南

JavaScript 数组方法完整指南 1. 数组操作方法 1.1 添加/删除元素 push() 用途: 在数组末尾添加一个或多个元素返回值: 新数组的长度 const fruits [apple, banana]; const newLength fruits.push(orange, grape); console.log(fruits); // [apple, banana, orange, gra…...

基于自定义注解与 AOP 切面实现接口日志全面数据库存储

基于自定义注解与 AOP 切面实现接口日志全面数据库存储 一、引言 在当今复杂的软件系统开发与运维过程中&#xff0c;详细且精准地记录接口的各项信息对于系统性能监测、问题排查、安全审计以及业务分析都有着极为关键的意义。本文将深入讲解如何运用自定义注解与 AOP&#x…...

xcode15 报错 does not contain ‘libarclite‘

新建pod私有库 在xcode15 无法运行 报错 SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a; try increasing the minimum deployment target 下载 资源文件…...

c# 实现一个简单的异常日志记录(异常迭代+分片+定时清理)+AOP Rougamo全局注入

1. 日志目录和文件管理 日志目录&#xff1a;日志文件存储在 ./Exceptions 目录下。日志文件命名&#xff1a;日志文件的命名格式为 yyyy_MM_dd.log&#xff0c;表示当天的日期。如果当天的日志文件大小超过 maxFileSizeBytes&#xff08;3KB&#xff09;&#xff0c;则会创建…...

python 定时任务管理封装

主逻辑代码 # -*- coding: utf-8 -*- # import apscheduler import pandas as pd from datetime import datetime # 导入调度器&#xff0c;此处使用BackgroundScheduler阻塞调度器 from apscheduler.schedulers.background import BackgroundScheduler # 导入触发器&#xf…...

GIS数据处理/程序/指导,街景百度热力图POI路网建筑物AOI等

简介其他数据处理/程序/指导&#xff01;&#xff01;&#xff01;&#xff08;1&#xff09;街景数据获取&#xff08;2&#xff09;街景语义分割后像素提取&#xff0c;指标计算代码&#xff08;绿视率&#xff0c;天空开阔度、视觉熵/景观多样性等&#xff09;&#xff08;3…...

【落羽的落羽 C语言篇】自定义类型——结构体

文章目录 一、结构体1. 结构体类型的概念和声明2. 结构体变量的创建和初始化3. 结构体成员的访问3.1 直接访问3.2 间接访问 4. 结构体的内存对齐4.1 内存对齐的规则4.2 内存对齐的原因4.3 修改默认对齐数 5. 结构体传参6. 结构体实现位段 在C语言中&#xff0c;已经提供了一些基…...

【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等

WPS编译错误总结&#xff1a;WPS编译失败仅编译成功ungrib等 WPS编译过程问题1&#xff1a;WPS编译失败错误1&#xff1a;gfortran: error: unrecognized command-line option ‘-convert’; did you mean ‘-fconvert’?解决方案 问题2&#xff1a;WPS编译三个exe文件只出现u…...

【Python入门】文件读写

文章一览 一、什么是文件二、文件形态三、文件组成要素四、文件操作五、文件路径六、文件读写操作6.1 文件打开模式6.2 文件的打开6.3 正确关闭文件6.3.1 读文件方法6.3.2 写文件 七、CSV 文件读取7.1 CSV 数据存储格式7.2 CSV 文件特点7.3 使用记事本创建 CSV 文件7.4 用 csv …...

基于变异策略的模糊测试:seed与mutation的含义

1. 引入 最早期的模糊测试&#xff08;fuzz&#xff09;&#xff0c;是生成一些随机的文本序列&#xff0c;对unix系统的命令行输入进行测试。这种古老的方式&#xff0c;也发现了不少漏洞。 但完全随机的fuzz&#xff0c;存在如下问题&#xff1a; &#xff08;1&#xff09…...

制造研发企业与IPD管理体系

芯片/半导体/制造研发型企业&#xff0c;大都知道华为使用过的IPD管理体系&#xff0c;但大家用到什么程度&#xff0c;那就是参差不齐了。 因为IPD管理体系它只是一个管理理念&#xff0c;是一个方法论。它需要有相应的组织架构来承载&#xff0c;它有很复杂的流程需要有IT系统…...

电子应用设计方案68:智能晾衣架系统设计

智能晾衣架系统设计 一、引言 智能晾衣架作为智能家居的一部分&#xff0c;为用户提供了更便捷、高效和舒适的衣物晾晒体验。本设计方案旨在打造一款功能丰富、性能稳定且易于操作的智能晾衣架系统。 二、系统概述 1. 系统目标 - 实现晾衣架的自动升降&#xff0c;方便衣物的…...

如何实现圆形头像功能

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Stack Widget,本章回中将介绍CircleAvatar这种Widget,闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 在上一回中我们使用了CircleAvatar Widget,之前也没有介绍过此Widget,因此有些看官希望对它做一些介绍…...

【python自动化六】UI自动化基础-selenium的使用

selenium是目前用得比较多的UI自动化测试框架&#xff0c;支持java&#xff0c;python等多种语言&#xff0c;目前我们就选用selenium来做UI自动化。 1.selenium安装 安装命令 pip install selenium2.selenium的简单使用 本文以chrome浏览器为例&#xff0c;配套selenium中c…...

时间复杂度和空间复杂度理解

空间复杂度和时间复杂度是算法分析中两个重要的概念&#xff0c;用于评估算法的性能。在前端 JavaScript 中&#xff0c;时间复杂度用于评估算法在最坏情况下的运行时间&#xff1b;空间复杂度描述了算法在执行过程中所需的内存空间的增长率&#xff0c;它包括算法所需的临时空…...

详细解读sedex验厂

SEDEX验厂&#xff0c;即供货商商业道德信息交流认证&#xff08;Supplier Ethical Data Exchange&#xff09;&#xff0c;是一种表明企业遵守商业道德的认证。以下是对SEDEX验厂的详细解读&#xff1a; 一、SEDEX验厂概述 SEDEX是一家总部位于英国伦敦的非营利组织&#xf…...

IOT、MES、WMS、MOM 和 EPMS 系统综合技术与业务文档

IOT、MES、WMS、MOM 和 EPMS 系统综合技术与业务文档 一、引言 在现代制造业和工业管理领域&#xff0c;IOT&#xff08;物联网&#xff09;、MES&#xff08;制造执行系统&#xff09;、WMS&#xff08;仓库管理系统&#xff09;、MOM&#xff08;制造运营管理系统&#xff…...

ESP32S3 使用LVGL驱动LCD屏(ST7789主控)

ESP32S3 使用LVGL驱动LCD屏&#xff08;ST7789主控&#xff09; 目录 1 分析原理图 2 驱动、点亮LCD(ST7789) 2.1 在工程中添加目录、文件 2.2 添加esp_lvgl_port组件 2.3 对工程进行必要的配置 2.4 编写必要代码 3 烧录、验证 1 分析原理图 要使用SOC驱动LCD屏&#…...

Zed调试宏 C语言错误日志 异常错误调试信息

1、C中的错误码 在C语言中通过返回错误码或设置全局的errno值来反馈错误问题。errno.h是一个头文件&#xff0c;它定义了一个全局变量errno&#xff0c;用于在程序中记录和报告错误的原因。这个机制主要用于处理系统调用或标准库函数出错时的错误反馈。当系统调用或库函数…...

GitCode 光引计划征文|JavaVision:引领全能视觉智能识别新纪元

在人工智能技术飞速发展的今天&#xff0c;计算机视觉作为AI领域的重要分支&#xff0c;正逐渐渗透到各行各业中。JavaVision&#xff0c;作为[光引计划]的一部分&#xff0c;致力于提供一个基于Java的全能视觉智能识别解决方案。同时它集成了MilvusPlus&#xff0c;旨在提供一…...

数据分析思维(五):分析方法——假设检验分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python&#xff0c;更重要的是数据分析思维。没有数据分析思维和业务知识&#xff0c;就算拿到一堆数据&#xff0c;也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》&#xff0c;本文内容就是提取…...

《OpenCV计算机视觉》--介绍及基础操作

文章目录 《OpenCV计算机视觉》--介绍及基础操作一.OpenCV介绍二.下载OpenCV三.基础操作1.调用OpenCV2.读取图片信息3.读取图片的灰度图4.视频文件读取5.对图片进行切片6.提取RGB颜色通道7.合并颜色通道8.图片修改图片打码图片组合 9.cv2.resize10.图形运算图像加法运算cv2.add…...

利用Java爬虫获取苏宁易购商品详情

在数字化时代&#xff0c;电商平台的商品信息对于市场分析、价格监控和消费者决策至关重要。苏宁易购作为中国领先的电商平台之一&#xff0c;提供了丰富的商品信息。本文将介绍如何使用Java语言开发爬虫&#xff0c;获取苏宁易购商品的详细信息。 Java爬虫技术简介 Java作为一…...

【CVE-2024-53375】TP-Link Archer系列路由器认证操作系统命令注入(内附远离和代码利用)

CVE-2024-53375 TP-Link Archer系列路由器认证操作系统命令注入 受影响的设备 使用 HomeShield 功能的 TP-Link 设备容易受到此漏洞的影响。这包括 TP-Link Archer 系列的多款路由器。 经过测试 Archer AXE75(EU)_V1_1.2.2 Build 20240827(发布日期 2024 年 11 月 4 日)…...

DP动态规划(装箱问题)

# [NOIP2001 普及组] 装箱问题 ## 题目描述 有一个箱子容量为 $V$&#xff0c;同时有 $n$ 个物品&#xff0c;每个物品有一个体积。 现在从 $n$ 个物品中&#xff0c;任取若干个装入箱内&#xff08;也可以不取&#xff09;&#xff0c;使箱子的剩余空间最小。输出这个最小值。…...

selenium学习笔记(一)

文章目录 前言一、selenium的简介java使用seleniumPython使用selenium常用的浏览器selenium的功能 二、chromeDriver的安装查看本机的chrome版本&#xff1f;匹配对应的chromedriver并下载在服务器上例如Centos如何安装Chrome 三、selenium内容详解chrome启动chrome启动参数元素…...

jest expect().resolves和expect().rejects原理

假设存在如下代码 export default function fetchData(fn) {return Axios.get(http://www.dell-lee.com/react/api/demo.json) } 接口返回的数据为 {"success": true } 那么对于测试代码 test(fetchData, async () > {await expect(fetchData()).resolves.to…...

大语言模型驱动的Agent:定义、工作原理与应用

文章目录 引言什么是大语言模型&#xff1f; Agent的概念LLM Agent的工作原理 Dify平台上的AgentLLM Agent的应用场景挑战与展望结论 引言 随着人工智能&#xff08;AI&#xff09;技术的发展&#xff0c;特别是自然语言处理&#xff08;NLP&#xff09;领域的进步&#xff0c…...

写作词汇积累:纰漏、坎肩、颠三倒四、隔阂

纰漏 【纰漏】是指因粗心而产生的差错、小事故或漏洞 1. 在准备这次会议的过程中&#xff0c;我们反复核对资料&#xff0c;力求不出现任何【纰漏】。2. 在这次重要的项目汇报中&#xff0c;他小心翼翼地检查每一页 PPT&#xff0c;生怕出现任何【纰漏】。3. 尽管她工作一向细…...

一种简易的免杀绕过方法

一种简易的免杀绕过方法 这里我们直接参考师兄的项目https://github.com/snnxyss/In-Swor exe-shellcode-加密-运行 话不多说直接上图 这里我们用geacon作为本次实验 从这里我们可以看到 geacon已经不行了 这里我们将exe转shellcode 生成之后将123.txt放到config目录下 利…...

CTF web解题 [NISACTF 2022]popchains PHP反序列化 pop链

不积跬步无以至千里 不积小流无以成江海 对web方向有了更近一步的了解&#xff0c;根据一道题目来学习PHP反序列化及pop链 [NISACTF 2022]popchains flag&#xff1a;NSSCTF{3096663a-4b18-4567-bdfb-8403f9414704} Happy New Year~ MAKE A WISH <?php echo?Happy?Ne…...

重温设计模式--单例模式

文章目录 单例模式&#xff08;Singleton Pattern&#xff09;概述单例模式的实现方式及代码示例1. 饿汉式单例&#xff08;在程序启动时就创建实例&#xff09;2. 懒汉式单例&#xff08;在第一次使用时才创建实例&#xff09; 单例模式的注意事项应用场景 C代码懒汉模式-经典…...

AI的进阶之路:从机器学习到深度学习的演变(一)

AI的进阶之路&#xff1a;从机器学习到深度学习的演变 在当今科技迅猛发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;和深度学习&#xff08;DL&#xff09;已成为推动创新的核心力量。这三个领域虽然紧密相连&#xff0c;却…...