ক্রোম কেন কখনও কখনও পিডিএফ না খোলার পরিবর্তে ডাউনলোড করে? [প্রতিলিপি]


125

আমি যখন পিডিএফ ফাইলগুলির নির্দিষ্ট ঠিকানাগুলিতে যাই, ক্রোম তার অন্তর্নির্মিত পিডিএফ ভিউয়ারটি ব্যবহার করে পিডিএফটি খোলার পরিবর্তে ডাউনলোড করে। পৃষ্ঠাটি পরে ফাঁকা সাদা।

আমার ক্রোম সেটিংসে কোনও সমস্যা নেই: আমি অন্যান্য পিডিএফ ফাইলগুলির ঠিকানা চেষ্টা করি এবং Chrome প্রত্যাশা অনুযায়ী আচরণ করে (আমার এটি Chrome এর অন্তর্নির্মিত পিডিএফ ভিউয়ার ব্যবহার করার জন্য সেট করেছে)। তবে প্রতিবার আমি একই সমস্যাযুক্ত ঠিকানার চেষ্টা করার পরে, ক্রোম পিডিএফ ডাউনলোড করে এবং পরে একটি ফাঁকা পৃষ্ঠা প্রদর্শন করে।

আমি উইন্ডোজ 10 এবং ক্রোম ব্যবহার করছি Version 63.0.3239.84 (Official Build) (64-bit)

আমার নির্দিষ্ট সমস্যাযুক্ত URL টি এখানে (একটি গুগল অনুসন্ধান ফলাফল)।

উত্তর:


159

মূলত, ওয়েবসাইটটি ব্রাউজারকে এটি করতে বলে কারণ এটি ঘটে। কখনও কখনও, কারণ ওয়েবসাইট বিকাশকারীরা সিদ্ধান্ত নেন যে তারা এই আচরণটি চান, উদাহরণস্বরূপ ফাইল শেয়ারিং সাইটগুলিতে সাধারণ 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তবে আজকাল এটি খুব কম সাধারণ।
মাইকেল হ্যাম্পটন 21

2
"ইনলাইন" এবং "সংযুক্তি" মানগুলি ব্যবহার করার কারণ হ'ল মূল বিষয়বস্তু-বিভাজকটি মাইম ইমেলের জন্য নির্দিষ্ট করা হয়েছিল, যেখানে এই মানগুলি অনেক বেশি উপযুক্ত :)
hobbs

@ হোবস: পুনরায় ব্যবহারযোগ্য প্রযুক্তিতে ডোমেন-নির্দিষ্ট পরিভাষায় প্রায় এক কেস স্টাডি যখন আরও কিছু বিমূর্ত ব্যবহার করবে ^ _ ^
অরবিট-এ লাইটনেস রেস

23

আমি একটি ব্যাখ্যা পেয়েছি। আমি পেয়েছি এমন একটি উত্তর অনুসারে , এটি প্রদর্শিত হবে যে মাইমে বিষয়বস্তুর ধরণটি application/pdfবরং একটি "ভুল বা জেনেরিক এমআইএমআই টাইপ" সেট করা থাকলে ক্রোম পিডিএফ ডাউনলোড করবে application/octet-stream

তদ্ব্যতীত , "বেশিরভাগ ওয়েব সার্ভার অজানা-টাইপ সংস্থানগুলি ডিফল্ট application/octet-streamএমআইএমআই টাইপ ব্যবহার করে প্রেরণ করে security সুরক্ষার কারণে, বেশিরভাগ ব্রাউজারগুলি এ জাতীয় সংস্থাগুলির জন্য কাস্টম ডিফল্ট ক্রিয়া সেট করার অনুমতি দেয় না, ব্যবহারকারীকে এটি ব্যবহার করতে ডিস্কে সঞ্চয় করতে বাধ্য করে" "


3
প্রকৃতপক্ষে - এই যুক্তি বিষয়বস্তুর স্বভাবকে ওভাররাইড করে এবং এইভাবে মনে রাখা গুরুত্বপূর্ণ।
অরবিট

@LightnessRacesinOrbit এটা এত নেই ওভাররাইড স্বভাব যেমন ব্রাউজার একটি টাইপ করে (আঘ্রাণ ছাড়া) ডিস্ক-এ সংরক্ষণ চেয়ে অপরের সাথে কিছুই করতে পারছি না দেয়। মঞ্জুর, দৃশ্যমান প্রভাব একই।
বব

@ বোবি: ঠিক আছে হ্যাঁ এটি একটি ন্যায্য ব্যাখ্যা
রেস

20

এইচটিটিপি Content-Dispositionশিরোনামের কারণে ফাইলটি একটি সংযুক্তি বলে উল্লেখ করা হয় । এটি ব্রাউজারটি ফাইলটি সরাসরি খোলার পরিবর্তে ডাউনলোড করতে নির্দেশ দেয়।

একটি ক্রোম অ্যাড-অন রয়েছে যা এই আচরণটি ওভাররাইড করতে পারে। নিম্নলিখিত চিত্রটি ফায়ারফক্স বিকাশকারী সরঞ্জাম থেকে প্রাপ্ত:

ফায়ারফক্স বিকাশ সরঞ্জামগুলিতে যেমন দেখা গেছে এইচটিটিপি অনুরোধ


আমি কি জিজ্ঞাসা করতে পারি যে সেখানে একই রকম ফায়ারফক্স অ্যাড-অন আছে?
ডেভিজোনস

3
নিবন্ধন করুন যাতে আপনাকে কোনও ফায়ারফক্স অ্যাড-অন আছে কিনা তা জিজ্ঞাসা করতে হবে না, এটি এখানে
wizzwizz4

1
সেই প্লাগইনটি আর কাজ করে না বলে মনে হচ্ছে
পল স্লোকুম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.