Το GNU libmicrohttpd 0.9.74 έχει ήδη κυκλοφορήσει και αυτά είναι τα νέα του

Πρόσφατα το έργο GNU κυκλοφόρησε την κυκλοφορία του τη νέα έκδοση της βιβλιοθήκης libmicrohttpd 0.9.74, Ένα που αντιπροσωπεύει ένα απλό API για ενσωματωμένη λειτουργικότητα διακομιστή HTTP σε εφαρμογές.

Βιβλιοθήκη υποστηρίζει πρωτόκολλο HTTP 1.1, TLS, επαυξητική επεξεργασία αιτημάτων POST, βασικός και συνοπτικός έλεγχος ταυτότητας, IPv6, SHOUTcast και διάφορες μέθοδοι για πολυπλεξία συνδέσεων (επιλογή, δημοσκόπηση, pthread, συγκέντρωση νημάτων), επί του παρόντος η υλοποίηση υποστηρίζει διάφορες υποστηριζόμενες πλατφόρμες, συμπεριλαμβανομένων των GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian και z / OS.

Το GNU libmicrohttpd γεννήθηκε λόγω της ανάγκης του συγγραφέα του, ο οποίος εκείνη την εποχή χρειαζόταν έναν εύκολο τρόπο για να προσθέσει έναν ταυτόχρονο διακομιστή HTTP σε άλλα έργα. Οι υπάρχουσες εναλλακτικές λύσεις ήταν μη δωρεάν, χωρίς επανεισαγωγή, αυτόνομες, τρομερής ποιότητας κώδικα ή συνδυασμός τους.

Από τα χαρακτηριστικά που ξεχωρίζουν σε αυτή την υλοποίηση:

  • Βιβλιοθήκη Γ: γρήγορη και μικρή
  • Το API είναι απλό, εκφραστικό και πλήρως επανεισαγωγή.
  • Η υλοποίηση είναι συμβατή με το HTTP 1.1
  • Ο διακομιστής HTTP μπορεί να ακούσει σε πολλές θύρες
  • Πολλαπλές λειτουργίες νήματος: Εκτέλεση σε νήμα εφαρμογής, εσωτερικό νήμα, ομάδα νημάτων και νήμα ανά σύνδεση
  • Τρεις διαφορετικές λειτουργίες socket polling: επιλογή (), poll () και epoll
  • Ελάχιστος αριθμός κλήσεων συστήματος για αποφυγή πρόσθετων αλλαγών στον πυρήνα/τη λειτουργία χρήστη
  • Οι υποστηριζόμενες πλατφόρμες περιλαμβάνουν GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris και z / OS
  • Υποστήριξη για IPv6
  • Υποστήριξη SHOUTcast
  • Υποστήριξη για σταδιακή επεξεργασία δεδομένων POST (προαιρετικό)
  • Υποστήριξη για βασικό και σιωπηρό έλεγχο ταυτότητας (προαιρετικό)
  • Υποστήριξη TLS (απαιτείται libgnutls, προαιρετικό)
  • Το δυαδικό είναι μόνο περίπου 32k (χωρίς υποστήριξη TLS και άλλες προαιρετικές δυνατότητες)

Κύρια νέα χαρακτηριστικά του libmicrohttpd 0.9.74

Σε αυτή τη νέα έκδοση που παρουσιάζεται από τη βιβλιοθήκη μπορούμε να το βρούμε πρόσθεσε μια πειραματική υλοποίηση του πρωτοκόλλου WebSockets, που δεν έχει δοκιμαστεί ακόμα καλά και είναι απενεργοποιημένο από προεπιλογή.

Μια άλλη καινοτομία που παρουσιάζεται είναι ότι βελτιώθηκε η συμμόρφωση με τις προδιαγραφές υλοποίησης του πρωτοκόλλου HTTP 1.0 / 1.1Επιπλέον, ο κώδικας επεξεργάστηκε εκ νέου για την αποκωδικοποίηση κατακερματισμένων αιτημάτων.

Τονίζεται επίσης ότι προστέθηκε κώδικας για αυτόματη επιστροφή σφαλμάτων που σχετίζονται με κακώς τεμαχισμένα αιτήματα, πολύ μεγάλο μέγεθος δεδομένων και εσφαλμένη ρύθμιση κεφαλίδας Μήκος περιεχομένου.

Έχει πραγματοποιηθεί εσωτερικές βελτιστοποιήσεις, για παράδειγμα, βελτιωμένη διαχείριση μνήμης, βελτιωμένη απόδοση κατακερματισμού και εξάλειψη της επαναλαμβανόμενης ανάλυσης της μεθόδου HTTP και της έκδοσης πρωτοκόλλου.

Σημειώνεται επίσης ότι παρείχε μια αυστηρότερη επικύρωση των τιμών της κεφαλίδας HTTP, επέτρεψε τη χρήση ενός χαρακτήρα καρτέλας στις τιμές της κεφαλίδας απόκρισης, αλλά απαγόρευσε τη χρήση διαστημάτων στις προσαρμοσμένες τιμές κεφαλίδας.

Εκτός αυτού, ο κώδικας για τη δημιουργία κεφαλίδων HTTP ως απόκριση έχει ξαναγραφεί πλήρως και η ακρίβεια χρονικού ορίου έχει αυξηθεί από δευτερόλεπτα σε χιλιοστά του δευτερολέπτου.

Προστέθηκε η επιλογή κατασκευής –enable-sanitizers [= διεύθυνση, απροσδιόριστη, διαρροή, δηλητήριο χρήστη] για την επιλεκτική ενεργοποίηση των τρόπων ανίχνευσης προβλημάτων στον κώδικα.

Διορθώθηκαν, διευκρινίστηκαν, διευρύνθηκαν και βελτιώθηκαν οι περιγραφές των χαρακτηριστικών του Doxy, αναφέροντας τώρα ότι θα πρέπει να είναι πολύ πιο εύκολο να μάθετε MHD διαβάζοντας μόνο τις επικεφαλίδες.

Από τις άλλες αλλαγές που ξεχωρίζουν σε αυτήν τη νέα έκδοση:

  • Βελτιωμένες περιγραφές λειτουργιών στο αρχείο κεφαλίδας microhttpd.h.
  • API λειτουργίες προστίθενται MHD_get_reason_phrase_len_for () και MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS σημαία, MHD_get_connection_info (), καθώς και MHD_CONNECTION_INFO_HTTP_STATUS αποκρίσεις σημαίας, και αποκρίσεις MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Προστέθηκε αρχείο έργου για συναρμολόγηση σε MSVC.
  • Ο σχηματισμός κεφαλίδας απόκρισης ξαναγράφτηκε πλήρως. Η νέα εφαρμογή είναι πιο στιβαρή, πιο εύκολη στη συντήρηση και επεκτάσιμη και ακολουθεί καλύτερα τις προδιαγραφές RFC HTTP.
  • Βελτιώσεις απόδοσης: Τώρα η έκδοση HTTP και η μέθοδος αιτήματος αποκωδικοποιούνται μόνο μία φορά (παλαιότερα το MHD χρησιμοποιούσε πολλές συγκρίσεις συμβολοσειρών

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό σχετικά με αυτήν την έκδοση, μπορείτε να συμβουλευτείτε τα εγχειρίδια χρήσης και άλλες πληροφορίες στον ιστότοπό της.

Ο σύνδεσμος είναι αυτό.


Το περιεχόμενο του άρθρου συμμορφώνεται με τις αρχές μας συντακτική ηθική. Για να αναφέρετε ένα σφάλμα κάντε κλικ Aquí.

Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί.

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

bool (αλήθεια)