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

HTTP协议核心概念全解析 - 实践

目录

HTTP协议基础概念

HTTP请求方法详解

HTTP报文结构

HTTP与HTTPS的区别

HTTP协议

HTTPS协议

HTTP/2的主要特性

1. 二进制分帧传输

2. 多路复用

3. 头部压缩(HPACK算法)

4. 服务器推送

HTTP协议核心概念详解

常见头部字段

请求头字段

响应头字段

缓存机制详解

强缓存机制

协商缓存机制

Cookie与Session机制

Cookie技术细节

Session技术细节

RESTful API设计规范

核心原则

最佳实践

Web安全防护

CSRF(跨站请求伪造)防御

XSS(跨站脚本攻击)防御

中间人攻击防护


HTTP协议基础概念

HTTP(HyperText Transfer Protocol)是一种用于传输超文本的应用层协议,基于客户端-服务器模型工作。默认端口为80(HTTPS为443),采用请求-响应模式。

HTTP请求方法详解

  1. GET

    • 用于请求指定资源,是最常用的请求方法
    • 参数通过URL的查询字符串(query string)传递,如:/user?id=123
    • 特点:安全(不修改数据)、幂等、可缓存
    • 示例场景:获取文章详情、搜索商品等
  2. POST

    • 用于向服务器提交数据
    • 数据包含在请求体(body)中,支持多种格式(JSON、XML、表单等)
    • 特点:非幂等、通常会导致服务器状态改变
    • 示例场景:用户注册、提交表单、上传文件等
  3. PUT

    • 用于完整替换目标资源的所有内容
    • 需要提供完整的资源表示
    • 特点:幂等(多次调用效果相同)
    • 示例场景:更新用户全部信息
  4. DELETE

    • 用于删除指定资源
    • 特点:幂等
    • 示例场景:删除文章、移除购物车商品
  5. HEAD

    • 类似于GET,但服务器只返回响应头
    • 常用于检查资源是否存在或获取资源元数据
    • 示例场景:检查文件是否修改(通过Last-Modified头)
  6. OPTIONS

    • 用于获取目标资源支持的请求方法
    • CORS(跨域资源共享)中常用
    • 示例场景:预检请求(preflight request)

HTTP状态码分类详解

1xx 信息性状态码

表示请求已被接收,需要继续处理

  • 100 Continue:客户端应继续发送请求体
  • 101 Switching Protocols:服务器同意切换协议

2xx 成功状态码

表示请求已成功被服务器接收、理解并接受

  • 200 OK:标准成功响应
  • 201 Created:资源创建成功(通常用于POST)
  • 204 No Content:成功但无返回内容(常用于DELETE)

3xx 重定向状态码

表示需要客户端采取进一步操作

  • 301 Moved Permanently:永久重定向
  • 302 Found:临时重定向
  • 304 Not Modified:资源未修改(缓存相关)

4xx 客户端错误

表示客户端请求有问题

  • 400 Bad Request:请求语法错误
  • 401 Unauthorized:需要认证
  • 403 Forbidden:服务器拒绝请求
  • 404 Not Found:资源不存在
  • 429 Too Many Requests:请求过于频繁

5xx 服务器错误

表示服务器处理请求出错

  • 500 Internal Server Error:通用服务器错误
  • 502 Bad Gateway:网关或代理服务器收到无效响应
  • 503 Service Unavailable:服务器暂时过载或维护
  • 504 Gateway Timeout:网关超时

HTTP报文结构

请求报文示例:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0

响应报文示例:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
...

HTTP与HTTPS的区别

HTTP协议

  • 数据传输方式:明文传输,不进行任何加密处理,请求和响应内容可被第三方轻易截获和查看
  • 安全性:无加密机制,存在数据泄露、中间人攻击等安全风险
  • 端口号:默认使用80端口
  • 典型场景:适用于不涉及敏感信息的简单网页浏览,如新闻网站、博客等

HTTPS协议

  • 数据传输方式:通过SSL/TLS协议进行加密传输,保护数据完整性
  • 安全性
    • 提供端到端加密,防止数据在传输过程中被窃取或篡改
    • 支持身份验证,确保访问的是真实服务器而非钓鱼网站
  • 端口号:默认使用443端口
  • 证书要求
    • 需要向证书颁发机构(CA)申请数字证书
    • 证书验证网站身份并建立加密连接
  • 典型场景:适用于电子商务、网银、登录系统等需要安全传输的场景

