Dự án GNU đã phát hành libmicrohttpd 0.9.74, một API đơn giản để nhúng chức năng máy chủ HTTP vào các ứng dụng. Thư viện hỗ trợ HTTP 1.1, TLS, xử lý yêu cầu POST tăng dần, xác thực cơ bản và mã hóa, IPv6, SHOUTcast và nhiều phương thức ghép kênh kết nối khác nhau (select, poll, pthread, thread pool). Các nền tảng được hỗ trợ bao gồm: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOSHỗ trợ Win32, Symbian và z/OS. Thư viện được phân phối theo giấy phép LGPL 2.1+.
Trong phiên bản mới:
- Một triển khai thử nghiệm của giao thức WebSockets đã được thêm vào, giao thức này chưa được kiểm tra kỹ lưỡng và bị tắt theo mặc định.
- Cải thiện việc tuân thủ các thông số kỹ thuật triển khai giao thức HTTP 1.0/1.1.
- Mã để giải mã các yêu cầu phân đoạn đã được làm lại.
- Mã tạo tiêu đề HTTP khi phản hồi đã được viết lại hoàn toàn.
- Đã thêm mã để tự động trả về các lỗi liên quan đến các yêu cầu được phân đoạn không chính xác, kích thước dữ liệu quá lớn và cài đặt tiêu đề Độ dài nội dung không chính xác.
- Độ chính xác của việc cài đặt thời gian chờ đã được tăng từ giây lên mili giây.
- Tối ưu hóa nội bộ đã được thực hiện, chẳng hạn như quản lý bộ nhớ được cải thiện, tăng hiệu quả băm và loại bỏ phân tích cú pháp lặp lại của phiên bản giao thức và phương thức HTTP.
- Cung cấp xác thực chặt chẽ hơn các giá trị tiêu đề HTTP, cho phép sử dụng các 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.
- Đã thêm tùy chọn xây dựng '—enable-sanitizers[=address,unknown,leak,user-poison]' để kích hoạt có chọn lọc các chế độ nhằm phát hiện sự cố trong mã.
- Đã thêm tệp dự án để xây dựng trong MSVC.
Nguồn: opennet.ru
