ΠΡΠΎΠ΅ΠΊΡ GNU ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libmicrohttpd 0.9.74, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΏΡΠΎΡΡ API Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° HTTP ΡΡΡΠ²ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» HTTP 1.1, TLS, ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° POST Π·Π°ΡΠ²ΠΊΠΈ, Π±Π°Π·ΠΎΠ²Π° ΠΈ digest Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, IPv6, SHOUTcast ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ (select, poll, pthread, thread pool). ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian ΠΈ z/OS. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· LGPL 2.1+.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° WebSockets, ΠΊΠΎΡΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ΡΡΠ²Π°Π½Π° ΠΈ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ Π΅ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΡΠΎ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ HTTP 1.0/1.1.
- ΠΠΎΠ΄ΡΡ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° chunked Π·Π°ΡΠ²ΠΊΠΈ Π΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½.
- ΠΠΎΠ΄ΡΡ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈ ΠΏΡΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΊΠΎΠ΄ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ chunked Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ²ΡΡΠ΄Π΅ Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ Π·Π°Π³Π»Π°Π²Π΅Π½ Content-Length.
- Π’ΠΎΡΠ½ΠΎΡΡΡΠ° Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΠΈ Π΅ ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π΄ΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
- ΠΠ·Π²ΡΡΡΠ΅Π½ΠΈ ΡΠ° Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° HTTP.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΏΠΎ-ΡΡΡΠΎΠ³Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΡΠ»Π°ΡΠΈΠΈ Π² ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅ Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡ, Π½ΠΎ Π΅ Π·Π°Π±ΡΠ°Π½Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ Π² ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡΠ΅ Π·Π°Π³Π»Π°Π²ΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Π·Π° ΡΠ±ΠΎΡΠΊΠ° ββenable-sanitizers[=address,undefined,leak,user-poison]β Π·Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΊΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ°ΠΉΠ» Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π² MSVC.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
