টি এল; ডিআর
সারসংক্ষেপ; আপনার যদি প্রেরণ করতে বাইনারি (অ-আলফানিউমারিক) ডেটা (বা একটি উল্লেখযোগ্য আকারের পেডলোড) থাকে, ব্যবহার করুন multipart/form-data
। অন্যথায়, ব্যবহার করুন application/x-www-form-urlencoded
।
আপনি যে মাইম টাইমগুলি উল্লেখ করেছেন তা Content-Type
হ'ল এইচটিটিপি পোস্টের অনুরোধের জন্য দুটি শিরোনাম যা ব্যবহারকারী-এজেন্ট (ব্রাউজারগুলি) সমর্থন করে। এই জাতীয় অনুরোধগুলির উভয়ের উদ্দেশ্য হ'ল সার্ভারে নাম / মান জোড়ার একটি তালিকা প্রেরণ করা। তথ্য প্রেরণ ও প্রকারের পরিমাণের উপর নির্ভর করে একটি পদ্ধতি অন্যটির চেয়ে বেশি দক্ষ হবে efficient কেন তা বুঝতে, আপনাকে প্রতিটি কভারের নীচে কী করছে তা দেখতে হবে।
কারণ application/x-www-form-urlencoded
, সার্ভারে প্রেরিত HTTP বার্তার মূল অংশটি মূলত একটি দৈত্য কোয়েরি স্ট্রিং - নাম / মান জোড়াটি এম্পারস্যান্ড ( &
) দ্বারা পৃথক করা হয় , এবং নামগুলি সমান চিহ্ন ( =
) দ্বারা পৃথক করা হয় । এর উদাহরণ হ'ল:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
স্পেসিফিকেশন অনুযায়ী :
[সংরক্ষিত এবং] অ-অক্ষরীয় অক্ষরগুলি `% এইচএইচ দ্বারা প্রতিস্থাপিত হয়, একটি শতাংশ চিহ্ন এবং দুটি হেক্সাডেসিমাল অক্ষর অক্ষরের ASCII কোড উপস্থাপন করে
এর অর্থ হ'ল আমাদের মানগুলির মধ্যে একটিতে থাকা প্রতিটি নন-আলফানামুরিক বাইটের জন্য এটি প্রতিনিধিত্ব করতে তিন বাইট লাগবে। বড় বাইনারি ফাইলগুলির জন্য, পেওলডকে তিনগুণ বাড়ানো অত্যন্ত অদক্ষ হতে চলেছে।
যেখানে যে multipart/form-data
আসে। নাম / মান জোড়াগুলি প্রেরণ এই পদ্ধতি দিয়ে, প্রতিটি জোড়া (অন্যান্য উত্তর দ্বারা বর্ণিত) একটি "অংশ" একটি এমআইএমই বার্তায় হিসাবে প্রতিনিধিত্ব করা হয়। অংশগুলি একটি নির্দিষ্ট স্ট্রিংয়ের সীমানা দ্বারা আলাদা করা হয় (বিশেষভাবে চয়ন করা যাতে এই সীমানা স্ট্রিংটি কোনও "মান" পেওলডে না ঘটে)। প্রতিটি অংশের নিজস্ব মাইম হেডারগুলির নিজস্ব সেট রয়েছে Content-Type
এবং বিশেষত Content-Disposition
, যা প্রতিটি অংশকে তার "নাম" দিতে পারে। প্রতিটি নাম / মান জোড়ার মান টুকরা হ'ল মাইম মেসেজের প্রতিটি অংশের পেডলোড। মান পেইডকে উপস্থাপন করার সময় মাইমেক স্পেক আমাদের আরও বিকল্প দেয় - আমরা ব্যান্ডউইথকে বাঁচানোর জন্য বাইনারি ডেটার আরও দক্ষ এনকোডিং চয়ন করতে পারি (যেমন বেস 64৪ বা এমনকি কাঁচা বাইনারি)।
কেন multipart/form-data
সব সময় ব্যবহার করবেন না ? সংক্ষিপ্ত আলফানিউমেরিক মানগুলির জন্য (বেশিরভাগ ওয়েব ফর্মের মতো), মাইমির সমস্ত শিরোনাম যুক্ত করার ওভারহেড আরও দক্ষ বাইনারি এনকোডিং থেকে কোনও সঞ্চয়কে উল্লেখযোগ্যভাবে ছাড়িয়ে যাচ্ছে।