GNU libmicrohttpd 0.9.74 telah dirilis dan ini adalah beritanya

Baru-baru ini proyek GNU merilis rilis versi baru perpustakaan libmicrohttpd 0.9.74, A mewakili API sederhana untuk fungsionalitas server HTTP bawaan dalam aplikasi.

Perpustakaan mendukung protokol HTTP 1.1, TLS, pemrosesan inkremental permintaan POST, otentikasi basic dan digest, IPv6, SHOUTcast, dan berbagai metode koneksi multiplexing (select, poll, pthread, thread pool), saat ini implementasinya telah mendukung berbagai platform yang didukung, termasuk GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian, dan z / OS.

GNU libmicrohttpd lahir karena kebutuhan pembuatnya, yang pada saat itu membutuhkan cara mudah untuk menambahkan server HTTP bersamaan ke proyek lain. Alternatif yang ada adalah non-free, non-reentrant, standalone, kualitas kode yang buruk, atau kombinasinya.

Dari ciri-cirinya yang menonjol dari implementasi ini:

  • Perpustakaan C: cepat dan kecil
  • API sederhana, ekspresif, dan sepenuhnya masuk kembali.
  • Implementasinya sesuai dengan HTTP 1.1
  • Server HTTP dapat mendengarkan di banyak port
  • Beberapa Mode Ulir: Jalankan di Utas Aplikasi, Utas Internal, Kumpulan Utas, dan Utas Per Koneksi
  • Tiga mode polling soket yang berbeda: pilih (), poll (), dan epoll
  • Jumlah minimum panggilan sistem untuk menghindari perubahan kernel / mode pengguna tambahan
  • Platform yang didukung termasuk GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris dan z / OS
  • Dukungan untuk IPv6
  • dukungan SHOUTcast
  • Dukungan untuk pemrosesan tambahan data POST (opsional)
  • Dukungan untuk otentikasi dasar dan implisit (opsional)
  • Dukungan TLS (memerlukan libgnutl, opsional)
  • Biner hanya sekitar 32k (tanpa dukungan TLS dan fitur opsional lainnya)

Fitur baru utama dari libmicrohttpd 0.9.74

Dalam versi baru yang disajikan dari perpustakaan ini, kita dapat menemukan bahwa menambahkan implementasi eksperimental protokol WebSockets, yang belum diuji dengan baik dan dinonaktifkan secara default.

Kebaruan lain yang dihadirkan adalah kepatuhan dengan spesifikasi implementasi protokol HTTP 1.0 / 1.1 ditingkatkanSelain itu, kode tersebut dikerjakan ulang untuk memecahkan kode permintaan yang terfragmentasi.

Itu juga disorot itu menambahkan kode untuk secara otomatis mengembalikan kesalahan yang terkait dengan permintaan chunked yang buruk, ukuran data terlalu besar dan pengaturan header Content-Length yang salah.

Itu sudah terwujud optimasi internal, misalnya, peningkatan manajemen memori, peningkatan efisiensi hash, dan penghapusan penguraian berulang dari metode HTTP dan versi protokol.

Dan juga dicatat bahwa itu memberikan validasi yang lebih ketat dari nilai header HTTP, mengizinkan penggunaan karakter tab dalam nilai header respons, tetapi melarang penggunaan spasi dalam nilai header kustom.

Selain itu, kode untuk menghasilkan tajuk HTTP sebagai tanggapan telah sepenuhnya ditulis ulang dan ketepatan waktu habis telah ditingkatkan dari detik menjadi milidetik.

Menambahkan opsi build –enable-sanitizers [= address, undefined, leak, user-poison] untuk secara selektif mengaktifkan mode deteksi masalah dalam kode.

Memperbaiki, mengklarifikasi, memperluas, dan meningkatkan deskripsi fungsi Doxy, sekarang menyebutkan bahwa mempelajari MHD seharusnya jauh lebih mudah hanya dengan membaca judulnya.

Dari perubahan lain yang menonjol di versi baru ini:

  • Deskripsi fungsi yang ditingkatkan dalam file header microhttpd.h.
  • fungsi API menambahkan 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 tanggapan bendera MHD_CONNECTION_INFO_HTTP_STATUS, dan tanggapan MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Menambahkan file proyek untuk perakitan di MSVC.
  • Formasi tajuk respons ditulis ulang sepenuhnya. Implementasi baru lebih kuat, lebih mudah dirawat dan diperluas, dan lebih baik mengikuti spesifikasi HTTP RFC.
  • Peningkatan kinerja: Versi HTTP dan metode permintaan sekarang hanya didekodekan sekali (sebelumnya MHD menggunakan banyak perbandingan string

Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya tentang rilis ini, Anda dapat berkonsultasi dengan manual pengguna dan informasi lain di situs webnya.

Tautannya adalah ini.