HTTP/2的主要特性

1. 二进制分帧传输

  • 将HTTP消息分解为更小的二进制帧(Frame)进行传输
  • 帧类型包括:HEADERS帧、DATA帧、PRIORITY帧等
  • 优势:比HTTP/1.x的文本格式更高效,解析速度更快

2. 多路复用

  • 允许在单个TCP连接上并行交错地发送多个请求和响应
  • 解决了HTTP/1.x的队头阻塞问题
  • 示例:一个页面可以同时加载CSS、JS和图片资源,而无需建立多个连接

3. 头部压缩(HPACK算法)

  • 使用HPACK算法压缩HTTP头部
  • 维护静态表和动态表来减少重复传输
  • 效果:典型情况下可减少50-90%的头部开销

4. 服务器推送

  • 服务器可以主动向客户端推送资源,而无需等待客户端请求
  • 应用场景:推送CSS、JS等关键资源,减少页面加载时间
  • 实现方式:通过PUSH_PROMISE帧告知客户端即将推送的资源

HTTP协议核心概念详解

常见头部字段

请求头字段

  1. Accept:客户端可接受的响应内容类型

    • 示例:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    • 服务器会根据此字段返回最适合的响应类型
    • 可以通过q参数指定不同类型优先级(0-1)
  2. Cookie:携带客户端存储的会话信息

    • 格式:Cookie: name=value; name2=value2
    • 每次请求自动携带,有大小限制(通常4KB左右)
    • 可以设置Domain和Path限制范围

响应头字段

  1. Set-Cookie:服务器设置客户端Cookie

    • 格式:Set-Cookie: <name>=<value>[; expires=<date>][; domain=<domain>][; path=<path>][; Secure][; HttpOnly]
    • 重要属性:
      • Expires/Max-Age:设置过期时间
      • Secure:仅HTTPS传输
      • HttpOnly:禁止JavaScript访问
  2. Cache-Control:控制缓存行为

    • 常用指令:
      • public/private:资源是否可被中间代理缓存
      • no-cache:需要先验证再使用缓存
      • max-age=<seconds>:缓存有效时间
      • no-store:禁止任何缓存

缓存机制详解

强缓存机制

  1. 实现方式

    • Expires(HTTP/1.0):绝对时间,如Expires: Wed, 21 Oct 2023 07:28:00 GMT
    • Cache-Control(HTTP/1.1):相对时间,如Cache-Control: max-age=3600
  2. 工作流程

    • 浏览器检查缓存中的资源
    • 如果未过期,直接使用缓存(状态码200 from cache)
    • 如果已过期,向服务器发起请求

协商缓存机制

  1. Last-Modified/If-Modified-Since

    • 服务器返回Last-Modified: <date>
    • 下次请求携带If-Modified-Since: <date>
    • 服务器比较时间决定返回304或新资源
  2. ETag/If-None-Match

    • 服务器返回资源指纹ETag: "5d8c72a5edda8"
    • 下次请求携带If-None-Match: "5d8c72a5edda8"
    • 服务器比较ETag决定返回304或新资源

Cookie与Session机制

Cookie技术细节

  • 存储位置:客户端浏览器
  • 传输方式:HTTP头部自动携带
  • 限制
    • 大小:约4KB
    • 数量:每个域名约50个(浏览器差异)
    • 安全性:可设置Secure和HttpOnly属性
  • 生命周期
    • 会话Cookie:浏览器关闭失效
    • 持久Cookie:根据Expires/Max-Age设置

Session技术细节

  • 存储位置:服务端内存/数据库
  • 实现方式
    • 生成唯一Session ID(通常32位随机字符串)
    • 通过Set-Cookie返回给客户端
    • 后续请求携带Session ID识别用户
  • 安全性
    • 定期更换Session ID
    • 设置合理过期时间
    • 重要操作需二次验证

RESTful API设计规范

核心原则

  1. HTTP方法语义化

    • POST:创建资源
    • GET:获取资源
    • PUT:完整更新资源
    • PATCH:部分更新资源
    • DELETE:删除资源
  2. URI设计规范

    • 使用名词而非动词:/users优于/getUsers
    • 层级表示关系:/users/123/posts
    • 避免特殊字符,使用连字符-而非下划线_
  3. 状态码使用

    • 200 OK:成功请求
    • 201 Created:资源创建成功
    • 204 No Content:成功但无返回体
    • 400 Bad Request:客户端错误
    • 401 Unauthorized:未认证
    • 403 Forbidden:无权限
    • 404 Not Found:资源不存在
    • 500 Internal Server Error:服务器错误

