流式 HTTP 是指在一次 HTTP 请求/响应过程中,服务端或客户端能够**逐步发送或接收数据**,而不是等待整个内容准备好后一次性传输。这种模式适用于大文件传输、实时日志推送、SSE(Server-Sent Events)、视频流等场景。 下面我们将从 **HTTP/1.1、HTTP/2、HTTP/3** 三个协议版本的角度详细解释流式传输的机制,并结合 **Go 语言** 编写服务端示例代码,说明其原理和实现方式。 --- ## 一、HTTP/1.1 的流式传输 ### 1.1 原理 - HTTP/1.1 支持 **Chunked Transfer Encoding**(分块传输编码)。 - 服务端可以在不知道内容总长度的情况下,通过 `Transfer-Encoding: chunked` 头部逐块发送响应体。 - 每个块以十六进制长度开头,后跟 `\r\n`,然后是数据,再以 `\r\n` 结尾。 - 最终用一个长度为 0 的块表示结束。 ### 1.2 Go 实现示例(HTTP/1.1 流式响应) ```go package m...
 发布日期: 2025-11-22    分类: 后端   浏览量: 7
在 Go 语言中使用 `go-sql-driver/mysql`(即 `github.com/go-sql-driver/mysql`)作为 MySQL 驱动时,连接字符串中的 `loc` 参数用于指定驱动在处理 `DATETIME` 和 `TIMESTAMP` 类型时所使用的 **本地时区(Local Time Zone)**。 --- ## 一、`loc` 参数的作用 - `loc` 指定的是 **Go 程序解析和格式化时间时使用的时区**。 - 它 **不会改变 MySQL 服务器本身的时区设置**,而是影响 Go 驱动如何将数据库中的时间值转换为 Go 的 `time.Time` 类型,以及如何将 `time.Time` 写入数据库。 语法示例: ```go db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?loc=Asia%2FShanghai") ``` 其中 `Asia/Shanghai` 是 IANA 时区名称,URL 编码后为 `Asi...
 发布日期: 2025-11-20    分类: Go   浏览量: 21
# Go Web 应用性能pprof分析完整指南 在构建高性能的 Go Web 应用时,性能分析(Profiling)是不可或缺的一环。Go 语言原生提供了强大且易用的性能分析工具,本文将系统性地介绍如何对 Go Web 应用进行 CPU、内存、阻塞、协程等维度的性能分析,并提供可直接复用的代码模板和操作步骤。 ## 一、准备工作:启用 pprof Go 的标准库 `net/http/pprof` 提供了 HTTP 接口访问性能分析数据的能力。只需在你的 Web 应用中导入该包即可自动注册相关路由: ```go import _ "net/http/pprof" ``` > 注意:仅在开发或测试环境中暴露 pprof 端点。生产环境应通过权限控制或独立管理端口暴露,避免安全风险。 ### 示例:最小可运行 Web 应用 + pprof ```go package main import ( "net/http" _ "net/http/pprof" // 自动注册 /debug/pprof 路由 ) fu...
 发布日期: 2025-11-20    分类: Go   浏览量: 17
MCP是一种开放协议,它标准化了应用程序如何向LLM提供上下文。把MCP想象成人工智能应用程序的USB-C端口。正如USB-C提供了一种将您的设备连接到各种外围设备和附件的标准化方式,MCP提供了一种将人工智能模型连接到不同数据源和工具的标准化方式。 MCP分服务器和客户端: - 服务器提供MCP定义的功能,主要包括工具(tool)、资源(resource)、提示(prompt)和采样(sampling)。 - 客户端则充当服务器和LLM之前通信的桥梁,告知LLM有哪些MCP功能可用,调用MCP服务器提供的获取返回再提交给LLM。 ## 概念 ### tool 工具 工具让LLM可以通过用户提供的服务器执行操作,通过工具LLM可以和外部系统交互。 比如需要获取实时新闻,天气等,LLM是不知道这些实时数据的,就可以通过工具来获取。 ### resource 资源 资源是指可以公开给LLM的数据和内容,可以是任意类型的数据。 比如: - 文件内容 - 图像内容 - 日志文件 - 等等...... 资源是用URI来标识...
 发布日期: 2025-06-22    分类: 后端   浏览量: 2419
