C로 작성된 고성능 웹 서버, 리버스 프록시, 로드 밸런서, API 게이트웨이 및 콘텐츠 캐시입니다.
yhirose/cpp-httplib
블로킹 소켓 I/O로 HTTP/HTTPS 서버와 클라이언트를 구축할 수 있는 C++11 단일 헤더 라이브러리입니다.
- 스타
- 16,923
- 포크
- 2,777
- 열린 이슈
- 0
- 마지막 커밋
- 14시간 전
어떤 프로젝트인가요?
cpp-httplib은 HTTP/HTTPS 서버와 클라이언트를 모두 제공하는 크로스 플랫폼 C++11 라이브러리입니다. 단일 헤더 파일인 httplib.h로 배포되므로 프로젝트에 해당 파일을 포함하기만 하면 됩니다. 블로킹 소켓 I/O를 사용하며 HTTP/1.1만 지원하고, HTTP/2와 HTTP/3는 구현되어 있지 않습니다.
경로 매개변수와 정규식을 사용한 라우팅, MIME 매핑을 적용한 정적 파일 제공, multipart 폼 및 파일 업로드, 청크 전송과 스트리밍 콘텐츠 프로바이더, keep-alive 연결, 라우팅 전·후 처리와 예외 핸들러 같은 미들웨어 방식의 훅을 지원합니다. Server-Sent Events와 WebSocket도 추가 기능으로 문서화되어 있습니다.
TLS는 OpenSSL(3.0 이상), Mbed TLS 또는 wolfSSL을 통해 사용할 수 있으며, 컴파일 시 define으로 선택합니다. 인증서 검증 설정과 상호 TLS도 지원하며, macOS와 Windows에서는 시스템 인증서 저장소와 연동할 수 있습니다.
핵심 기능
- 01기본 HTTP 사용 시 빌드 의존성 없이 단일 헤더를 포함해 사용
- 02하나의 라이브러리에서 HTTP 서버와 클라이언트 제공
- 03OpenSSL, Mbed TLS 또는 wolfSSL을 통한 HTTPS
- 04경로 매개변수와 정규식을 사용한 라우팅
- 05정적 파일 제공, multipart 업로드, 청크 방식 또는 스트리밍 응답
- 06상호 TLS 및 인증서 검증 설정
활용 사례
- 대규모 프레임워크를 추가하지 않고 C++ 애플리케이션에 경량 임베디드 HTTP 엔드포인트 추가
- HTTPS로 REST API를 호출하는 C++ 클라이언트 작성
- C++ 도구에서 정적 파일이나 간단한 웹 API 제공
- 설정을 최소화해 C++ 프로젝트에서 로컬 HTTP 서비스 프로토타이핑
빠른 시작
- 1
저장소에서 httplib.h 파일을 다운로드합니다
- 2
C++ 코드에 httplib.h를 포함하고 예제에 나온 대로 서버 또는 클라이언트를 빌드합니다
사용 전 알아둘 점
- 블로킹 소켓 I/O를 사용하므로 논블로킹 설계에는 적합하지 않습니다.
- HTTP/1.1만 지원하며 HTTP/2와 HTTP/3은 구현되어 있지 않습니다.
- 32비트 플랫폼은 지원되지 않으며 보안 검토도 수행되지 않습니다.
토픽
자주 묻는 질문
- cpp-httplib은(는) 무엇인가요?
- 블로킹 소켓 I/O로 HTTP/HTTPS 서버와 클라이언트를 구축할 수 있는 C++11 단일 헤더 라이브러리입니다. cpp-httplib은 HTTP/HTTPS 서버와 클라이언트를 모두 제공하는 크로스 플랫폼 C++11 라이브러리입니다. 단일 헤더 파일인 httplib.h로 배포되므로 프로젝트에 해당 파일을 포함하기만 하면 됩니다. 블로킹 소켓 I/O를 사용하며 HTTP/1.1만 지원하고, HTTP/2와 HTTP/3는 구현되어 있지 않습니다.
- cpp-httplib은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- cpp-httplib은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- cpp-httplib은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. cpp-httplib의 마지막 커밋은 2026년 10월 22일입니다.
- cpp-httplib은(는) 어디에 사용할 수 있나요?
- 대규모 프레임워크를 추가하지 않고 C++ 애플리케이션에 경량 임베디드 HTTP 엔드포인트 추가 HTTPS로 REST API를 호출하는 C++ 클라이언트 작성 C++ 도구에서 정적 파일이나 간단한 웹 API 제공 설정을 최소화해 C++ 프로젝트에서 로컬 HTTP 서비스 프로토타이핑
- cpp-httplib는 어떻게 설치하나요?
- 저장소에서 httplib.h 파일을 다운로드합니다 C++ 코드에 httplib.h를 포함하고 예제에 나온 대로 서버 또는 클라이언트를 빌드합니다
- cpp-httplib은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/yhirose/cpp-httplib
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Caddy는 Go로 작성된 확장형 웹 서버로, HTTP/1.1·HTTP/2·HTTP/3를 제공하며 기본적으로 HTTPS를 자동 설정합니다.
높은 처리량과 낮은 할당 오버헤드가 필요한 워크로드를 위해 설계된 Go용 고성능 HTTP 서버 및 클라이언트 구현입니다.
문자열에서 float, double, 정수 값을 빠르고 정확하게 파싱하는 헤더 전용 C++ 라이브러리로, from_chars를 바로 대체해 사용할 수 있습니다.
HTTP 및 WebSocket 웹 서비스를 만들기 위한 빠르고 사용하기 쉬운 Flask 스타일의 헤더 전용 C++ 마이크로프레임워크입니다.
Go 표준 net/http 패키지를 기반으로 한 고성능 미니멀 웹 프레임워크입니다.