轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
mccutchen/go-httpbin
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

go-httpbin Docker 镜像下载 - 轩辕镜像

go-httpbin 镜像详细信息和使用指南

go-httpbin 镜像标签列表和版本信息

go-httpbin 镜像拉取命令和加速下载

go-httpbin 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

go-httpbin
mccutchen/go-httpbin
自动构建

go-httpbin 镜像详细信息

go-httpbin 镜像标签列表

go-httpbin 镜像使用说明

go-httpbin 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

相当完整且经过充分测试的Golang版httpbin,用于HTTP请求测试的服务工具。
9 收藏0 次下载activemccutchen镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

go-httpbin 镜像详细说明

go-httpbin 使用指南

go-httpbin 配置说明

go-httpbin 官方文档

go-httpbin

go-httpbin 是 Kenneth Reitz 的 httpbin 服务的一个完整且经过充分测试的 Go 语言实现,除 Go 标准库外无任何依赖。

![GoDoc]([] ![Build status]([] ![Coverage]([] ![Docker Pulls]([]

镜像概述和主要用途

go-httpbin 是经典 HTTP 测试服务 httpbin 的 Go 语言移植版本,旨在提供一个轻量、可靠的 HTTP 请求/响应测试工具。它可作为独立服务运行,也可嵌入到 Go 应用中作为测试库,用于验证 HTTP 客户端行为、模拟各种 HTTP 响应场景(如状态码、延迟、请求头/体解析等)。

核心功能和特性

  • 完整实现:覆盖 httpbin 核心端点(如 /get、/post、/status、/delay 等)
  • 零外部依赖:仅使用 Go 标准库,部署简单,无额外依赖管理
  • 多模式运行:支持作为独立服务(HTTP/HTTPS)或 Go 测试库使用
  • 高度可配置:通过命令行参数或环境变量调整服务行为(端口、主机、最大请求体大小等)
  • 轻量高效:Go 语言特性带来的低资源占用和快速响应

使用场景和适用范围

  • API 客户端测试:验证 HTTP 客户端对不同请求方法、状态码、头信息的处理
  • HTTP 协议调试:模拟延迟响应、大响应体、异常状态码等边缘场景
  • 开发环境模拟:在本地开发中替代第三方 HTTP 服务,避免外部依赖
  • 单元测试辅助:作为测试库嵌入 Go 应用,模拟 HTTP 服务交互逻辑

详细使用方法和配置说明

配置参数

go-httpbin 支持通过命令行参数或环境变量配置(命令行参数优先级高于环境变量):

参数名环境变量说明默认值
-hostHOST监听主机地址"0.0.0.0"
-https-cert-fileHTTPS_CERT_FILEHTTPS 服务器证书文件路径(空,禁用HTTPS)
-https-key-fileHTTPS_KEY_FILEHTTPS 服务器私钥文件路径(空,禁用HTTPS)
-max-body-sizeMAX_BODY_SIZE请求/响应体最大大小(字节)1048576(1MB)
-max-durationMAX_DURATION响应最大持续时间10s
-portPORT监听端口8080
-use-real-hostnameUSE_REAL_HOSTNAME在 /hostname 端点暴露真实主机名false

独立二进制文件

需先安装 Go 运行时环境,然后通过以下命令安装并运行:

# 安装 go-httpbin 二进制
go install github.com/mccutchen/go-httpbin/v2/cmd/go-httpbin@latest

# 运行 HTTP 服务器
go-httpbin -host 127.0.0.1 -port 8081

# 运行 HTTPS 服务器(需先生成证书)
openssl genrsa -out server.key 2048
openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
go-httpbin -host 127.0.0.1 -port 8081 -https-cert-file ./server.crt -https-key-file ./server.key

Docker 部署

Docker 镜像已发布至 Docker Hub,支持直接运行:

基础 HTTP 服务

# 随机映射端口运行
docker run -P mccutchen/go-httpbin

# 指定端口映射(主机8080端口映射到容器8080端口)
docker run -p 8080:8080 mccutchen/go-httpbin

HTTPS 服务(需挂载证书文件)

# 生成证书(主机上执行)
openssl genrsa -out server.key 2048
openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650

# 挂载证书并运行 HTTPS 服务
docker run -d \
  -e HTTPS_CERT_FILE='/certs/server.crt' \
  -e HTTPS_KEY_FILE='/certs/server.key' \
  -v $(pwd):/certs \
  -p 8443:8080 \
  mccutchen/go-httpbin

Docker Compose 示例(docker-compose.yml)

version: '3'
services:
  go-httpbin:
    image: mccutchen/go-httpbin
    ports:
      - "8080:8080"
    environment:
      - HOST=0.0.0.0
      - PORT=8080
      - MAX_BODY_SIZE=2097152  # 2MB
    restart: always

单元测试辅助库

可将 httpbin 包作为测试库嵌入 Go 应用,模拟 HTTP 服务:

package httpbin_test

import (
	"net/http"
	"net/http/httptest"
	"os"
	"testing"
	"time"

	"github.com/mccutchen/go-httpbin/v2/httpbin"
)

func TestSlowResponse(t *testing.T) {
	// 创建 httpbin 实例
	app := httpbin.New()
	// 启动测试服务器
	testServer := httptest.NewServer(app.Handler())
	defer testServer.Close()

	// 配置 HTTP 客户端(设置超时 1 秒)
	client := http.Client{
		Timeout: time.Duration(1 * time.Second),
	}

	// 请求 /delay/10 端点(模拟 10 秒延迟响应)
	_, err := client.Get(testServer.URL + "/delay/10")
	// 验证客户端是否正确处理超时
	if !os.IsTimeout(err) {
		t.Fatalf("期望超时错误,实际错误: %s", err)
	}
}

自定义工具化

若需在生产环境中添加自定义观测性工具(如 metrics、结构化日志、分布式追踪等),可通过 Observer 机制包装服务。示例可参考 examples/custom-instrumentation(基于 DataDog 的请求观测示例)。

安装

作为 Go 项目依赖

go get -u github.com/mccutchen/go-httpbin/v2

安装独立二进制

go install github.com/mccutchen/go-httpbin/v2/cmd/go-httpbin@latest

与其他版本的差异

与原 httpbin(Python)比较

  • 不支持 /brotli 端点(Go 标准库无内置 Brotli 支持)
  • 忽略 ?show_env=1 查询参数(不特殊处理运行时环境头信息)
  • 响应中字符串/字符串列表类型字段统一为列表类型(如请求头、查询参数、表单值)

与 ahmetb/go-httpbin 比较

  • 零第三方依赖(仅依赖 Go 标准库)
  • 更完整的端点实现

开发指南

# 本地开发
make              # 构建项目
make test         # 运行测试
make testcover    # 运行测试并生成覆盖率报告
make run          # 本地运行服务

# 构建和推送 Docker 镜像
make image        # 构建 Docker 镜像
make imagepush    # 推送镜像到 Docker Hub
查看更多 go-httpbin 相关镜像 →

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.