最佳实践

  • 版本控制:/api/v1/users
  • 过滤排序:/users?age=25&sort=-createdAt
  • 分页:/users?page=2&limit=10
  • 返回格式统一:
    {
    "data": [...],
    "meta": {
    "total": 100,
    "page": 2,
    "limit": 10
    }
    }

Web安全防护

CSRF(跨站请求伪造)防御

  1. 验证Referer

    • 检查请求来源是否合法域名
    • 简单但不可靠(Referer可能被篡改)
  2. Token验证

    • 服务器生成随机Token
    • 通过Cookie或表单隐藏域传递
    • 每次请求验证Token有效性
  3. SameSite Cookie属性

    • SameSite=Strict:完全禁止第三方Cookie
    • SameSite=Lax:宽松模式(默认)
    • SameSite=None:允许跨站,需配合Secure

XSS(跨站脚本攻击)防御

  1. 输入过滤

    • 转义特殊字符:< > & " '
    • 白名单验证:只允许特定格式输入
  2. 输出编码

    • HTML实体编码:< → &lt;
    • JavaScript编码:\x3cscript\x3e
    • URL编码:%3Cscript%3E
  3. 内容安全策略(CSP)

    • 通过HTTP头限制资源加载
    • 示例:Content-Security-Policy: default-src 'self'

中间人攻击防护

  1. HTTPS加密

    • 使用TLS/SSL加密传输
    • 配置HSTS强制HTTPS
  2. 证书验证

    • 使用可信CA颁发的证书
    • 浏览器验证证书有效性
  3. HPKP(HTTP公钥固定)

    • 绑定域名与特定公钥
    • 防止伪造证书攻击

相关文章:

HTTP协议核心概念全解析 - 实践

HTTP协议核心概念全解析 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font…...

Django过时了吗?从ASGI到AI时代的思考

前言 本文本来只是 DjangoStarter v3.2.1 新版本发布博客里的一段思考,不过越写越长,干脆拆分成一篇独立的文章得了。😄“Django 过时了吗?” 这是一个几乎每天都能在论坛、Reddit 或知乎上看到的问题。 但仔细想想,这个问题的背后并不是“Django 变烂了”,而是技术趋势…...

日常练习一部分

这一次练习不使用后端,只进行对使用vue3的前端练习,包括两种不同的跳转方式: 我的部分代码大致如下: DashboardView.vue: <template><div><h1>仪表盘视图</h1><p>这是您的个人仪表盘,显示各种统计信息。</p><div class="sta…...

世界史

约200000万年前,天在地的下方,但是地与天无法展示与观测,山与河都一并随着天去了遥远的歌声,日月的光辉敲响了【命运】的洪钟,于此,在钟声中,产生了最初的生命,在日月的抚慰下,生命活了,死了,分裂了,一二三四五,哦,原来【数据删除】在这里,这真是太美妙了。 最初…...

罗技M275鼠标滚轮断轴维修:建模+3D打印修复全过程

本文记录了一次鼠标滚轮损坏的维修过程。经拆解发现,滚轮与编码器连接的中心轴从根部断裂。由于原装配件价格接近鼠标本体价值,作者决定采用 3D 打印方式自制替换件。初步尝试使用开源模型失败后,使用游标卡尺对原件进行尺寸测量,并重新建模。在打印过程中,分别测试了纵向…...

Unity:网络编程

Socket 服务端至少要两个socket:一个负责接收客户端连接请求,但不负责与客户端通信;为每个连接成功的客户端,在服务端创建一个对应的socket负责与客户端通信。 客户端的socket一个就行:要指定连接的服务端的IP和端口。 通讯过程:申请一个socket 绑定IP和端口 监听 服务端…...

【比赛记录】2025CSP-S模拟赛45

A B C D Sum Rank10 - 75 20 105 16/24A. 染色(color) 考虑奇偶性染色,于是就满足了所有奇质数的限制。但是由于有 \(2\) 的存在,所以需要每四个染一个色。考虑 \(1,3,6,8\) 每两个数之差都是质数,因此 \(n\ge8\) 时答案不可能小于 \(4\)。\(n<8\) 时打表打出来即可。Cod…...

