varion/minih2core-php
Composer 安装命令:
composer require varion/minih2core-php
包简介
Minimal educational HTTP/2 core for PHP
README 文档
README
varion/minih2core-php is a minimal educational HTTP/2 core for PHP 8.1+.
This project is intentionally small and incomplete. It is designed for learning and demo servers, not production use.
Purpose
- Show how HTTP/2 frames can be encoded/decoded in a simple way.
- Provide a tiny server-side flow for one request stream and one response.
- Keep implementation readable without full RFC complexity.
Supported Frame Types (Minimal Subset)
SETTINGS(basic ACK handling)PING(basic ACK handling)HEADERS(request stream detection, no header decoding)DATA(request end detection, response trigger)
The frame codec itself can encode/decode generic frame envelopes (9-byte header + payload).
Unsupported Features
- Full HTTP/2 compliance
- Request header decoding (HPACK decode)
- CONTINUATION handling
- Dynamic table (HPACK)
- Huffman encoding (HPACK)
- Flow control enforcement
- Stream prioritization / multiplexing
- Multi-stream request handling (demo is single-stream)
- Production-grade validation and error handling
Server Architecture
Frame: immutable frame value objectFrameCodec: binary frame encoder/decoderHpackEncoder: minimal response header block encoderConnectionState: mutable per-connection stateFrameHandler: tiny server-side state machineResponseBuilder: createsHEADERS+DATAresponse frames
ReactPHP Example
See examples/react-http2-server.php.
What it does:
- Accepts a TCP connection (
h2cprior knowledge). - Reads and validates the HTTP/2 client preface.
- Sends an empty server
SETTINGSframe. - Buffers incoming bytes and repeatedly calls
FrameCodec::tryDecode(). - Passes each decoded frame to
FrameHandler. - Encodes returned frames and writes them back.
- Sends a single plain text response body:
hello from http/2 server\n. - Closes the connection after the response.
Run example:
php examples/react-http2-server.php 8080
Test with curl:
curl -v --http2-prior-knowledge http://127.0.0.1:8080/
Client Architecture
The client example is also intentionally minimal and educational.
ClientConnectionState: mutable state for one connectionRequestBuilder: builds one GET request HEADERS frame on stream 1ClientFrameHandler: handles SETTINGS/ACK flow and minimal response eventsClientConnection: ReactPHP connection wrapper around buffer/decode/write loop
Client Limitations
- client only
- HTTPS + ALPN(h2) only
- single GET request only
- one request stream only
- no response header decoding
- no HPACK decoder
- no CONTINUATION support
- no multiplexing / retries / flow-control enforcement
- small responses / demo only
- not production-ready
Client Example Flow
See examples/http2-client.php.
- Parse
[--insecure] <URI>. - Connect via TLS with ALPN
h2,http/1.1. - Send client preface + empty SETTINGS.
- Decode frames with
FrameCodec::tryDecode(). - On server SETTINGS, send SETTINGS ACK and one GET HEADERS frame.
- Print DATA payload bytes to STDOUT.
- Close on END_STREAM or GOAWAY.
varion/minih2core-php 适用场景与选型建议
varion/minih2core-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 varion/minih2core-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 varion/minih2core-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-07