GNU libmicrohttpd 0.9.74 telah pun dikeluarkan dan ini adalah beritanya

Baru-baru ini projek GNU mengeluarkan keluaran versi baharu perpustakaan libmicrohttpd 0.9.74, A mewakili API mudah untuk kefungsian pelayan HTTP terbina dalam dalam aplikasi.

Perpustakaan menyokong protokol HTTP 1.1, TLS, pemprosesan tambahan permintaan POST, pengesahan asas dan penghadaman, IPv6, SHOUTcast, dan pelbagai kaedah untuk pemultipleksan sambungan (pilih, tinjauan pendapat, pthread, kumpulan benang), pada masa ini pelaksanaan mempunyai sokongan untuk pelbagai platform yang disokong, termasuk GNU / Linux, FreeBSD, OpenBSD , NetBSD, Solaris, Android , macOS, Win32, Symbian dan z / OS.

GNU libmicrohttpd dilahirkan kerana keperluan pengarangnya, yang pada masa itu memerlukan cara mudah untuk menambah pelayan HTTP serentak kepada projek lain. Alternatif yang sedia ada ialah bukan bebas, tidak masuk semula, kendiri, kualiti kod yang teruk atau gabungannya.

Daripada ciri-ciri yang menonjol untuk pelaksanaan ini:

  • Perpustakaan C: cepat dan kecil
  • API adalah ringkas, ekspresif dan kemasukan semula sepenuhnya.
  • Pelaksanaannya mematuhi HTTP 1.1
  • Pelayan HTTP boleh mendengar pada berbilang port
  • Mod Berbilang Benang: Jalankan pada Benang Aplikasi, Benang Dalaman, Kolam Benang dan Benang Setiap Sambungan
  • Tiga mod undian soket berbeza: pilih (), tinjauan pendapat () dan epoll
  • Bilangan minimum panggilan sistem untuk mengelakkan perubahan mod kernel / pengguna tambahan
  • Platform yang disokong termasuk GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris dan z / OS
  • Sokongan untuk IPv6
  • Sokongan SHOUTcast
  • Sokongan untuk pemprosesan tambahan data POST (pilihan)
  • Sokongan untuk pengesahan asas dan tersirat (pilihan)
  • Sokongan TLS (memerlukan libgnutls, pilihan)
  • Binari hanya kira-kira 32k (tanpa sokongan TLS dan ciri pilihan lain)

Ciri baharu utama libmicrohttpd 0.9.74

Dalam versi baharu ini yang dipersembahkan dari perpustakaan kita dapati itu menambah pelaksanaan eksperimen protokol WebSockets, yang belum diuji dengan baik dan dilumpuhkan secara lalai.

Kebaruan lain yang dikemukakan ialah pematuhan dengan spesifikasi pelaksanaan protokol HTTP 1.0 / 1.1 telah dipertingkatkanSelain itu, kod tersebut telah diolah semula untuk menyahkod permintaan yang berpecah-belah.

Ia juga diketengahkan bahawa menambahkan kod untuk mengembalikan ralat secara automatik yang berkaitan dengan permintaan potongan buruk, saiz data yang terlalu besar dan tetapan pengepala Panjang Kandungan yang salah.

Ia telah disedari pengoptimuman dalaman, contohnya, pengurusan memori yang dipertingkatkan, kecekapan cincang yang dipertingkatkan dan penghapusan penghuraian berulang bagi kaedah HTTP dan versi protokol.

Dan ia juga diperhatikan bahawa ia memberikan pengesahan yang lebih ketat bagi nilai pengepala HTTP, membenarkan penggunaan aksara tab dalam nilai pengepala respons, tetapi melarang penggunaan ruang dalam nilai pengepala tersuai.

Selain itu, kod untuk menjana pengepala HTTP sebagai tindak balas telah ditulis semula sepenuhnya dan ketepatan tamat masa telah ditingkatkan daripada saat kepada milisaat.

Menambahkan pilihan binaan –enable-sanitizers [= address, undefined, leak, user-poison] untuk mendayakan mod pengesanan masalah secara terpilih dalam kod.

Perihalan ciri Doxy yang diperbetulkan, diperjelas, diperluas dan dipertingkatkan, kini menyebut bahawa lebih mudah untuk mempelajari MHD hanya dengan membaca tajuk.

Perubahan lain yang menonjol dalam versi baru ini:

  • Penerangan fungsi yang dipertingkatkan dalam fail pengepala microhttpd.h.
  • fungsi API ditambah MHD_get_reason_phrase_len_for () dan MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS bendera, MHD_get_connection_info (), serta maklum balas bendera MHD_CONNECTION_INFO_HTTP_STATUS, dan jawapan MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Menambah fail projek untuk pemasangan dalam MSVC.
  • Pembentukan pengepala respons telah ditulis semula sepenuhnya. Pelaksanaan baharu adalah lebih teguh, lebih mudah diselenggara dan boleh dikembangkan serta lebih baik mengikut spesifikasi HTTP RFC.
  • Peningkatan prestasi: Kini versi HTTP dan kaedah permintaan dinyahkod sekali sahaja (sebelum ini MHD menggunakan banyak perbandingan rentetan

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya mengenai keluaran ini, anda boleh merujuk manual pengguna dan maklumat lain di tapak webnya.

Pautan ini.