HTTPC
安全な HTTP クライアントライブラリ。デフォルトで安全、インテリジェントなリトライ、ミドルウェアチェーン、オブジェクトプール再利用を内蔵。
特徴
- TLS 1.2+ - 最低 TLS バージョンを強制、デフォルト TLS 1.2-1.3
- SSRF 防護 - デフォルトでプライベート IP 接続をブロック、CIDR 免除設定可能
- インテリジェントリトライ - 指数バックオフ + ジッター、カスタムリトライ戦略に対応
- コネクションプール管理 - 高性能な接続再利用、HTTP/2 対応
- ミドルウェアチェーン - ログ、監査、メトリクス、リカバリ、リクエスト ID などの内蔵ミドルウェア
- ファイルダウンロード - レジューム、プログレスコールバック、チェックサム検証に対応
- DNS-over-HTTPS - 内蔵 DoH リゾルバ、DNS ハイジャックリスクを低減
- オブジェクトプール再利用 - 内部のレスポンスオブジェクトと文字列ビルダーを sync.Pool で再利用、GC 負荷を軽減
インストール
bash
go get github.com/cybergodev/httpc30 秒で体験
go
package main
import (
"fmt"
"github.com/cybergodev/httpc"
)
func main() {
result, err := httpc.Get("https://httpbin.org/get")
if err != nil {
panic(err)
}
fmt.Println(result.StatusCode()) // 200
}ここから始める
目的に応じて読むページを選んでください:
| 目的 | おすすめ |
|---|---|
| 5 分で始める | クイックスタート |
| 30 分の実践チュートリアル | チュートリアル |
| 使い方を調べる | チートシート |
| セキュリティ機能を理解する | セキュリティ概要 |
| API シグネチャを調べる | API リファレンス |
コアコンセプト
HTTPC は 3 つの使用方法を提供します。シンプルから柔軟まで:
text
パッケージ関数 クライアントインスタンス ドメインクライアント
httpc.Get() → client, _ := httpc.New() → dc, _ := httpc.NewDomain(url)
一度きりのリクエスト カスタム設定/ミドルウェア セッション管理/Cookie 自動維持設定プリセット
| プリセット | 適用シナリオ |
|---|---|
DefaultConfig() | 汎用シナリオ、安全なデフォルト値 |
SecureConfig() | セキュリティ重視シナリオ、厳格なタイムアウト |
PerformanceConfig() | 高スループット、大規模コネクションプール |
TestingConfig() | テスト環境、セキュリティチェック無効 |
MinimalConfig() | 軽量スクリプト、リトライ・リダイレクトなし |