一些有用的知识😶‍🌫️

一些有用的知识😶‍🌫️

DNS记录类型

类型 说明 详解
A(Address) 域 —–> IPv4地址 1、最常用的DNS记录类型
2、用于将FQDN(完全限定域名)映射到IPv4地址
CNAME 子域(可以是多个子域)—–> 目标域 1、通过将一个主名称别名为另一个来简化域管理
TXT(Text) | 域 |记录| 值 |
|example| txt |value|
1、允许DNS管理员添加有限的人类和机器可读注释
2、用于验证记录,如用于电子邮件安全的SPF
AAAA 域 —–> IPv6地址 1、将域名映射到IPv6地址
2、用于支持IPv6的网站
SRV | 服务 | 协议 | 名称 | 端口 |
|XMPP| TCP |example.com| 5220 |
1、SRV记录为特定服务(如VoIP)执行主机和端口
2、与A记录结合使用
PTR Receiver –(who owns: 203.0.113.277)–>DNS
Receiver <–(mail.example.com)– DNS
1、提供反向DNS查找,将IP地址映射到域名
NS(Name Server) www –> DNS解析 –> 根服务器(DNS)
–> TLD服务器(DNS)
–> 权威服务器(DNS)
1、指定域的权威DNS服务器
2、帮助直接查询正确的DNS服务器
MX(Mail) MX 记录 ——> 一条记录(DNS) 1、MX Record将电子邮件流量引导到正确的邮件服务器
2、与A记录结合使用

中兴F50改散热

改紫铜散热PDD链接

测速软件推荐使用APP全球网测,测试网实际体验不好ㄟ( ▔, ▔ )ㄏ

按照商家的视频步骤进行安装,这里主要是记录一些注意事项😁

  • 天线板是拧螺丝后拆下来板,有一些明显的触点;在改好散热测速的时候,要装上天线板,不然就会没有5G信号ψ(._. )>。还有最后装好正常使用的时候拧螺丝不要太紧,锁太紧会导致触点折弯太多信号变差,速度也不快(遇到的坑)
  • 提速设置
    • 设置外网连接 -> 找网模式 -> 改成5g SA
    • 锁小区:高级设置 -> 其他 -> 网络调试;等待一两分钟搜索出附近的基站,在锁小区中选择5G,填入PCI和EARFCN,尽量选择不超过-110的基站,每次锁新的基站都需要先解锁之前已经锁的基站;PCI实际就是账户名,EARFCN就是密码。可以尝试多锁几个找到速度快的
    • 锁频段:移动/广电 锁41频段、联通/电信锁78频段;同样适用于锁小区

常用端口

端口号 协议/服务 说明
80 HTTP 用于网页浏览的超文本传输协议,是最常见的端口之一。
443 HTTPS 支持加密传输的安全 HTTP 协议,保护敏感数据免遭窃取。
22 SSH 用于安全远程登录和文件传输,常用它来管理服务器。
21 FTP 文件传输协议端口,虽然常用,但逐渐被 SFTP(使用 22 端口)取代。
25 SMTP 用于电子邮件发送,因易被滥用,许多服务商限制了它的使用。
3306 MySQL 数据库服务的默认端口。
53 DNS 域名解析服务端口,用于将域名转换为 IP 地址。
3389 RDP 远程桌面协议端口,用于远程访问 Windows 系统。
8080 HTTP 备用端口 常用于测试环境或开发人员运行的服务。
6379 Redis 高性能 NoSQL 数据库 Redis 的默认端口。

一图看懂conda与其扩展

一图看懂conda

  • Anaconda Distribution: 是Anaconda公司发布的软件包集合,包含常用的软件包和包管理工具conda。
  • miniconda: 也是Anaconda公司发布的,只包含conda本身。
  • defaults: conda会从托管anaconda.org上的defaults channel下载数据,由Anaconda公司维护,保证了很高的兼容性,但是是商业版,需要收费。
  • conda-forge: 是社区维护,兼容性差了一些,但是包的数量非常多,更新速度快,免费。
  • miniforge: 开源社区重新打包conda,并且默认channel修改成免费的conda-forge。
  • mamba: miniforge内置的一个用C++写的高速版conda,与conda功能基本相同。

