সম্প্রতি GNU প্রকল্পের রিলিজ মুক্তি লাইব্রেরির নতুন সংস্করণ libmicrohttpd 0.9.74, অ্যাপ্লিকেশনগুলিতে অন্তর্নির্মিত HTTP সার্ভার কার্যকারিতার জন্য একটি সাধারণ API প্রতিনিধিত্ব করে।
গ্রন্থাগার HTTP 1.1 প্রোটোকল, TLS, POST অনুরোধ ক্রমবর্ধমান প্রক্রিয়াকরণ সমর্থন করে, মৌলিক এবং ডাইজেস্ট প্রমাণীকরণ, IPv6, SHOUTcast, এবং মাল্টিপ্লেক্সিং সংযোগের বিভিন্ন পদ্ধতি (নির্বাচন, পোল, pthread, থ্রেড পুল), বর্তমানে বাস্তবায়নে GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android সহ বিভিন্ন সমর্থিত প্ল্যাটফর্মের জন্য সমর্থন রয়েছে , macOS, Win32, Symbian, এবং z/OS।
GNU libmicrohttpd এর লেখকের প্রয়োজনের কারণে জন্ম হয়েছিল, যাদের সেই সময়ে অন্যান্য প্রকল্পে একটি সমবর্তী HTTP সার্ভার যোগ করার একটি সহজ উপায় প্রয়োজন ছিল। বিদ্যমান বিকল্পগুলি ছিল অ-মুক্ত, অ-পুনঃপ্রবেশকারী, স্বতন্ত্র, ভয়ানক কোড গুণমান, বা এর সংমিশ্রণ।
বৈশিষ্ট্য যা এই বাস্তবায়নের জন্য আলাদা:
- লাইব্রেরি সি: দ্রুত এবং ছোট
- এপিআই সহজ, অভিব্যক্তিপূর্ণ এবং সম্পূর্ণরূপে পুনঃপ্রবেশ।
- বাস্তবায়ন HTTP 1.1 অনুগত
- HTTP সার্ভার একাধিক পোর্টে শুনতে পারে
- একাধিক থ্রেডিং মোড: অ্যাপ্লিকেশন থ্রেড, অভ্যন্তরীণ থ্রেড, থ্রেড পুল এবং সংযোগ প্রতি থ্রেড চালান
- তিনটি ভিন্ন সকেট পোলিং মোড: নির্বাচন (), পোল (), এবং ইপোল
- অতিরিক্ত কার্নেল/ব্যবহারকারী মোড পরিবর্তন এড়াতে ন্যূনতম সংখ্যক সিস্টেম কল
- সমর্থিত প্ল্যাটফর্মগুলির মধ্যে রয়েছে 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 প্রোটোকল বাস্তবায়ন স্পেসিফিকেশনের সাথে সম্মতি উন্নত করা হয়েছেএছাড়াও, খণ্ডিত অনুরোধগুলিকে ডিকোড করার জন্য কোডটি পুনরায় কাজ করা হয়েছিল।
এটিও হাইলাইট করা হয় খারাপ খণ্ডিত অনুরোধের সাথে সম্পর্কিত ত্রুটিগুলি স্বয়ংক্রিয়ভাবে ফেরাতে কোড যোগ করা হয়েছে, খুব বড় ডেটা সাইজ এবং ভুল কন্টেন্ট-লেন্থ হেডার সেটিং।
এটা উপলব্ধি করা হয়েছে অভ্যন্তরীণ অপ্টিমাইজেশান, উদাহরণস্বরূপ, উন্নত মেমরি ব্যবস্থাপনা, উন্নত হ্যাশ দক্ষতা, এবং HTTP পদ্ধতি এবং প্রোটোকল সংস্করণের পুনরাবৃত্তিমূলক পার্সিং বাদ দেওয়া।
এবং এটিও উল্লেখ করা হয়েছে যে এটি HTTP হেডার মানগুলির একটি কঠোর বৈধতা প্রদান করেছে, প্রতিক্রিয়া হেডার মানগুলিতে একটি ট্যাব অক্ষর ব্যবহারের অনুমতি দিয়েছে, কিন্তু কাস্টম হেডার মানগুলিতে স্পেস ব্যবহার নিষিদ্ধ করেছে৷
এর পাশাপাশি, প্রতিক্রিয়া হিসাবে HTTP শিরোনাম তৈরি করার কোডটি সম্পূর্ণরূপে পুনরায় লেখা হয়েছে এবং টাইমআউট নির্ভুলতা সেকেন্ড থেকে মিলিসেকেন্ডে বৃদ্ধি করা হয়েছে।
কোডে সমস্যা শনাক্তকরণ মোড বেছে নেওয়ার জন্য বিল্ড বিকল্প যোগ করা হয়েছে –এনেবল-স্যানিটাইজার [= ঠিকানা, অনির্ধারিত, লিক, ইউজার-পয়জন]।
ডক্সি ফাংশনগুলির বর্ণনা সংশোধন, স্পষ্ট, প্রসারিত এবং উন্নত করা হয়েছে, এখন উল্লেখ করা হয়েছে যে শুধুমাত্র শিরোনামগুলি পড়ে MHD শেখা আরও সহজ হওয়া উচিত।
এই নতুন সংস্করণে উপস্থিত অন্যান্য পরিবর্তনগুলির মধ্যে:
- microhttpd.h হেডার ফাইলে উন্নত ফাংশন বর্ণনা।
- এপিআই ফাংশন যোগ 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 অনেক স্ট্রিং তুলনা ব্যবহার করত
পরিশেষে আপনি যদি এটি সম্পর্কে আরও জানতে আগ্রহী হন এই রিলিজ সম্পর্কে, আপনি এর ওয়েবসাইটে ব্যবহারকারী ম্যানুয়াল এবং অন্যান্য তথ্যের সাথে পরামর্শ করতে পারেন।