মূলত, ওয়েবসাইটটি ব্রাউজারকে এটি করতে বলে কারণ এটি ঘটে। কখনও কখনও, কারণ ওয়েবসাইট বিকাশকারীরা সিদ্ধান্ত নেন যে তারা এই আচরণটি চান, উদাহরণস্বরূপ ফাইল শেয়ারিং সাইটগুলিতে সাধারণ common অন্য সময়, কারণ এটি যে কোনও সফ্টওয়্যারই ব্যবহার করে তার জন্য এটি একটি ডিফল্ট বিকল্প (যেমন ফোরাম বা ব্লগিং সফ্টওয়্যার)। কখনও কখনও এটি এমন হয় কারণ সাইট ডেভ তারা কী করছে তা কোনও ধারণা নেই।
Content-Disposition
এটি সাধারণত কারণ Content-Disposition
প্রতিক্রিয়াতে সাইটটি একটি শিরোনাম প্রেরণ করে । বিশেষত, এটি হয় inline
বা প্রেরণ করতে পারেন attachment
।
inline
যদি অন্যথায় নির্দিষ্ট না করা হয় তবে এটি ডিফল্ট এবং এর অর্থ ব্রাউজার যদি সক্ষম হয় তবে ব্রাউজার উইন্ডোর মধ্যে ফাইলটি খুলবে।
attachment
এর অর্থ ফাইলটি সর্বদা ডাউনলোড করা, ব্রাউজারের ভিতরে কখনও এটিকে খোলার চেষ্টা করবেন না।
আপনি যদি আপনার ব্রাউজারের বিকাশকারী সরঞ্জামগুলি খোলেন, আপনি দেখতে পাবেন যে নির্দিষ্ট লিঙ্কটি নিম্নলিখিত প্রতিক্রিয়া শিরোনামগুলি প্রেরণ করে:
Content-Disposition: attachment; filename="Schubert-Sonata-21-B-flat.pdf"
Content-Type: application/pdf
এটি ব্রাউজারকে সর্বদাattachment
ফাইল ( ) ডাউনলোড করতে Schubert-Sonata-21-B-flat.pdf
এবং URL থেকে অনুমানের পরিবর্তে ডিফল্ট ফাইলের নাম দিতে বলে tells অতিরিক্তভাবে, এটি ব্রাউজারকে বলে (সঠিকভাবে) যে এটি একটি application/pdf
ফাইল - তবে attachment
এটি ব্রাউজারটি ডাউনলোড করার পরেও ডিফল্ট হবে।
ইনলাইন হ্যান্ডলিংয়ের বিশদ
যখন কোনও Content-Disposition
ইনলাইন থাকে (বা অনির্দিষ্ট), ব্রাউজারটি ডিফল্ট এম্বেড থাকা দর্শকের মধ্যে ফাইলটি খোলার চেষ্টা করবে। এটি কেবল তখনই কাজ করে যখন ব্রাউজারটি জানবে যে এটি কোন ধরণের ফাইল, এবং ব্রাউজারটি কীভাবে এটি খুলতে জানে knows
প্রকার সনাক্তকরণ
ফাইলের ধরণটি একটি Content-Type
শিরোনাম সহ সার্ভার দ্বারা নির্দিষ্ট করা যেতে পারে । উদাহরণস্বরূপ, সবচেয়ে সাধারণ ইনলাইন ধরনের হয় text/html
, application/javascript
এবং text/css
একটি আধুনিক ওয়েবসাইটের তিনটি প্রধান অংশের অভাবপূরণ। আপনার মতো আরও রহস্যজনক ধরণের থাকতে পারে application/pdf
।
আরেকটি সম্ভাবনা সার্ভার একটি নির্দিষ্ট করেছেন Content-Type
এর application/octet-stream
। এটি সর্বাধিক জেনেরিক প্রকার, এবং এটি ব্রাউজারকে বলে যে ফাইলটি কেবল স্বেচ্ছাসেবী ডেটা - এমন সময়ে ব্রাউজারটি করতে পারে কেবলমাত্র এটি ডাউনলোড করা (তাত্ত্বিকভাবে - আমরা এটি পেয়ে যাব)।
যখন Content-Type
সার্ভার দ্বারা কোনও নির্দিষ্ট করা হয় না (এবং কখনও কখনও এমনকী এমনকি এটিও থাকে), ব্রাউজারটি ফাইলটি পড়ে এবং নিদর্শনগুলি অনুসন্ধান করে ধরণটি অনুমান করার চেষ্টা করার জন্য স্নিফিং হিসাবে পরিচিত যা করতে পারে।
হ্যান্ডলিং টাইপ করুন
কোনও inline
বা অনির্ধারিত স্বভাবের সাথে কোনও ফাইল পাওয়ার পরে , সম্ভব হলে ব্রাউজারটিকে ব্রাউজারের মধ্যে এটি খোলার চেষ্টা করা উচিত। এটি করতে, এটি ফাইলের প্রকারটি দেখায় এবং যদি এটির ধরণটি স্বীকৃতি দেয় তবে এটি এটি খোলার চেষ্টা করবে। বেশিরভাগ ব্রাউজারগুলি কোনও text/
সাধারণ পাঠ্য দর্শনে যে কোনও প্রকারটি খুলবে , text/html
ওয়েবপৃষ্ঠা হিসাবে রেন্ডার করার চেষ্টা করবে , বিশেষ সিনট্যাক্স-হাইলাইটেড ভিউয়ার ইত্যাদি খোলারapplication/json
চেষ্টা করবে ..
টাইপটি application/octet-stream
বিশেষভাবে পরিচালনা করা হয়েছিল। যেহেতু এটি সর্বাধিক জেনেরিক প্রকার বলে মনে করা হচ্ছে, এটি বাইটগুলির একটি স্বেচ্ছাসেবী স্ট্রিমকে বোঝায়, এমন কোনও হ্যান্ডলার নেই যা এই "টাইপ" এর সমস্ত ফাইলে প্রয়োগ করতে পারে। উদাহরণস্বরূপ, ফায়ারফক্সে, এটির জন্য ডিফল্ট হ্যান্ডলারটি সেট করতে অক্ষমতা হিসাবে উদ্ভাসিত হয়application/octet-stream
।
কিছু ওয়েবসাইট অ-মানক প্রকারও ব্যবহার করেছে। আমি application/force-download
ব্যবহার দেখেছি - যা ডাউনলোড হিসাবে শেষ হয় কারণ ব্রাউজারটি টাইপটির সাথে আর কী কী করতে পারে তা সনাক্ত করে না বা জানে না তবে বিশেষ হ্যান্ডলিংটি উপভোগ করে না application/octet-stream
।
কিছুটা ইতিহাসের পাঠ
পিডিএফগুলি কীভাবে পরিচালনা করা হয় তা দেখতে, আমরা ওয়েব ইতিহাসে কিছুটা ব্যাখ্যা করতে পারি। দেখুন, অতীতে ব্রাউজারগুলির পিডিএফ কী তা কোনও ধারণা ছিল না। সুতরাং তারা এটি খুলতে পারেনি। তবে আমরা দেখেছি পিডিএফগুলি ব্রাউজারগুলিতে বিল্ট-ইন পিডিএফ ভিউয়ারগুলির অনেক আগে খোলা হচ্ছে, সুতরাং কীভাবে এটি কাজ করল?
আজকাল সীমাবদ্ধ এক্সটেনশানস / অ্যাডনগুলির সাথে আপনি যা করতে পারেন তার থেকে অনেক বেশি নিয়ন্ত্রণের সাথে ব্রাউজারের কার্যকারিতা বাড়ানো সম্ভব ছিল। এগুলি সবচেয়ে সাধারণভাবে প্লাগইন হিসাবে পরিচিত ছিল । ইন্টারনেট এক্সপ্লোরারে, সেগুলি অ্যাকটিভএক্স নিয়ন্ত্রণ ছিল; মজিলা ফায়ারফক্স এবং পরে গুগল ক্রোমে তারা এনপিএপিআই প্লাগইন ছিল। এই প্লাগইনগুলি অন্য কোনও প্রোগ্রাম যা কিছু করতে পারে সেগুলি করতে সক্ষম ছিল এবং ব্রাউজারের দ্বারা অপ্রজ্ঞাত হতে পারে এমন একটি নির্দিষ্ট ফাইল টাইপের জন্য হ্যান্ডলার হিসাবে অতিরিক্ত নিবন্ধিত করতে পারে। (প্রসঙ্গক্রমে, এটি পরে একটি বিশাল সুরক্ষা ঝুঁকি হিসাবে প্রমাণিত হয়েছিল এবং এই শক্তিশালী প্লাগইনগুলির জন্য সমর্থন ধীরে ধীরে বাদ দেওয়া হয়েছিল ...)
প্লাগইনগুলির দিনগুলিতে, আপনি গিয়ে অ্যাডোব অ্যাক্রোব্যাট রিডারটি ইনস্টল করবেন যা এরপরে এমন একটি অ্যাক্টিভেক্স বা এনপিএপিআই প্লাগইন ইনস্টল করবে যা application/pdf
মাইএম টাইপটি নিবন্ধভুক্ত করবে এবং ব্রাউজারটিকে প্লাগইনটি ব্যবহার করে এই ধরণের ইনলাইন খুলতে বলবে।
অবশ্যই, এই প্লাগইনগুলির ফলে সৃষ্ট বেশ কয়েকটি সুরক্ষা এবং কার্য সম্পাদনের সমস্যার পরে, প্রধানত ব্রাউজার বিক্রেতারা বেশিরভাগ প্লাগইনগুলির জন্য সমর্থন অবলম্বন করার সময় তাদের নিজস্ব পিডিএফ দর্শকদের অন্তর্ভুক্ত করার সিদ্ধান্ত নিয়েছে। আমরা এখনও কেবল দেখতে পাচ্ছি হ'ল অ্যাডোব শকওয়েভ ফ্ল্যাশ, যা পরিচালনা করে application/x-shockwave-flash
।
এটির জন্য এখনও কিছু বাকী নিয়ন্ত্রণ রয়েছে, যেমন ফায়ারফক্সে Preview in Firefox
বিকল্পটি এখনও বিদ্যমান:
অতীতে, এই ধরণের নিবন্ধভুক্ত একাধিক প্লাগইনগুলির মধ্যে পছন্দকে অনুমতি দেওয়া হত। উদাহরণস্বরূপ, ফ্ল্যাশের জন্য নিবন্ধিত ধরণের তালিকা:
এই দিনগুলি এইচটিএমএল 5 নিয়ে আসা মিডিয়া সমর্থনের আগেও ছিল। এটি কেবল পিডিএফই ছিল না - এমপি 4 ধারক বা এইচ .264 ভিডিও কীভাবে পরিচালনা করতে হবে আপনার ব্রাউজারে কোনও ধারণা থাকবে না, এমপি 3 ফাইল কীভাবে খেলতে হবে ইত্যাদি ইত্যাদি নয়। আপনি ভিএলসির মতো মিডিয়া প্লেয়ার দ্বারা সরবরাহিত প্লাগইনগুলি দেখতে পাবেন এমনকি উইন্ডোজ মিডিয়া প্লেয়ার, বা ওয়েবসাইটগুলি ফ্ল্যাশে অন্তর্নির্মিত কোনও মিডিয়া প্লেয়ার এম্বেড করবে।
Content-Type: application/octet-stream
তবে আজকাল এটি খুব কম সাধারণ।