PWN手的成长之路-01

首先启动题目环境,并下载题目的附件。远程nc连接一下,发现程序就是把用户输入再次输出,并加了几句话。之后从附件下手,用file查看文件的详细信息。发现是一个linux的可执行程序。使用checksec查看文件的安全属性。P.S.详细解释查看后的信息含义: Arch: 程序架构信息。判断…...

SpringCloud全解:核心组件与实战案例 - 教程

SpringCloud全解:核心组件与实战案例 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !im…...

学起plus刷课

// ==UserScript== // @name 自动下一集-学起刷课(可用版) // @namespace https://cjlzulms.sccchina.net/ // @version 2.0 // @description 用户首次点击播放后,自动连播下一集 // @author You // @match https://cjlzulms.sccchina.net/ve…...

Windows 安装人大金仓数据库 KingbaseES_V008R006

1、安装前准备 1.1、最低硬件环境要求CPU 内存 硬盘2 核 512 MB 10 GB 空闲空间1.2、下载人大金仓数据库安装包官网下载地址:https://www.kingbase.com.cn/xzzx/index.htm注意:在官网下载人大金仓数据库安装包时,需要提供下载方相关信息1.3、校验安装包的完整性如上图所示,…...

Hadoop(十) - 教程

Hadoop(十) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…...

如何注入像 MyBatis 一样注入接口

如何注入像 MyBatis 一样注入接口1.概述 我们在使用mybatis 的时候,我们发现实际上我们就是使用接口,没有实现类,但是spring 容器一样可以正常使用接口操作数据,这个是怎么做到的呢,实际上这里使用了代理模式和 spring的FactoryBean。 本文就用一个简单的例子来实现一个接…...

10 个优质周公解梦网站推荐及解析参考

梦境是潜意识的低语,也是传统文化的载体。周公解梦作为千年流传的解梦智慧,承载着古人对梦的洞察。如今,这些智慧通过网络得以延续,为人们解析梦境寓意、探寻心灵奥秘提供参考。以下推荐 10 个优质解梦网站,助你在传统与现代视角中读懂梦境。周公解梦官方网站 https://www…...

软件工程_个人项目

软件工程_个人项目个人项目报告项目 内容这个作业属于哪个课程 [软件工程](首页 - 计科23级12班 - 广东工业大学 - 班级博客 - 博客园)这个作业要求在哪里 [作业要求](个人项目 - 作业 - 计科23级12班 - 班级博客 - 博客园)这个作业的目标 训练个人项目软件开发能力,学会使用性…...

深入解析:环境搭建与你的第一个 Next.js 应用

深入解析:环境搭建与你的第一个 Next.js 应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !i…...

在 Ubuntu 中处理中文路径

在 Ubuntu 系统中,默认情况下会创建一些中文目录,如 “桌面”、“文档”、“图片” 等。这些目录在命令行操作时可能会带来不便,可以将这些中文目录转换为英文目录,或者在保持中文界面的同时使用英文目录。 终端输入 export LANG=en_US 并执行,终端输入 xdg-user-dirs-gtk…...

202212_风二西_冰蝎流量分析

流量分析,冰蝎木马,rebeyond,AES,pysharkTags:流量分析,冰蝎木马,rebeyond,AES,pyshark 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:附件名称 0x01. WP 分析及解密脚本 exp.py # -*- coding: utf-8 -*- im…...

记账:出入报表

原创 夏哥188 夏哥10761776 2025年09月14日 09:01 四川 出入报表:不同于收支报表,出入报表会包含转账流水,对于查看水电气账户出入账很有用。 查询出入报表:底部ledgers直接输入3(下拉框只有收支科目可选,3表示转账需手动输入),底部accounts选择水电气账户,分组等其他…...

[AGC028D] Chords 题解

$ \text{[AGC028D] Chords 题解}$ 整体来讲比较中规中矩的一个题。 首先这个圆上给到你你就没法处理。常规的操作是断环成链,发现实际上圆上线段相交等价于线段上线段“真相交”,即不包含的相交。然后你还是不会做。看题目让求什么,求所有方案中联通块的个数和你显然是不会的…...

记账:报表

