GNU libmicrohttpd 0.9.74 đã được phát hành và đây là những tin tức về nó

Gần đây dự án GNU đã phát hành bản phát hành của phiên bản mới của thư viện libmicrohttpd 0.9.74, Một API đại diện cho một chức năng máy chủ HTTP tích hợp trong các ứng dụng.

Thư viện hỗ trợ giao thức HTTP 1.1, TLS, xử lý gia tăng yêu cầu POST, xác thực cơ bản và thông báo, IPv6, SHOUTcast và các phương pháp ghép kênh khác nhau (chọn, thăm dò ý kiến, pthread, nhóm luồng), hiện việc triển khai có hỗ trợ cho các nền tảng được hỗ trợ khác nhau, bao gồm GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian và z / OS.

GNU libmicrohttpd ra đời do nhu cầu của tác giả của nó, người vào thời điểm đó cần một cách dễ dàng để thêm một máy chủ HTTP đồng thời vào các dự án khác. Các lựa chọn thay thế hiện có là không miễn phí, không sử dụng lại, độc lập, chất lượng mã tồi hoặc kết hợp của chúng.

Trong số các đặc điểm nổi bật với việc triển khai này:

  • Thư viện C: nhanh và nhỏ
  • API rất đơn giản, dễ hiểu và hoàn toàn có thể thử lại.
  • Việc triển khai tuân thủ HTTP 1.1
  • Máy chủ HTTP có thể nghe trên nhiều cổng
  • Nhiều chế độ phân luồng: Chạy trên Chủ đề ứng dụng, Chủ đề nội bộ, Nhóm luồng và Chủ đề trên mỗi kết nối
  • Ba chế độ thăm dò ổ cắm khác nhau: select (), thăm dò () và epoll
  • Số lượng lệnh gọi hệ thống tối thiểu để tránh thay đổi hạt nhân / chế độ người dùng bổ sung
  • Các nền tảng được hỗ trợ bao gồm GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris và z / OS
  • Hỗ trợ cho IPv6
  • Hỗ trợ SHOUTcast
  • Hỗ trợ xử lý gia tăng dữ liệu POST (tùy chọn)
  • Hỗ trợ xác thực cơ bản và ngầm định (tùy chọn)
  • Hỗ trợ TLS (yêu cầu libgnutls, tùy chọn)
  • Hệ nhị phân chỉ khoảng 32k (không hỗ trợ TLS và các tính năng tùy chọn khác)

Các tính năng mới chính của libmicrohttpd 0.9.74

Trong phiên bản mới này được giới thiệu từ thư viện, chúng tôi có thể tìm thấy rằng đã thêm một triển khai thử nghiệm của giao thức WebSockets, mà vẫn chưa được kiểm tra tốt và bị tắt theo mặc định.

Một điểm mới lạ khác được trình bày là việc tuân thủ các thông số kỹ thuật triển khai giao thức HTTP 1.0 / 1.1 đã được cải thiệnNgoài ra, mã đã được làm lại để giải mã các yêu cầu bị phân mảnh.

Nó cũng được nhấn mạnh rằng đã thêm mã để tự động trả về các lỗi liên quan đến các yêu cầu phân đoạn không hợp lệ, kích thước dữ liệu quá lớn và cài đặt tiêu đề Nội dung-Độ dài không chính xác.

Nó đã được nhận ra tối ưu hóa nội bộ, ví dụ, cải thiện quản lý bộ nhớ, cải thiện hiệu quả băm và loại bỏ phân tích cú pháp lặp đi lặp lại của phương thức HTTP và phiên bản giao thức.

Và cũng lưu ý rằng nó đã cung cấp một xác thực chặt chẽ hơn các giá trị tiêu đề HTTP, cho phép sử dụng ký tự tab trong các giá trị tiêu đề phản hồi, nhưng cấm sử dụng khoảng trắng trong các giá trị tiêu đề tùy chỉnh.

Bên cạnh đó, mã để tạo tiêu đề HTTP trong phản hồi đã được viết lại hoàn toàn và độ chính xác của thời gian chờ đã được tăng từ giây lên mili giây.

Đã thêm tùy chọn xây dựng –enable-sanitizers [= địa chỉ, không xác định, rò rỉ, chất độc người dùng] để bật có chọn lọc các chế độ phát hiện sự cố trong mã.

Đã sửa, làm rõ, mở rộng và cải thiện các mô tả của các hàm Doxy, giờ đây đề cập đến việc học MHD dễ dàng hơn nhiều chỉ bằng cách đọc các tiêu đề.

Các thay đổi khác nổi bật trong phiên bản mới này:

  • Cải thiện mô tả chức năng trong tệp tiêu đề microhttpd.h.
  • chức năng API thêm MHD_get_reason_phrase_len_for () và MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS cờ, MHD_get_connection_info (), cũng như phản ứng cờ MHD_CONNECTION_INFO_HTTP_STATUS, và phản ứng MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Đã thêm tệp dự án để lắp ráp trong MSVC.
  • Sự hình thành tiêu đề phản hồi đã được viết lại hoàn toàn. Việc triển khai mới mạnh mẽ hơn, dễ bảo trì và có thể mở rộng hơn, đồng thời tuân theo các thông số kỹ thuật RFC HTTP tốt hơn.
  • Cải tiến hiệu suất: Phiên bản HTTP và phương thức yêu cầu hiện chỉ được giải mã một lần (trước đây MHD đã sử dụng nhiều so sánh chuỗi

Cuối cùng nếu bạn muốn biết thêm về nó về bản phát hành này, bạn có thể tham khảo hướng dẫn sử dụng và thông tin khác trên trang web của nó.

Liên kết là cái này.