বিরতি-সক্ষম ডাউনলোডগুলি কীভাবে কাজ করে?


19

আমি ডেটা ডাউনলোডের জন্য ইন্টারনেট ডাউনলোড ম্যানেজার (আইডিএম) ব্যবহার করি এবং আমি লক্ষ্য করেছি যে এটি ডাউনলোডের অগ্রগতি উইন্ডোতে এটি ডাউনলোড ডাউনলোডকে বিরতি-সক্ষম (পুনরায় শুরু-সক্ষম) কিনা তা দেখায়। সাধারণত, ফাইল-ভাগ করে নেওয়ার সাইটগুলি সংযোগটি ভেঙে গেলে স্থানান্তর পুনরায় শুরু করার অনুমতি দেয় না।

সুতরাং প্রশ্নটি হ'ল: এটি কীভাবে কাজ করে? এটি কি কিছু কনফিগারেশন যা সেভের উপর সম্পন্ন হয়েছে? টরেন্ট ডাউনলোডগুলির থেকে এটি কীভাবে আলাদা হয়, যেখানে ডাউনলোডটি সর্বদা পুনরায় শুরু-সক্ষম হয়।

উত্তর:


27

কোডিং দৃষ্টিকোণ থেকে, ডাউনলোডটি এইচটিটিপি প্রতিক্রিয়া প্রবাহের অন্তর্ভুক্ত কেবল একটি বাইট অ্যারে।

HTTP- র 1.1 প্রোটোকল (পৃষ্ঠা 30 দেখুন) শিরোলেখ 'বিন্যাস' বলা হয়, যা বাইট অফসেট এবং প্রতিক্রিয়া অনুরোধ দৈর্ঘ্য নির্দিষ্ট করার অনুরোধ দেয় একটি ক্ষেত্র অন্তর্ভুক্ত করা হয়েছে।

সুতরাং সংক্ষেপে আপনি বলতে পারেন, "আমাকে এই ইউআরএলটিতে এইচটিটিপি অবজেক্ট দিন, তবে আমি কেবল এটির 1024 তম - 4096 তম বাইট চাই"। এরপরে ক্লায়েন্ট ব্রাউজারটি ইতিমধ্যে ডাউনলোড করা ফাইলের অংশে বাইট স্ট্রিম যুক্ত করে। ইতোমধ্যে ডাউনলোড করা ফাইলটির দৈর্ঘ্য যাচাই করে ক্লায়েন্টটি এটি আবার কোথায় শুরু করতে হবে তা বলতে পারে এবং প্রয়োজনীয় অফসেট নির্ধারণের জন্য এটি বৃদ্ধি করে।

আপনার ডাউনলোড ম্যানেজার কীভাবে বলতে পারেন, এটি একটি HTTP "হেড" অনুরোধ প্রেরণ করে। যদি প্রতিক্রিয়া কোডটি 206 (আংশিক সামগ্রী) হয়, তবে http স্ট্রিম পুনরায় শুরুটিকে সমর্থন করে।


এফটিপি ফাইল স্থানান্তর করার জন্য একটি সাধারণত ব্যবহৃত প্রোটোকল। এটি প্রাথমিক মাধ্যম হিসাবে ব্যবহৃত হত, যদিও এখন এইচটিটিপি সম্ভবত আরও সাধারণ।
ChrisInEdmonton

এফটিপি মূলত একই কনস্ট্রাক্ট ব্যবহার করে, যদিও আমি কোড ব্যবহার করে কোড প্রয়োগ করার চেষ্টা করার আগে আমাকে সুনির্দিষ্ট বিষয়গুলি সন্ধান করতে হবে।
ফ্রাঙ্ক থমাস

1

এটি একটি পার্সেন্ট্যান্ট কুকি ব্যবহার করে পরিচালনা করা যেতে পারে , সেশন কুকির সাথে বিভ্রান্ত না হওয়ার জন্য বা সাইটটি এএসপি.নেটে তৈরি করা থাকলে আপনি [ভিউস্টেট] ব্যবহার করতে পারেন, তবে এটি ভাল অনুশীলন নয়। ফ্র্যাঙ্ক থমাসের সেরা উত্তর রয়েছে।


1
আমি নিশ্চিত নই যে কারণটির উত্তরটি হ্রাস পেয়েছে তাই আমি এটিকে উত্সাহিত করেছি।
রামহাউন্ড

