ΠΡΠΎΠ΅ΠΊΡ GNU ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libmicrohttpd 0.9.77, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΉΠΊΠΈ ΠΏΡΠΎΡΡ API Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° HTTP ΡΡΡΠ²ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 ΠΈ z/OS. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° LGPL 2.1+. Π ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π²ΠΈΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π°Π΅ΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 32 ΠΠ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» HTTP 1.1, TLS, ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° POST Π·Π°ΡΠ²ΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈ digest Π°ΡΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡ, IPv6, SHOUTcast, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ (select, poll, epoll) ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠ» ΠΎΡ Π½ΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ Π½ΠΈΡΠΊΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°). Π‘ ΠΎΠ³Π»Π΅Π΄ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΏΡΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π±ΡΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π΅ ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ.
ΠΠ°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- Π API-ΡΠ΅ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ MHD_get_version_bin() Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π² ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ ΡΠΎΡΠΌΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 0x00097701).
- ΠΡΠΌ ΡΠΎΡΠΌΠ°ΡΠ°, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ Π² RFC, ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° digest Π°ΡΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡ (Β«MD5Β» / Β«SHA-256Β» Π²ΠΌΠ΅ΡΡΠΎ Β«md5Β» / Β«sha-256Β»).
- ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ Π΅ ΠΊΠΎΠ΄ΡΡ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² Base64 ΡΠΎΡΠΌΠ°Ρ, ΡΡΠΈΠ»Π΅Π½Π° Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡΠ° Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² Base64 ΡΠΎΡΠΌΠ°Ρ.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π·Π° ΠΊΡΠΎΡ-ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ POSIX ΠΈ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Base64, Basic Auth ΠΈ ΡΠ²ΠΈΡΠΈ Π΄ΡΠ»Π³ΠΈ HTTP Π·Π°Π³Π»Π°Π²ΠΈΡ.
- Π ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΡ API Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libcurl, Π·Π° Π΄Π° ΡΠ΅ ΡΠΊΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡΠ° Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈΡΠ΅ VC (Visual C) ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ARM ΠΈ ARM64.
- ΠΡΠΈΡΠΊΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π²ΡΡΡΠ°Π½ΠΈ ΠΎΡ callback ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅, ΡΠ΅Π³Π° ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ Π³ΡΠ΅ΡΠΊΠΈ (ΠΏΠΎ-ΡΠ°Π½ΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ°ΠΊΡΠΎΡΠ° Π½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ° Β«DEBUGΒ» (ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Π½Π° ΠΌΠ°ΠΊΡΠΎΡΠ° Β«_DEBUGΒ»).
- ΠΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° Π½Π°ΡΡΡΠΏΠ°Π½ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