钩子(Hook)

钩子(Hook) 理解成:“一个可以挂东西的地方”。本质上是一种预留的扩展点,允许开发者在某个系统流程中“挂载”自己的逻辑,从而改变或增强原有行为。

钩子是一种机制,允许你在程序的某个生命周期阶段插入自定义代码,而不需要修改原始代码结构。它像是一个“挂钩点”,你可以把自己的函数挂上去,等系统执行到这个点时就会调用你的逻辑。

流程是固定的,但你可以插入自己的动作

如何理解钩子的作用

  • 你可以把钩子想象成:

    • 插座:系统提供了插口,你可以插入自己的“电器”(逻辑)。
    • 观察者:你监听某个事件,一旦触发就执行你的代码。
    • 中间件:你在主流程中插入一段“中转站”,可以修改输入、输出或行为。

钩子、回调、插件

概念 区别
钩子 系统预留的扩展点,通常由框架定义
回调函数 被动调用的函数,作为参数传入
插件 更完整的功能模块,可能包含多个钩子或配置

VARCHAR(100)VARCHAR(10)的区别

相同内容存储时占用的空间一样(都是变长存储,不会因为定义了 100 就占 100),但在排序、内存分配、索引效率等方面,VARCHAR(100)VARCHAR(10)更吃亏

  • 存储空间

    • VARCHAR(n) 中的 n 指的是允许存放的最大字符数(注意是字符,不是字节,utf8 一个字符可能占 3 个字节)。

    • 实际占用空间 = 实际字符数 + 1~2 个字节(长度信息)

    • 例:存 "leshm"(5 个字符),在 VARCHAR(10)VARCHAR(100) 中占用空间完全一样。

  • 查询和排序:MySQL 在 排序(ORDER BY) 时,确实会考虑字段的最大可能长度

    • 原因
      • 排序需要把待排序的列值放入 sort_buffer(排序缓冲区)。
      • 如果定义的是 VARCHAR(100),MySQL 会按 最多 100 个字符 来评估内存使用情况。/
      • 列越长,每行可能需要的内存越多,缓冲区更容易不足 → 溢出到磁盘排序(filesort),性能下降。
    • 影响点
      1. 如果是小字段(VARCHAR(10)),在内存中排序的概率更大,效率更高。
      2. 如果是大字段(VARCHAR(100) 或更长),更容易触发磁盘排序。
  • MySQL 的排序方式

    • 索引排序

      • 如果 ORDER BY 使用了索引(顺序一致),直接利用索引,不需要额外排序。
    • filesort 文件排序

      • ORDER BY 无法用索引时,会进入文件排序。
      • 文件排序的策略和字段长度有直接关系:
        • max_length_for_sort_data(默认 4096 字节)是一个关键参数。
        • 如果 SELECT 的字段总长度 <= 该值 → MySQL 会把排序字段和返回列都放进 sort_buffer(单路排序,快)。
        • 如果 超过该值 → MySQL 只放主键 ID 和排序字段进 sort_buffer,再回表取数据(二路排序,慢)。

总结:字段定义越大,排序风险越高,不管实际存了多少值,他可能会按最坏情况来分配内存

SSE(Server-Sent Events)流式返回

一般情况下,使用HTTP访问一个网站的时候,浏览器会发送给目标服务器一个请求,目标服务器会返回对应的结果,一去一回一次交互就完成了。这样的方式有一个缺陷,无法处理服务器连续返回多次想要的情况。

而SSE的特点就是浏览器只需要请求一次,服务器接收到请求之后会连续发送多次响应,每次响应的内容都是几个字,而浏览器接收到几个字就显示几个字,等到所有的结果都显示完毕之后,服务器会发送一个完成的标识,浏览器接收到完成表示后就会关闭SSE连接。

HTTP 响应状态码速查表