有些场景,比如用户充值、注册等需要比较精确的数据时,可以在服务端通过GA提供的数据收集接口上报数据。 **1. 获取api密钥** GA管理后台 => 管理 => 媒体和资源设置 => 数据收集和修改 => 数据流 在数据流里面选择一个项目,点进去可以看到`Measurement Protocol API 密钥`,点进去就可以管理api密钥了。 **2. POST数据** 把数据提交到`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}` `measurement_id`:数据流的衡量ID,在设置里面的数据流可以看到,类似`G-XXXXXXXXXX`的字符串 `api_secret`: 上一步获取的api密钥 **3. 调试** 把第二部里面的url改成`/debug/mp/collect`,提交数据有错误,会返回错误信息 **4. 文档链接** 发送事件:https:...
 发布日期: 2025-04-22    分类: 后端   浏览量: 4823
GORM模型查询生成器生成的模型代码,创建数据的时候如果time.Time类型的属性未赋值,`create`将会报错: `incorrect datetime value '0000-0-0 00:00:00' for column` 有几种方法能让GORM忽略未赋值的time字段,使用数据库默认的NULL: - 使用`Omit`忽略指定的未赋值字段 - 模型数据类型`time.Time`改成`*time.Time` - 把模型gorm的tag改成`gorm:"default:null"` - 把模型数量类型改成`sql.NullTime`,新加模型赋值时需要赋值`sql.NullTime{}`...
 发布日期: 2025-02-24    分类: Go   浏览量: 6156
桌面版的Google地球没有代理设置,设置系统的全局代理经测试只有偶尔会有效,大部分时候无效,再一个全局代理也很不方便,会影响到所有流量。 本文的目的是让Google地球每次启动后都能走代理。 需要利用一个第三方软件:proxychains4,github仓库地址:https://github.com/rofl0r/proxychains-ng ## 1. 安装 ```shell sudo apt install proxychains4 ``` ## 2. 修改配置文件 修改配置文件`sudo vim /etc/proxychains4.conf`,找到最底部的`[ProxyList]`配置段,加上自己的代理地址,比如我的: ```shell [ProxyList] # add proxy here ... socks5 127.0.0.1 1080 ``` ## 3. 为了方便,新加一个启动图标 在桌面添加一个`.desktop`启动图标文件。 ```shell [Desktop Entry] Versi...
 发布日期: 2025-02-14    分类: 其他   浏览量: 4107
# 互联网产品运营中常用的关键指标(英文简称及计算方法) 在互联网产品运营中,常用的关键指标(通常用英文简称表示)可以帮助团队评估产品的表现、用户行为、增长潜力和盈利能力。以下是一些常见的指标及其英文简称和计算方法: --- ## 1. 用户增长相关指标 - **DAU(Daily Active Users)**:日活跃用户数。 - **计算方法**:统计一天内登录或使用产品的独立用户数(去重)。 - **MAU(Monthly Active Users)**:月活跃用户数。 - **计算方法**:统计一个月内登录或使用产品的独立用户数(去重)。 - **DNU(Daily New Users)**:日新增用户数。 - **计算方法**:统计一天内首次使用产品的独立用户数(去重)。 - **WAU(Weekly Active Users)**:周活跃用户数。 - **计算方法**:统计一周内登录或使用产品的独立用户数(去重)。 - **CAC(Customer Acquisition Cost)**...
 发布日期: 2025-01-16    分类: 其他   浏览量: 3216
v17.1.10使用方法:使用下载的文件替换掉原文件。链接:https://pan.quark.cn/s/08ea43f09c1c提取码:ifDU v17.0.131) 安装2) 用Crack目录的的文件替换原文件3) {可选} 移除注册表项 : HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration17X??\含原版安装包文件:链接:https://pan.quark.cn/s/c8beef0a69a4提取码:pNr1...
 发布日期: 2024-08-23    分类: 其他   浏览量: 7230
快钱官方没有提供完整的SDK,仅有一些demo,要集成进现有go mod项目要花一点时间集成和测试,记录一下签名验证的关键点,支付方式是SDK网关支付和H5支付。 快钱会提供三个密钥文件: - 商户应用私钥文件,`pfx`格式,有密码,用于签名数据。 - ssl证书,`pfx`格式,有密码,用于`https`双向认证,快钱的证书测试下来会报错,所以用`openssl`提取了证书和密钥使用,下面有写。 - 快钱公钥证书,用于加/解密和验证数据。 场景是把以上证书内容`base64`编码成字符串存数据库,提供页面UI配置。 ## 1、支付下单数据签名 按照文档里面的字段顺序排序字段,拼接成查询字符串,用商户私钥加签。 ```go //SignData data 拼接的待签名字符串 func SignData(data string) (string, error) { // merchantKey私钥 certBytes, err := base64.StdEncoding.DecodeString(merchantKey) i...
 发布日期: 2024-08-09    分类: 后端   浏览量: 6502