GNU libmicrohttpd 0.9.74가 이미 릴리스되었으며 이것이 뉴스입니다.

최근에 GNU 프로젝트가 릴리스를 발표했습니다. 라이브러리의 새 버전 libmicrohttpd 0.9.74, 응용 프로그램에 내장된 HTTP 서버 기능을 위한 간단한 API를 나타냅니다.

도서관 HTTP 1.1 프로토콜, TLS, POST 요청 증분 처리 지원, 기본 및 다이제스트 인증, IPv6, SHOUTcast 및 다양한 연결 다중화 방법(select, poll, pthread, 스레드 풀), 현재 구현은 GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android를 포함한 다양한 지원 플랫폼을 지원합니다. , macOS, Win32, Symbian 및 z/OS.

GNU libmicrohttpd는 당시 다른 프로젝트에 동시 HTTP 서버를 쉽게 추가할 수 있는 방법이 필요했던 작성자의 필요로 인해 탄생했습니다. 기존 대안은 자유롭지 않거나, 재진입하지 않거나, 독립형이거나, 코드 품질이 좋지 않거나, 또는 이들의 조합이었습니다.

특성의 이 구현에서 눈에 띄는 것은 다음과 같습니다.

  • 라이브러리 C: 빠르고 작은
  • API는 단순하고 표현이 풍부하며 완전히 재진입합니다.
  • 구현은 HTTP 1.1을 준수합니다.
  • HTTP 서버는 여러 포트에서 수신 대기할 수 있습니다.
  • 다중 스레딩 모드: 응용 프로그램 스레드, 내부 스레드, 스레드 풀 및 연결당 스레드에서 실행
  • 세 가지 다른 소켓 폴링 모드: select(), poll() 및 epoll
  • 추가 커널/사용자 모드 변경을 피하기 위한 최소 시스템 호출 수
  • 지원되는 플랫폼에는 GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin(macOS), W32, OpenIndiana/
  • 솔라리스 및 z/OS
  • IPv6 지원
  • SHOUTcast 지원
  • POST 데이터의 증분 처리 지원(선택 사항)
  • 기본 및 암시적 인증 지원(선택 사항)
  • TLS 지원(libgnutls 필요, 선택 사항)
  • 바이너리는 약 32k에 불과합니다(TLS 지원 및 기타 선택적 기능 제외).

libmicrohttpd 0.9.74의 주요 새 기능

라이브러리에서 제공되는 이 새 버전에서는 다음을 찾을 수 있습니다. WebSockets 프로토콜의 실험적 구현을 ​​추가했습니다. 아직 제대로 테스트되지 않았으며 기본적으로 비활성화되어 있습니다.

제시되는 또 다른 참신함은 HTTP 1.0 / 1.1 프로토콜 구현 사양에 대한 준수가 향상되었습니다.또한 코드가 조각난 요청을 디코딩하도록 재작업되었습니다.

또한 잘못된 청크 요청과 관련된 오류를 자동으로 반환하는 코드 추가, 너무 큰 데이터 크기 및 잘못된 Content-Length 헤더 설정.

실현되었습니다 내부 최적화, 예를 들어, 향상된 메모리 관리, 향상된 해시 효율성, HTTP 메서드 및 프로토콜 버전의 반복적인 구문 분석 제거 등이 있습니다.

또한 HTTP 헤더 값에 대한 더 엄격한 유효성 검사를 제공하고 응답 헤더 값에 탭 문자 사용을 허용했지만 사용자 정의 헤더 값에 공백 사용을 금지했습니다.

그 외에도 응답으로 HTTP 헤더를 생성하는 코드가 완전히 재작성되었습니다. 시간 초과 정밀도가 초에서 밀리초로 증가했습니다.

코드에서 문제 감지 모드를 선택적으로 활성화하기 위해 빌드 옵션 –enable-sanitizers [= address, undefined, leak, user-poison]를 추가했습니다.

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는 많은 문자열 비교를 사용했습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면 이 릴리스에 대해 웹 사이트에서 사용자 설명서 및 기타 정보를 참조할 수 있습니다.

링크는 이쪽입니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.