এখনও পর্যন্ত সমস্ত উত্তর হয় সরল, অসম্পূর্ণ বা আংশিক ভুল বলে মনে হচ্ছে (বিষয়টি জটিল, বিষয় গুলিয়ে বিভ্রান্তিকরভাবে নামকরণ করা হয়েছে এবং ভালভাবে নথিভুক্ত করা হয়নি!), সুতরাং এখানে আমার বোঝার বিষয়:
দ্বারা নির্মিত সংযোগটি পুনরায় ব্যবহার করতে সক্ষম হওয়ার জন্য <link rel=preconnect>
, আপনি কোন ধরণের সামগ্রী আনতে চান তা উপর নির্ভর করে বিষয়গুলি নির্ভর করে যেখান থেকে, অনুরোধটি ব্রাউজার শংসাপত্রগুলি প্রেরণ করবে কিনা (যা ব্রাউজার দ্বারা স্পষ্টভাবে বা স্পষ্টভাবে প্রতিষ্ঠিত করা যেতে পারে):
অনুরোধটি একই-উত্সের ( example.com
অনুরোধের সাবসোর্স থেকে example.com
)
preconnect
প্রথমে কোনও প্রয়োজন নেই ; ব্রাউজারটি বেশ কিছুক্ষণ পৃষ্ঠা লোড করার পরে সংযোগটি খোলা রাখে। যদি একাধিক সংযোগ খোলার থাকে তবে ব্রাউজারটি নিজেই সিদ্ধান্ত নেয় যে কতগুলি খুলতে হবে (সার্ভার টিএলএস হ্যান্ডশেক, ব্রাউজার সেটিংস ইত্যাদিতে HTTP / 2 সমর্থন ঘোষণা করে কিনা তার উপর নির্ভর করে)
যাচাই করতে হবে : একই-উত্স অনুরোধটির যদি crossorigin
বৈশিষ্ট্য রয়েছে: তবে এটি ব্যবহার করা হয় বা এড়ানো হবে?
অনুরোধটি ক্রস-example.com
অরিজিনের ( অনুরোধের সাবসোর্স থেকে another.com
)
- যদি প্রকৃত অনুরোধটি এইচটিএমএল ( জেএসে - ক্ষেত্রে গুরুত্বপূর্ণ) তে সুস্পষ্টভাবে
crossorigin
বৈশিষ্ট্যযুক্ত করে থাকে তবে প্রি সংযোগটিও এটি অবশ্যই একই মান সহ থাকতে পারে (সম্ভবত এমন ক্ষেত্রে ব্যতীত যেখানে এটি অর্থবোধ করে না এবং উপেক্ষা করা হয় - পুরোপুরি পরিষ্কার নয়) আমি এখনও)crossOrigin
crossorigin
- অন্যথায়, যদি অনুরোধ করে তবে
<script type=module>
: চেক করা উচিত
- অন্যথায়, যদি অনুরোধ এবং জন্য "পুরানো স্কুল" অনুরোধ
<img>
, <style type=stylesheet>
, <iframe>
, ক্লাসিক <script>
ইত্যাদি (HTML বা জাতীয় মাধ্যমে প্রবর্তিত) ছাড়া crossorigin
স্পষ্টভাবে উল্লিখিত , তারপর preconnect আবশ্যক নেই crossorigin
অ্যাট্রিবিউট সেট।
- অন্যথায়, যদি অনুরোধটি ক্রস- অরিজিনের ফন্টের অনুরোধ হয় তবে প্রি সংযোগ অবশ্যই থাকা উচিত
crossorigin=anonymous
- অন্যথায়, যদি অনুরোধটি ক্রস-উত্স
fetch
বা XHR
:
- যদি এটি শংসাপত্রযুক্ত মোডে করা হয় (যেমন কুকিজ সংযুক্ত থাকে বা এইচটিটিপি বেসিক লেখাগুলি ব্যবহৃত হয়; আনার ক্ষেত্রে, এর অর্থ
credentials !== omit
; এক্সএইচআর ক্ষেত্রে withCredentials === true
:): প্রাক সংযোগ থাকতে হবেcrossorigin=use-credentials
- যদি এটি শংসাপত্রযুক্ত মোডে না থাকে: প্রি সংযোগ থাকা আবশ্যক
crossorigin=anonymous
শেষ কেসের জন্য (আনুন / এক্সএইচআর), ক্রোম / ফায়ারফক্স ডিভলটুলের নেটওয়ার্ক প্যানেলে যান, একটি অনুরোধে ডান ক্লিক করুন এবং copy as fetch
একটি ড্রপডাউন থেকে চয়ন করুন । এটি জেএসের একটি স্নিপেট তৈরি করবে, যা আপনাকে জানাবে যে যদি অনুরোধটি কর্স-সক্ষম ( "mode"=="cors"
) এবং শংসাপত্রযুক্ত ( "credentials"=="include"|"same-origin"
) হয়।
নোট করুন তবে উপরের কৌশলটি অ-এক্সএইচআর / আনার অনুরোধগুলির জন্য সঠিকভাবে কাজ করে না, কারণ উদাহরণস্বরূপ fetch
এবং <img>
সংযোগ স্থাপনের জন্য বিভিন্ন অ্যালগরিদম ব্যবহার করুন, যেমন পূর্বে বর্ণিত হয়েছে।
শেষ অবধি, এইচটিএমএলে, <link ...crossorigin>
=== <link ...crossorigin=anonymous>
।
অতিরিক্ত নোট এবং লিঙ্ক: