《网络协议》04. 应用层(DNS DHCP HTTP)
title: 《网络协议》04. 应用层(DNS & DHCP & HTTP)
date: 2022-09-05 14:28:22
updated: 2023-11-12 06:55:52
categories: 学习记录:网络协议
excerpt: 应用层、DNS、DHCP、HTTP(URI & URL,ABNF,报文格式,请求方法,状态码,头部字段,Form 提交,同源策略)。
comments: false
tags:
top_image: /images/backimg/SunsetClimbing.png
网络协议
- 1:网络互连模型
- 1.1:请求过程
- 1.2:网络分层
- 2:应用层
- 3:DNS
- 3.1:域名
- 3.2:DNS 服务器
- 3.3:相关命令
- 4:DHCP
- 4.1:IP 地址分配
- 4.2:补充
- 4.3:相关命令
- 5:HTTP
- 5.1:URN & URI & URL
- 5.2:ABNF
- 5.3:报文格式
- 5.4:请求方法
- 5.5:状态码
- 5.6:头部字段
- 5.6.1:请求头字段
- 5.6.2:响应头字段
- 5.7:Form 提交
- 5.8:同源策略
网络协议从入门到底层原理。
1:网络互连模型
为了更好地促进互联网络的研究和发展,国际标准化组织 ISO 在 1985 年制定了网络互连模型:OSI 参考模型(Open System Interconnect Reference Model)。
- 国际标准:OSI 参考模型(7层)
- 实际应用:TCP/IP 协议(4层)
- 学习研究:(5层)
1.1:请求过程
1.2:网络分层
2:应用层
应用层常见的协议有:
- 超文本传输:HTTP、HTTPS
- 文件传输:FTP
- 电子邮件:SMTP、POP3、IMAP
- 动态主机配置:DHCP
- 域名系统:DNS
3:DNS
DNS,Domain Name System,域名系统。
- 利用 DNS 协议,可以将域名解析成对应的 IP 地址
- DNS 可以基于 UDP 协议,也可以基于 TCP 协议,服务占用 53 端口
3.1:域名
由于 IP 地址不方便记忆,并且不能表达组织的名称和性质,人们设计出了域名(Domain Name)(比如 baidu.com)。
但实际上,为了能够访问到具体的主机,最终还是得知道目标主机的 IP 地址。
域名申请注册:https://wanwang.aliyun.com/
为什么不直接全程用域名,不用 IP 地址?
IP 地址固定 4 个字节,域名随随便便都至少 10 几个字节,这无疑会增加路由器的负担,浪费流量。
根据级别不同,域名可以分为:
- 顶级域名(Top-Level Domain,TLD)
- 二级域名
- 三级域名
- …
通用顶级域名(General Top-level Domain,gTLD):
.com(公司)
.net(网络机构)
.org(组织机构)
.edu(教育)
.gov(政府部门)
.int(国际组织)
......
国家及地区顶级域名(Country Code Top-level Domain,ccTLD)
.cn(中国)
.jp(日本)
.uk(英国)
......
新通用顶级域名(New Generic Top-level Domain,New gTLD)
.vip
.xyz
.top
.club
.shop
......
二级域名是指顶级域名之下的域名。
在通用顶级域名下,它一般指域名注册人的名称。例如 google、baidu、microsoft 等(例:google.com、baidu.com、microsoft.com)
在国家及地区顶级域名下,它一般指注册类别。例如 com、edu、gov、net 等(例:china.com.cn)
3.2:DNS 服务器
- 客户端首先会访问最近的一台 DNS 服务器(也就是客户端自己配置的 DNS 服务器)
- 所有的 DNS 服务器都记录了 DNS 根域名服务器的 IP 地址
- 上级 DNS 服务器记录了下一级 DNS 服务器的 IP 地址
全球一共 13 台 IPv4 的 DNS 根域名服务器、25 台 IPv6 的 DNS 根域名服务器
3.3:相关命令
Windows 下与 DNS 相关的命令。
查看 DNS 缓存记录:
ipconfig /displaydns
清空 DNS 缓存记录:
ipconfig /flushdns
解析 DNS:
nslookup <域名>
ping 会自动解析 DNS:
ping <域名>
4:DHCP
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议。
DHCP 协议基于 UDP 协议,客户端使用 68 端口,服务器使用 67 端口(双方端口都固定)。
DHCP 服务器会从 IP 地址池中,挑选一个 IP 地址 “ 出租 “ 给客户端一段时间,时间到期就回收。
平时家里上网的路由器就可以充当 DHCP 服务器。
4.1:IP 地址分配
IP 地址按照分配方式可以分为:静态 IP 地址、动态 IP 地址。
静态 IP 地址:
- 手动设置
- 适用场景:服务器、不怎么挪动的台式机等
动态 IP 地址:
- 从 DHCP 服务器自动获取 IP 地址
- 适用场景:移动设备、无线设备等
分配 IP 的四个阶段:
- DISCOVER:发现服务器
- 发广播包(源 IP 是
0.0.0.0
,目标 IP 是255.255.255.255
,目标 MAC 是FF:FF:FF:FF:FF:FF
)
- 发广播包(源 IP 是
- OFFER:提供租约
- 服务器返回可以租用的 IP 地址,以及租用期限、子网掩码、网关、DNS 等信息
- 注意:这里可能会有多个服务器提供租约
- REQUEST:选择 IP 地址
- 客户端选择一个 OFFER,发送广播包进行回应
- ACKNOWLEDGE:确认
- 被选中的服务器发送 ACK 数据包给客户端
- 至此,IP 地址分配完毕
图示:
4.2:补充
DHCP 服务器可以跨网段分配 IP 地址吗?(DHCP 服务器、客户端不在同一个网段)
- 可以借助 DHCP 中继代理(DHCP Relay Agent)实现跨网段分配 IP 地址
自动续约:
- 客户端会在租期不足的时候,自动向 DHCP 服务器发送 REQUEST 信息申请续约。
4.3:相关命令
Windows 下相关的命令。
查看 DHCP 相关的详细信息,比如租约过期时间、DHCP 服务器地址等:
ipconfig /all
释放租约:
ipconfig /release
重新申请 IP 地址、申请续约(延长租期):
ipconfig /renew
5:HTTP
HTTP(Hyper Text Transfer Protocol),超文本传输协议。
- 互联网中应用最广泛的应用层协议之一
- 设计 HTTP 最初的目的:提供一种发布和接收 HTML 页面的方法,由 URI 来标识具体的资源
- 发展至今 HTTP 传递的数据格式不仅仅是 HTML,应用非常广泛
HTML( Hyper Text Markup Language),超文本标记语言。用以编写网页
HTTP 版本:
- 1991 年,HTTP/0.9
- 只支持 GET 请求方法获取文本数据
- 不支持请求头、响应头等
- 1996 年,HTTP/1.0
- 支持 POST、HEAD 等请求方法
- 支持请求头、响应头等
- 支持更多种数据类型,不再局限于文本数据
- 每次请求都需要与服务器建立一个 TCP 连接,请求处理完成后立即断开 TCP 连接
- 1997 年,HTTP/1.1
- 最经典、使用最广泛的版本
- 支持 PUT、DELETE 等请求方法
- 采用持久连接(Connection: keep-alive),多个请求可以共用同一个 TCP 连接
- 2015 年,HTTP/2.0
- 2018 年,HTTP/3.0
HTTP 的标准:
由万维网协会(W3C)、互联网工程任务组(IETF)协调制定,最终发布一系列的 RFC(Request For Comments,请求意见稿)
RFC 官网:
https://www.rfc-editor.org
报文格式图示:
5.1:URN & URI & URL
URN
(Universal Resource Name,统一资源名称)
URL
(Uniform Resource Locator,统一资源定位符)
URI
(Uniform Resource Identifier,统一资源标识符)
URL 给出资源位于哪里(哪台主机、哪个路径、哪个文件夹)
URl 给出具体某资源的定位路径(从资源自身出发,给出可达的路径)
# URI 语法规则:
scheme://user:pass@host.domain:port/path/filename?id=1#ch1# URL 语法规则:
scheme://host.domain:port/path/filename# 解释:
scheme 定义因特网服务的类型。最常见的类型是 http
user:pass 认证登录信息
host 定义域主机(http 的默认主机是 www)
domain 定义因特网域名,比如 baidu.com
port 定义主机上的端口号(http 的默认端口号是 80)
path 定义服务器上的路径(如果省略,则文档必须位于网站的根目录中)
filename 定义文档/资源的名称
id=1 查询字符串
ch1 片段标识
URL 属于 URI。
URL 编码:URL 中出现的一些特殊字符(比如中文、空格),需要进行 URL 编码。
在浏览器地址栏输入 URL 时,采用 UTF-8 进行编码。
URL 在线编解码:
https://tool.oschina.net/encode?type=4
比如:
编码前:https://www.baidu.com/s?wd=百度
编码后:https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6
5.2:ABNF
ABNF(Augmented BNF)
- 是 BNF(Backus-Naur Form,巴科斯 - 瑙尔范式)的修改、增强版
- 在 RFC 5234 中表明:ABNF 用作 internet 中通信协议的定义语言
- ABNF 是最严谨的 HTTP 报文格式描述形式,脱离 ABNF 谈论 HTTP 报文格式,往往都是不严谨的
核心规则:
5.3:报文格式
- 整体格式:
标记 | 解释 |
---|---|
/ | 任选一个 |
* | 0 个或多个。2 * 表示至少 2 个,3 * 6 表示 3 到 6 个 |
() | 组成一个整体 |
[] | 可选(可有可无) |
- request-line 格式:
- status-line 格式:
- header-filed 格式:
- message-body 格式:
- 关于 HTTP 报文格式的定义:
RFC 2616 4.HTTP Message(旧)
RFC 7230 3.Message Format(新)
5.4:请求方法
目前有 9 种请求方法。
RFC 7231, section 4: Request methods:描述了 8 种请求方法:
GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE
RFC 5789, section 2: Patch method:描述了 PATCH 方法
GET
:
常用于读取的操作,请求参数直接拼接在URL的后面(浏览器对URL是有长度限制的)POST
:
常用于添加、修改、删除的操作,请求参数可以放到请求体中(没有大小限制)HEAD
:
请求得到与GET请求相同的响应,但没有响应体OPTIONS
:
用于获取目的资源所支持的通信选项,比如服务器支持的请求方法PUT
:
用于对已存在的资源进行整体覆盖PATCH
:
用于对资源进行部分修改(资源不存在,会创建新的资源)DELETE
:
用于删除指定的资源TRACE
:
请求服务器回显其收到的请求信息,主要用于HTTP请求的测试或诊断CONNECT
:
可以开启一个客户端与所请求资源之间的双向沟通的通道,它可以用来创建隧道(tunnel)
5.5:状态码
状态码(Status Code)。指示 HTTP 请求完成状态。
在 RFC 2616 10.Status Code Definitions 规范中定义。
状态码可以分为 5 类:
1XX
:信息响应2XX
:成功响应3XX
:重定向4XX
:客户端错误5XX
:服务器错误
常见状态码:
100 Continue
:
请求的初始部分已经被服务器收到,并且没有被服务器拒绝。客户端应该继续发送剩余的请求。如果请求已经完成,就忽略这个响应。- 允许客户端发送带请求体的请求前,判断服务器是否愿意接收请求
- 在某些情况下,如果服务器在不看请求体就拒绝请求时,客户端就发送请求体是不恰当的或低效的
200 OK
:
请求成功。302 Found
:
请求的资源被暂时的移动到了由 Location 头部指定的 URL 上。304 Not Modified
:
说明无需再次传输请求的内容,也就是说可以使用缓存的内容。400 Bad Request
:
由于语法无效,服务器无法理解该请求。401 Unauthorized
:
缺乏目标资源要求的身份验证凭证。403 Forbidden
:
服务器端有能力处理该请求,但是拒绝授权访问。404 Not Found
:
服务器端无法找到所请求的资源。405 Method Not Allowed
:
服务器禁止了使用当前 HTTP 方法的请求。406 Not Acceptable
:
服务器端无法提供与 Accept-Charset 以及 Accept-Language 指定的值相匹配的响应。408 Request Timeout
:
服务器想要将没有在使用的连接关闭。- 一些服务器会在空闲连接上发送此信息,即便是在客户端没有发送任何请求的情况下
500 Internal Server Error
:
所请求的服务器遇到意外的情况并阻止其执行请求。501 Not Implemented
:
请求的方法不被服务器支持,因此无法被处理。- 服务器必须支持的方法(即不会返回这个状态码的方法)只有 GET 和 HEAD
502 Bad Gateway
:
作为网关或代理角色的服务器,从上游服务器(如tomcat)中接收到的响应是无效的。503 Service Unavailable
:
服务器尚未处于可以接受请求的状态。- 通常造成这种情况的原因是由于服务器停机维护或者已超载
5.6:头部字段
头部字段(Header Field)可以分为 4 种类型:
- 请求头字段(Request Header Fields)
有关要获取的资源或客户端本身信息的消息头 - 响应头字段(Response Header Fields)
有关响应的补充信息,比如服务器本身(名称和版本等)的消息头 - 实体头字段(Entity Header Fields)
有关实体主体的更多信息,比如主体长度(Content-Length)或其 MIME 类型 - 通用头字段(General Header Fields)
同时适用于请求和响应消息,但与消息主体无关的消息头
5.6.1:请求头字段
====================================================================
头字段名 说明
====================================================================
User-Agent 浏览器的身份标识字符串。
--------------------------------------------------------------------
Host 服务器域名、端口号。
--------------------------------------------------------------------
Date 发送该消息的日期和时间。
--------------------------------------------------------------------
Referer 表示浏览器访问的前一个页面,正是那个页面上的某个链接将浏览器带到了当前所请求的这个页面。
--------------------------------------------------------------------
Content-Type 请求体的类型
--------------------------------------------------------------------
Content-Length 请求体的长度(字节为单位)
--------------------------------------------------------------------
Accept 能够接受的响应内容类型
--------------------------------------------------------------------
Accept-Charset 能够接受的字符集q 的值越大,优先级越高默认为 1.0 (最大值)
--------------------------------------------------------------------
Accept-Encoding 能够接受的编码方式列表
--------------------------------------------------------------------
Accept-Language 能够接受的响应内容的自然语言列表
--------------------------------------------------------------------
Range 仅请求某个实体的一部分。字节偏移以 0 开始
--------------------------------------------------------------------
Origin 发起一个针对跨域资源共享的请求
--------------------------------------------------------------------
Cookie 之前由服务器通过 Set-Cookie 发送的 Cookie
--------------------------------------------------------------------
Connection 该浏览器想要优先使用的连接类型
--------------------------------------------------------------------
Cache-Control 用来指定在这次请求/响应链中的所有缓存机制都必须遵守的指令
====================================================================
5.6.2:响应头字段
====================================================================
头字段名 说明
====================================================================
Date 发送该消息的日期和时间
--------------------------------------------------------------------
Last-Modified 所请求的对象的最后修改日期
--------------------------------------------------------------------
Server 服务器的名称
--------------------------------------------------------------------
Expires 指定一个时间,超过该时间则认为此响应已过期
--------------------------------------------------------------------
Content-Type 响应体的类型
--------------------------------------------------------------------
Content-Encoding 内容所使用的编码类型
--------------------------------------------------------------------
Content-Length 响应体的长度(字节为单位)
--------------------------------------------------------------------
Content-Disposition 一个可以让客户端下载文件并建议文件名的头部
--------------------------------------------------------------------
Accept-Ranges 服务器支持哪些种类的部分内容范围
--------------------------------------------------------------------
Content-Range 这条部分消息是属于完整消息的哪部分
--------------------------------------------------------------------
Access-Control-Allow-Origin 指定哪些网站可以参与到跨域资源共享
--------------------------------------------------------------------
Location 进行重定向,或者在创建了某个新资源时使用
--------------------------------------------------------------------
Set-Cookie 返回一个 Cookie 让客户端保存
--------------------------------------------------------------------
Connection 针对该连接所预期的选项
--------------------------------------------------------------------
Cache-Control 向从服务器到客户端在内的所有缓存机制告知,它们是否可以缓存这个对象。(单位为秒)
====================================================================
5.7:Form 提交
常用属性:
- action:请求的 URI
- method:请求方法(GET、POST)
- enctype:POST 请求时,请求体的编码方式
application/x-www-form-urlencoded
(默认值)
用【&】分隔参数,用【=】分隔键和值,字符用 URL 编码方式进行编码multipart/form-data
文件上传时必须使用这种编码方式
multipart/form-data
:参考 RFC 1521
5.8:同源策略
浏览器有个同源策略(Same-Origin Policy)。它规定默认情况下,AJAX 请求只能发给同源的 URL。
同源是指 3 个相同:协议、域名(IP)、端口。
img、script、link、iframe、video、audio 等标签不受同源策略的约束。
CORS(Cross-Origin Resource Sharing,跨域资源共享),解决 AJAX 跨域请求的常用方法。
CORS 的实现需要客户端和服务器同时支持。
- 客户端:基本所有的浏览器都支持
- 服务器:需要返回相应的响应头(比如 Access-Control-Allow-Origin),告知浏览器这是一个允许跨域的请求
清浊易辨,邪正难辨。
——《冰鉴》(清)曾国藩
相关文章:

《网络协议》04. 应用层(DNS DHCP HTTP)
title: 《网络协议》04. 应用层(DNS & DHCP & HTTP) date: 2022-09-05 14:28:22 updated: 2023-11-12 06:55:52 categories: 学习记录:网络协议 excerpt: 应用层、DNS、DHCP、HTTP(URI & URL,ABNF…...
springboot自己添加的配置文件没有绿色叶子问题
在IntelliJ IDEA中,不同文件类型通常会有不同的图标,以便更容易识别它们。如果您的自己添加的 .properties 文件和项目中自动生成的 .properties 文件显示不同的图标,这可能是因为它们被识别为不同的文件类型。 通常情况下,Intel…...

【Java】定时任务 - Timer/TimerTask 源码原理解析
一、背景及使用 日常实现各种服务端系统时,我们一定会有一些定时任务的需求。比如会议提前半小时自动提醒,异步任务定时/周期执行等。那么如何去实现这样的一个定时任务系统呢? Java JDK提供的Timer类就是一个很好的工具,通过简单…...

SAP ABAP基础语法-Excel上传(十)
EXCEL BDS模板上传及赋值 上传模板事务代码:OAER l 功能代码:向EXCEL模板中写入数据示例代码如下 REPORT ZEXCEL_DOI. “doi type pools TYPE-POOLS: soi. *SAP Desktop Office Integration Interfaces DATA: container TYPE REF TO cl_gui_custom_c…...

记录一次某某虚拟机的逆向
导语 学了一段时间的XPosed,发现XPosed真的好强,只要技术强,什么操作都能实现... 这次主要记录一下我对这款应用的逆向思路 apk检查 使用MT管理器检查apk的加壳情况 发现是某数字的免费版本 直接使用frida-dexdump 脱下来后备用 应用分…...

upload-labs关卡7(基于黑名单的空格绕过)通关思路
文章目录 前言一、回顾上一关知识点二、靶场第七关通关思路1、看源代码2、空格绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试…...

CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。
CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。 概述 时空函数是一种用于描述时空结构和演化的函数。它在物理学、数学和计算机科学等领域中都有广泛的应用。时空函数可以描述物体在时空中的位置、速度、加速度以及其他相关属性。 用法 CnosDB 将使用一种全新的…...

python实现炒股自动化,个人账户无门槛量化交易的开始
本篇作为系列教程的引子,对股票量化程序化自动交易感兴趣的朋友可以关注我,现在只是个粗略计划,后续会根据需要重新调整,并陆续添加内容。 股票量化程序化自动交易接口 很多人在找股票个人账户实现程序化自动交易的接口࿰…...

推荐系统笔记--Swing模型的原理
1--Swing模型的引入 在 Item CF 召回中,物品的相似度是基于其受众的交集来衡量的,但当受众的交集局限在一个小圈子时,就会误将两个不相似的物品定义为相似; Swing 模型引入用户的重合度来判断两个用户是否属于一个小圈子ÿ…...

联想小新Pro14默认设置的问题
联想小新Pro14 锐龙版,Win11真的挺多不习惯的,默认配置都不符合一般使用习惯。 1、默认人走过自动开机。人机互动太强了; 2、默认短超时息屏但不锁屏,这体验很容易觉得卡机然后唤起,却又不用密码打开; 3…...
【洛谷 P5019】[NOIP2018 提高组] 铺设道路 题解(分治算法+双指针)
[NOIP2018 提高组] 铺设道路 题目背景 NOIP2018 提高组 D1T1 题目描述 春春是一名道路工程师,负责铺设一条长度为 n n n 的道路。 铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n n n 块首尾相连的区域,一开始,第 i i i …...

牛客刷题记录11.12
继承和组合 二进制数统计 1的个数 和 0 的个数...
NextJS开发:使用IconPark、Lucide图标库
IconPark、Lucide两个很不错的图标库,如果需要用到微信、阿里等国内logo可以使用IconPark,Lucide中没有包含这些内容。 安装IconPark npm install icon-park/react --save简单使用 import {Home} from icon-park/react;<Home/> <Home theme&…...

11.12总结
这一周主要写了个人中心的几个功能,资料修改,收货地址的创建和修改删除,还有主页界面和商品界面...

Gogs安装和部署教程-centos上
0、什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windo…...

Unity中Shader雾效的实现方法一
文章目录 前言一、在片元着色器中使用如下公式计算最终的颜色 lerp(雾效颜色,物体颜色,雾效混合因子)1、获取雾效颜色2、物体的颜色一般通过纹理采样得到,此处用 1 代替测试3、获取 雾效混合因子(由 雾的距离 和 雾的浓度决定&am…...

Mac安装配置Tomcat,以及使用(详解)
目录 一、Tomcat下载: 1、左栏选择Tomcat版本 2、点击下载即可,任选其一 编辑3、下载好的文件夹放到用户名下即可(之前已经下载过,这里以Tomcat 8.5.88为演示),这里提供8.5.88的安装包: 二…...

Smart Link 和 Monitor Link应用
定义 Smart Link常用于双上行链路组网,提高接入的可靠性。 Monitor Link通过监视上行接口,使下行接口同步上行接口状态,起到传递故障信息的作用。 Smart Link,又叫做备份链路。一个Smart Link由两个接口组成,其中一个…...

【debug】解决Kali虚拟机开机黑屏,左上角光标一直闪动无法开机问题
做网络攻防实验时,突然Kali无法打开,遇到这个问题。。。。。。 遇到的问题 突然kali虚拟机变成如下黑屏,无法开机,左上角光标闪动,重启无效。 解决办法 在上图界面,按Ctrl F3(不同电脑快捷键…...
目标检测YOLO实战应用案例100讲-基于改进YOLO算法的道路交通目标检测(续)
目录 3.3 实验结果与分析 3.3.1 实验数据集 3.3.2 算法的评价指标 3.3.3 损失函数实验结果...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...