Skip to content

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/httpc

30초 체험

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는 세 가지 사용 방식을 제공합니다. 간단한 것부터 유연한 것까지:

text
패키지 함수            클라이언트 인스턴스              도메인 클라이언트
httpc.Get()  →  client, _ := httpc.NewDefault()  →  dc, _ := httpc.NewDomainDefault(url)
일회성 요청       사용자 정의 설정/미들웨어       세션 관리/Cookie 자동 유지

설정 프리셋

프리셋적용 시나리오
DefaultConfig()범용 시나리오, 안전한 기본값
SecureConfig()보안 민감 시나리오, 엄격한 타임아웃
PerformanceConfig()높은 처리량, 큰 커넥션 풀
TestingConfig()테스트 환경, 보안 검사 비활성화
MinimalConfig()경량 스크립트, 재시도/리다이렉트 없음