কারণ, আপনার উদাহরণে, ওয়েব সার্ভার সর্বদা সিএসএস এবং চিত্রগুলি প্রেরণ করত যদি ক্লায়েন্ট তাদের কাছে থাকে তবে এইভাবে ব্যান্ডউইথকে নষ্ট করে (এবং এভাবে সংযোগটিকে আরও ধীরে ধীরে কমিয়ে দেয়ার পরিবর্তে, যা সম্ভবত আপনার উদ্দেশ্য ছিল)। নোট করুন যে সিএসএস, জাভাস্ক্রিপ্ট এবং ইমেজ ফাইলগুলি সাধারণত খুব দীর্ঘ সময়সীমার সাথে ঠিক সেই কারণে প্রেরণ করা হয় (যেমন আপনি যখন এগুলি পরিবর্তন করতে চান তখন আপনি কেবল নতুন কপিটিকে বাধ্য করার জন্য ফাইলের নাম পরিবর্তন করেন যা আবার দীর্ঘ সময়ের জন্য ক্যাশে হবে)।
এখন, আপনি " ঠিক আছে " বলে ব্যান্ডউইদথের অপচয়কে ঘিরে কাজ করার চেষ্টা করতে পারেন তবে ক্লায়েন্টটি ইঙ্গিত দিতে পারে যে এর মধ্যে ইতিমধ্যে কিছু সংস্থান রয়েছে, তাই সার্ভার আবার এটি প্রেরণ করবে না "। কিছুটা এইরকম:
GET /index.html HTTP/1.1
Host: www.example.com
If-None-Match: "686897696a7c876b7e"
Connection: Keep-Alive
GET /style.css HTTP/1.1
Host: www.example.com
If-None-Match: "70b26618ce2c246c71"
GET /image.png HTTP/1.1
Host: www.example.com
If-None-Match: "16d5b7c2e50e571a46"
এবং তারপরে পরিবর্তিত হয়নি কেবল এমন ফাইলগুলি পান যা একটি টিসিপি সংযোগের মাধ্যমে প্রেরিত হয়ে যায় (অবিচ্ছিন্ন সংযোগের উপরে এইচটিটিপি পাইপলাইন ব্যবহার করে)। এবং কি অনুমান? এটি ইতিমধ্যে কীভাবে কাজ করে (আপনি যদি ইফ- নন -ম্যাচের পরিবর্তে ইফ-মডিফায়েড-যেহেতু ব্যবহার করতে পারেন )।
তবে আপনি যদি সত্যিই প্রচুর পরিমাণে ব্যান্ডউইথকে নষ্ট করে (আপনার মূল অনুরোধ অনুসারে) হ্রাস করতে চান তবে আপনি আজ নিজের ওয়েবসাইটটি ডিজাইনের সময় স্ট্যান্ডার্ড এইচটিটিপি / ১.১ ব্যবহার করে তা করতে পারেন। বেশিরভাগ লোকেরা এটি না করার কারণটি তারা মনে করেন না যে এটি এর পক্ষে মূল্যবান।
এটি করার জন্য, আপনার পৃথক ফাইলে সিএসএস বা জাভাস্ক্রিপ্ট থাকতে হবে না, আপনি এগুলি ব্যবহার করে <style>
এবং <script>
ট্যাগ ব্যবহার করে মূল HTML ফাইলটিতে অন্তর্ভুক্ত করতে পারেন (আপনার সম্ভবত এটি নিজে নিজে করার দরকারও নেই, আপনার টেম্পলেট ইঞ্জিনটি সম্ভবত এটি স্বয়ংক্রিয়ভাবে করতে পারে) । আপনি এমনকি ইউআরআই ডেটা ব্যবহার করে এইচটিএমএল ফাইলে চিত্রগুলি অন্তর্ভুক্ত করতে পারেন :
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
অবশ্যই, বেস 64 এনকোডিং ব্যান্ডউইথের ব্যবহার সামান্য বাড়িয়ে তোলে তবে আপনি যদি নষ্ট ব্যান্ডউইথের বিষয়ে চিন্তা না করেন তবে এটি কোনও সমস্যা হবে না।
এখন, যদি আপনি সত্যিই যত্নবান হন তবে আপনি ওয়েব স্ক্রিপ্টগুলি উভয় বিশ্বের সেরা পাওয়ার জন্য যথেষ্ট স্মার্ট করে তুলতে পারেন: প্রথম অনুরোধে (ব্যবহারকারীর একটি কুকি নেই), কেবলমাত্র একটি একক এইচটিএমএলে এমবেড থাকা সমস্ত কিছু (সিএসএস, জাভাস্ক্রিপ্ট, চিত্র) প্রেরণ করুন উপরে বর্ণিত ফাইল হিসাবে ফাইলের বাহ্যিক অনুলিপিগুলির জন্য একটি লিঙ্ক rel = "প্রিফেট" ট্যাগ যুক্ত করুন এবং একটি কুকি যুক্ত করুন। ব্যবহারকারী ইতিমধ্যে (যেমন। তিনি আগে পরিদর্শন করেছেন) একটি কুকি থাকে, তাহলে তার সঙ্গে শুধু একটি স্বাভাবিক এইচটিএমএল পাঠাতে <img src="example.jpg">
, <link rel="stylesheet" type="text/css" href="style.css">
ইত্যাদি
সুতরাং প্রথম দেখার জন্য ব্রাউজারটি কেবল একটি একক এইচটিএমএল ফাইলের জন্য অনুরোধ করবে এবং সবকিছু পেয়ে এবং দেখায়। তারপরে এটি (নিষ্ক্রিয় থাকে) প্রিললোড নির্দিষ্ট বাহ্যিক সিএসএস, জেএস, চিত্রগুলি নির্দিষ্ট করে। পরের বার ব্যবহারকারী যখন যান, ব্রাউজারটি অনুরোধ করবে এবং কেবল পরিবর্তিত সংস্থানগুলি পাবে (সম্ভবত কেবলমাত্র নতুন এইচটিএমএল)।
আপনি ওয়েবসাইটটিতে কয়েকবার ক্লিক করলেও অতিরিক্ত সিএসএস + জেএস + চিত্রগুলির ডেটা কেবল কখনও দু'বার পাঠানো হবে। আপনার প্রস্তাবিত সমাধানের পরামর্শ হিসাবে শতগুণ চেয়ে অনেক বেশি ভাল। এবং এটি কখনই (প্রথমবার নয়, পরবর্তী সময়ে নয়) একের বেশি বিলম্বিত বর্ধমান রাউন্ড ট্রিপ ব্যবহার করবে না।
এখন, যদি সেই শব্দ অত্যধিক কাজ পছন্দ করি, এবং আপনার মত অন্য প্রোটোকল সঙ্গে যেতে চাই না -এ SPDY , সেখানে ইতিমধ্যে মত মডিউল হয় mod_pagespeed এ্যাপাচি জন্য, যা স্বয়ংক্রিয়ভাবে আপনার জন্য যে কাজ কিছু করতে পারি না (একাধিক সিএসএস / জেএস ফাইল মার্জ একটিতে, ছোট সিএসএসকে স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত করা এবং সেগুলি সংশোধন করে, আপনার ওয়েবপৃষ্ঠার একক লাইনটি সংশোধন না করেই অরিজিনাল লোড করার জন্য অপেক্ষা করার সময় ছোট স্থানধারককে ইনলাইন করা চিত্রগুলি তৈরি করুন la