类别 状态码 名称 描述
信息响应 100 Continue 这个临时响应表明,客户端应当继续其请求或者如果请求已经完成则忽略这个响应。
信息响应 101 Switching Protocols 该代码是响应客户端的 Upgrade 请求头发送的,指明服务器正在切换协议。
信息响应 102 Processing (WebDAV) 此代码表示服务器已收到并正在处理该请求,但当前没有响应可用。
信息响应 103 Early Hints 此状态码主要用于与 Link 链接头一起使用,让用户代理在服务器仍在准备响应时开始预加载资源。
成功响应 200 OK 请求成功。成功的含义取决于 HTTP 方法:* GET: 资源已被提取并在消息正文中传输。* HEAD: 实体头已包含在响应中但没有消息正文。* PUTPOST: 描述动作结果的资源已在消息正文中传输。* TRACE: 消息正文包含服务器收到的请求消息。
成功响应 201 Created 请求已经成功,并因此创建了一个新的资源。这通常是 POST 请求或一些 PUT 请求之后发送的响应。
成功响应 202 Accepted 请求已接收到,但还未响应,也无法保证最终完成请求。它旨在用于其他进程或服务器处理请求,或用于批处理。
成功响应 203 Non-Authoritative Information 此响应码表示返回的元信息与原始服务器上的可用元信息不完全相同,而是从本地或第三方副本收集的。除了这个特定情况外,200 OK 响应比此状态更可取。
成功响应 204 No Content 对于此请求,没有要发送的内容,但头部可能有用。用户代理可能会使用新的头部更新此资源的缓存头部。
成功响应 205 Reset Content 告诉用户代理重置发送此请求的文档。
成功响应 206 Partial Content 当客户端发送 Range 头以请求资源的一部分时,将使用此响应代码。
成功响应 207 Multi-Status (WebDAV) 对于可能需要多个状态代码的情况,传达关于多个资源的信息。
成功响应 208 Already Reported (WebDAV) <dav:propstat> 响应元素内部使用,以避免重复枚举同一集合的多个绑定的内部成员。
成功响应 226 IM Used (HTTP Delta encoding) 服务器已完成对资源的 GET 请求,并且响应是应用于当前实例的一个或多个实例操作结果的表示。
重定向消息 300 Multiple Choices 请求有多个可能的响应。用户代理或用户应选择其中之一。没有标准化的方法来选择其中一个响应。
重定向消息 301 Moved Permanently 请求资源的 URL 已被永久更改。新的 URL 在响应中给出。
重定向消息 302 Found 此响应代码表示请求资源的 URI 已被暂时更改。未来可能会对 URI 进行进一步的更改。因此,客户端应在将来的请求中使用相同的 URI。
重定向消息 303 See Other 服务器发送此响应以指示客户端使用 GET 请求在另一个 URI 获取请求的资源。
重定向消息 304 Not Modified 这用于缓存目的。它告诉客户端响应没有被修改,因此客户端可以继续使用相同缓存版本的响应。
重定向消息 307 Temporary Redirect 服务器发送此响应以指示客户端使用与先前请求相同的方法在另一个 URI 获取请求的资源。这与 302 Found HTTP 响应代码具有相同的语义,但用户代理不得更改使用的 HTTP 方法。
重定向消息 308 Permanent Redirect 这意味着资源现在永久位于由 Location: HTTP 响应头指定的另一个 URI。这与 301 Moved Permanently HTTP 响应代码具有相同的语义,但用户代理不得更改使用的 HTTP 方法。
客户端错误响应 400 Bad Request 由于被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性的请求路由),服务器无法或不会处理该请求。
客户端错误响应 401 Unauthorized 虽然 HTTP 标准指定了 “unauthorized”,但从语义上讲,此响应意味着 “unauthenticated”。也就是说,客户端必须对自己进行身份验证才能获得所请求的响应。
客户端错误响应 402 Payment Required 此响应代码保留供将来使用。创建此代码的最初目的是为了用于数字支付系统,但此状态代码很少使用,并且不存在标准约定。
客户端错误响应 403 Forbidden 客户端没有访问内容的权限;也就是说,它是未经授权的,因此服务器拒绝提供所请求的资源。与 401 Unauthorized 不同,客户端的身份是服务器已知的。
客户端错误响应 404 Not Found 服务器找不到请求的资源。在浏览器中,这意味着无法识别 URL。在 API 中,这也可能意味着端点有效,但资源本身不存在。服务器也可以发送此响应而不是 403 Forbidden,以向未经授权的客户端隐藏资源的存在。
客户端错误响应 405 Method Not Allowed 服务器知道请求方法,但目标资源不支持该方法。
客户端错误响应 406 Not Acceptable 在执行服务器驱动的内容协商后,当 Web 服务器找不到任何符合用户代理给出的标准的内容时,会发送此响应。
客户端错误响应 407 Proxy Authentication Required 这类似于 401 Unauthorized,但身份验证需要由代理完成。
客户端错误响应 408 Request Timeout 此响应由某些服务器在空闲连接上发送,即使客户端之前没有任何请求。这意味着服务器想要关闭这个未使用的连接。
客户端错误响应 409 Conflict 当请求与服务器的当前状态冲突时,会发送此响应。
客户端错误响应 410 Gone 当请求的内容已从服务器永久删除且没有转发地址时,会发送此响应。
客户端错误响应 411 Length Required 服务器拒绝了该请求,因为 Content-Length 头字段未定义且服务器需要它。
客户端错误响应 412 Precondition Failed 客户端在其头部中指明了服务器不满足的前提条件。
客户端错误响应 413 Content Too Large 请求实体大于服务器定义的限制。
客户端错误响应 414 URI Too Long 客户端请求的 URI 比服务器愿意解释的要长。
客户端错误响应 415 Unsupported Media Type 服务器不支持请求数据的媒体格式,因此服务器拒绝该请求。
客户端错误响应 416 Range Not Satisfiable 请求中 Range 头字段指定的范围无法满足。
客户端错误响应 417 Expectation Failed 此响应代码意味着服务器无法满足 Expect 请求头字段所指示的期望。
客户端错误响应 418 I'm a teapot 服务器拒绝用茶壶冲泡咖啡的尝试。
客户端错误响应 421 Misdirected Request 请求被定向到无法产生响应的服务器。
客户端错误响应 422 Unprocessable Content (WebDAV) 请求格式正确,但由于语义错误而无法遵循。
客户端错误响应 423 Locked (WebDAV) 正在访问的资源被锁定。
客户端错误响应 424 Failed Dependency (WebDAV) 由于先前请求的失败,请求失败。
客户端错误响应 425 Too Early 表示服务器不愿意冒险处理可能被重播的请求。
客户端错误响应 426 Upgrade Required 服务器拒绝使用当前协议执行请求,但在客户端升级到不同协议后可能愿意这样做。
客户端错误响应 428 Precondition Required 源服务器要求请求是有条件的。
客户端错误响应 429 Too Many Requests 用户在给定的时间内发送了太多的请求(“速率限制”)。
客户端错误响应 431 Request Header Fields Too Large 服务器不愿意处理该请求,因为其头字段太大。
客户端错误响应 451 Unavailable For Legal Reasons 用户代理请求了无法合法提供的资源,例如由政府审查的网页。
服务器错误响应 500 Internal Server Error 服务器遇到了不知道如何处理的情况。
服务器错误响应 501 Not Implemented 服务器不支持该请求方法,也无法处理。服务器必须支持的唯一方法(因此不得返回此代码)是 GETHEAD
服务器错误响应 502 Bad Gateway 此错误响应意味着服务器作为网关或代理,从上游服务器收到了无效的响应。
服务器错误响应 503 Service Unavailable 服务器尚未准备好处理请求。常见原因是服务器因维护或过载而停机。
服务器错误响应 504 Gateway Timeout 当服务器充当网关且无法及时获得响应时,会给出此错误响应。
服务器错误响应 505 HTTP Version Not Supported 请求中使用的 HTTP 版本不受服务器支持。
服务器错误响应 506 Variant Also Negotiates 服务器存在内部配置错误:所选的变体资源被配置为参与透明内容协商,因此在协商过程中不是一个合适的端点。
服务器错误响应 507 Insufficient Storage (WebDAV) 无法在资源上执行该方法,因为服务器无法存储成功完成请求所需的表示。
服务器错误响应 508 Loop Detected (WebDAV) 服务器在处理请求时检测到无限循环。
服务器错误响应 510 Not Extended 服务器需要对请求进行进一步扩展才能完成它。
服务器错误响应 511 Network Authentication Required 表示客户端需要进行身份验证才能获得网络访问权限。