@ ফ্র্যাঙ্কথোমাস, আমি কেবলমাত্র আমাদের প্রবীণ বিকাশকারীর সাথে কিছু তথ্য নিশ্চিত করেছি এবং তিনি বলেছিলেন যে আপনি ব্রাউজার ভিত্তিক ডাউনলোডারের মাধ্যমে ডাউনলোডটি ট্র্যাকিং এবং পুনরায় শুরু করতে ব্যবহৃত বাইট অ্যারের সূচক তথ্য সংরক্ষণ করতে 'পার্সেন্ট্যান্ট কুকি বা ভিউস্টেট ব্যবহার করতে পারেন, তবে এটি ছিল না একটি ভাল অনুশীলন সাধারণত, বড় আকারের পুনঃসূচনাযোগ্য ফাইলগুলির জন্য, যেমন একটি এমএস পণ্য হিসাবে আপনি ডাউনলোড ম্যানেজার অ্যাপ্লিকেশনটি ডাউনলোড করেন এবং এটি আপনার কথা মতো ঠিক কাজ করবে। আমি আপনার উত্তর upvated হয়েছে।
জোশ ক্যাম্পবেল

এই উত্তরটি অর্থহীন বলে মনে হচ্ছে। ফাইলটি কতটা ডাউনলোড হয়েছে তা নির্ধারণ করার সমস্যা নেই; ক্লায়েন্ট এটি ইতিমধ্যে জানে। আপনি কুকি ব্যবহার করে এটি সার্ভারে ফিরে যোগাযোগ করতে পারেন, তবে আরও ভাল পন্থা রয়েছে। শিরোনাম, জিইটি বা পোষ্টের প্যারাম ইত্যাদি The প্রশ্নটি সার্ভারের কাছে তথ্য কীভাবে পাঠানো যায় তা নয়, ফাইল স্থানান্তর কীভাবে পুনরায় শুরু করা হয় তা জিজ্ঞাসা করছে।
ChrisInEdmonton

ওপি জিজ্ঞাসা করেছিল যে এটি কীভাবে কাজ করে এবং আমি তাকে কুকিজের দিকে নির্দেশ করেছিলাম যাতে সে আরও গবেষণা করতে পারে। এক ডজন বিভিন্ন উপায় রয়েছে যা বিকাশকারী পুনরায় শুরুযোগ্য ডাউনলোডার তৈরি করতে পারে। আমি স্টার্ট-স্টপ সূচকের মাধ্যমে ডাউনলোডের স্থিতি ট্র্যাক করতে ক্লায়েন্টের কুকিগুলি ব্যবহার করে এটি করতে পেরেছিলাম এবং কতটা ডাউনলোড হয়েছিল তা গণনা করতে ব্যাকএন্ডে সি # ব্যবহার করে (সূচী X থেকে সূচক Y তে) এবং তারপরে Y থেকে পুনরায় শুরু হয়েছিল A একটি ডেস্কটপ ডাউনলোড ম্যানেজার ঠিক একই জিনিসটি করে, কেবল এটি তার তথ্য কোনও পাঠ্য ফাইল বা ডাটাবেসে সংরক্ষণ করে। এটি স্ট্যাকওভারফ্লো নয়, আমি উত্স কোড লিখছি না।
জোশ ক্যাম্পবেল

@ জোশ ক্যাম্পবেল, সমস্যাটি হ'ল আপনার সমাধানটি কেবল আপনার নির্দিষ্ট ক্লায়েন্ট সফ্টওয়্যার এবং সার্ভার সফ্টওয়্যার ব্যবহারকারী লোকদের জন্যই কাজ করবে। ফ্রাঙ্ক তার উত্তরে উল্লেখ করেছে এবং এই সমস্যাটি সমাধানের মানক উপায় রয়েছে এবং কাস্টম-কোডের দরকার নেই। অতিরিক্তভাবে, আপনার উত্তর সেই প্রক্রিয়াটি নির্দেশ করে না যার মাধ্যমে কিছু সাইটগুলি ওপিকে ডাউনলোডগুলি আবার শুরু করার অনুমতি দেয় এবং তাই প্রশ্নের উত্তর দেয় না। এজন্য আমি মন্তব্য করেছি।
ChrisInEdmonton
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.