原创 夏哥188 夏哥10761776 2025年09月10日 09:14 四川点击顶部的“accounts”即可在“报表/记一笔”之间切换,默认展示月收支报表:长按底部的"accounts"可以多选账户(或直接输入表示水电气的5,6,7),点击底部的“分组”选择“account”会列出各账户收支(红色表…...

记账:灵活转账

原创 夏哥188 夏哥10761776 2025年09月12日 09:01 四川 灵活转账可记房贷、还信用卡、垫资等房贷:例如20万房贷,10年期等额本金,利率3.1%,建议按以下方式记还贷(等额本息更简单,房贷初始化为本息总额,每期转账固定金额到房贷即可);每期还本金20万/120期=1666.67,本金…...

记账:批量更新

原创 夏哥188 夏哥10761776 2025年09月13日 09:02 四川 批量更新,配合多条件查询,可以方便地更新多条流水。 配置查询条件:记一笔的5项内容可勾选对应的复选框作为查询条件,备注输入内容直接作为查询条件,下图为查询备注包含“房贷”的流水勾选“记一笔”右边的复选框,启…...

记账:水电气话费

原创 夏哥188 夏哥10761776 2025年09月11日 08:50 四川 水电气话费通常是预充值账户,并且还可以使用各种渠道获取的立减金等优惠,下面介绍一些水电气话费的记账场景:领到了满5.01减5元的立减金,有两种记账方式(更推荐第二种)选择转账-充值,金额:0.01,红包:5,账户:现…...

《原子习惯》-读书笔记1

2025-09-14 Day1 1、本书的核心内容是我有关培训习惯的四步模型——提示、渴求、反应和鼓励,以及从这些步骤中演化出来的“行为转变四大定律”。2、与以往绩效总监不同的是,他一丝不苟地执行自己制定的“聚合微小进步”的战略,其基本理念就是在你所做的每一件事上寻求哪怕极…...

记账:记一笔

原创 夏哥188 夏哥10761776 2025年09月09日 08:22 四川 记账功能支持记一笔/更新、多条件查询。 记一笔:类型:三选一,默认支出(日常生活支出比较多),可再选科目金额:必填,最简单的记一笔只需填金额就行,其他默认即可账户:默认现金,如果是记水电气等支出则下拉选择对…...

记账:快速上手

原创 夏哥188 夏哥10761776 2025年09月08日 15:23 四川 此文介绍一款记账应用,特色有:简单、灵活、轻便、协作。 简单:记账简单,只有收入、支出、转账三种类型;界面简单,只有4个功能页,分别是记账、报表、余额、历史;轻便:使用浏览器或钉钉可直接访问,跨设备多端记账…...

高二闲话 #1

高二生活还是如期而至了,写点高二闲话感觉太有道理了。不过我得先说明这篇文章的目的不是传播负能量,事实上我最近还是蛮积极的,只不过我无法回避这些我内心里的真实想法,而且感觉写出来很有意思,所以写一写。 如果让我用四个字来形容高二生活的话,我想说“其实还好”。 …...

dijkstra 学习笔记。

学习普及组算法。同学们,我们今天来学习基础 dijkstra。给一个序列,求总和前 \(k\) 小的子序列,分别输出它们的和。\(k,n\le 10^6\)。dijkstra 主要是用来解决一些“前 \(k\) 小/大”的问题的。具体地,我们将状态视为点,状态带权,则需要连一些满足偏序关系的边,使得“状…...

char与varchar类型

char类型 char varchar类型...

详细介绍:【MySQL】基本查询

详细介绍:【MySQL】基本查询pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-s…...

202109_鹤城杯_SQL注入

流量分析,SQL注入,pyshark,正则匹配Tags:流量分析,SQL注入,pyshark,正则匹配 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202109_鹤城杯_SQL注入.zip 0x01. WP1 浏览了所有http请求发现为最常规的SQL注入流…...

Madness - TryHackMe

Madness - TryHackMe 一、信息收集 使用nmap对网站ip端口开放进行探测 nmap -sS -sV -A -Pn 10.10.35.188这里开放了一个22端口和80端口访问一下是个配置目录 使用dirsearch看看还有没有其他隐藏页面 dirsearch -u http://10.10.35.188/ -e php,html,txt -t 100 这里有个登录页…...

hahasim 香港手机卡 没信号 解决

我一开始是放在了一个小米手机上,有信号 但是过了大概两周,突然没信号了,关机重启,它会显示1秒的信号,然后就没了 我又换到了vivo手机上,有信号了,神奇...

机器人逆运动学进阶:李代数、矩阵指数与旋转流形计算

做机器人逆运动学(IK)的时候,你迟早会遇到矩阵指数和对数这些东西。为什么呢?因为计算三维旋转的误差,不能简单地用欧氏距离那一套,那只对位置有效。旋转得用另一套方法——你需要算两个旋转矩阵之间的差异,这就涉及到矩阵对数了。 这篇文章就是要把这事儿说清楚:从旋转…...

第一周博文

参考资料: 大公司内部的编码规范:今后,我将以以上要求为基准,将它们作为我本学期要遵守的编码规范。 数学之美第一章读后感: 在第一章中,作者为我们介绍了文字、数字和信息之间的联系和历史,从原始时代的语音通信到古埃及的“亚尼的死者之书”,文字带来了现实的隐喻,它…...

CSP-S模拟21

前言: 论读假题得来的\(80~pts\)\(T1:\) 雷暴(storm) 思路: 据说是\(J\)组难度,几乎全切。记录下来每种颜色出现的最上/下/左/右,然后作差平方就好了 代码:$code$ #include<iostream> #include<algorithm> using namespace std; const int N=1e3+5,M=1e5+…...

【System Beats!】第二章 信息的表示与处理

2.1 信息存储 大多数计算机使用8位的块,或者字节,作为最小的可寻址的内存单位。 机器级程序将内存视为一个非常大的字节数组,称为虚拟内存。 内存的每个字节用唯一的数字标识,称为它的地址。 所有可能地址的集合称为虚拟地址空间。 例如:C语言中一个指针的值都是某个存储块…...

ZR 25 noip D3T2 题解 | 构造、数学

传送门 标签:构造、数学 题意 给你一个长为 \(2 \times n\) 的数列 \(a\),满足 \(\forall i \in [1, 2 \times n], a_i \in [0, n]\)。 求一个区间,可以将区间中的数划分到两个集合,满足两个集合中数的和相同。 思路 考虑分析题目研究的组合对象,是一个区间。 考虑这个操作…...

9. LangChain4j + 整合 Spring Boot - Rainbow

9. LangChain4j + 整合 Spring Boot @目录9. LangChain4j + 整合 Spring BootLangChain4j + 整合 Spring Boot 实操最后:LangChain4j 整合 SpringBoot 官方文档:https://docs.langchain4j.dev/tutorials/spring-boot-integration/浅谈—下:LangChain4j twolevels of abstrac…...

gcc

用 GCC 在命令行编译源文件:...

在企业内部分发 iOS App 时如何生成并应用 manifest.plist

在企业内部分发 iOS App 时如何生成并应用 manifest.plistpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", m…...

CSP2025 游记

9.14 终于摆脱文化课爽了。 pyb 搞了一个停课仪式,每个人可以抽一瓶可乐,上面有定制的文字。 里面有四瓶可乐分别是:“联 2”、“赛 0”、“冲 2”、“刺 5”,然后就有人说抽到“赛 0”就是联赛爆零。 然后我随手一抽就是这瓶……万一是联赛零失误的意思呢? CSP2025 游记正…...

Luogu P14031 【MX-X20-T5】「FAOI-R7」连接时光 II

懒场上死活不会,下来再看一下就会了,两周没开电脑导致的。 首先考虑如何计算 \(f_S(p)\)。 首先因为 \(f_S(p)\) 的限制都是对于前缀的图的限制,所以先来考察前缀的图的结构和变化情况。 经过手玩能够知道,对于前 \(i\) 个数的图,根据值域划分,连通块就为一些相邻的区间 …...

第一周预习作业

占位,等我研究一下md和html互转...

计算机大数据毕业设计推荐:基于Spark的新能源汽车保有量可视化分析系统 - 指南

计算机大数据毕业设计推荐:基于Spark的新能源汽车保有量可视化分析系统 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

csp 2025 油迹

开坑。 度过了近 4 年 oi 生涯怎么能一点回忆都不留下? 反正都是随便写写,如果开到你了或者让你不适了可以评论喷我。 还是希望有一个好到能让我打高二的成绩的。 有密码的总结属于校内联考范畴。 0914 给某个关系好的同学买了礼物,然后还给自己买了个小东西,但是周三才能拿…...

完整教程:JMeter基本介绍

完整教程:JMeter基本介绍pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size…...

[]

yy...

rv

veve...