HTTP প্রতিক্রিয়া শিরোনাম জন্য সমর্থন

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

এই বিষয় বর্ণনা করে যে কিভাবে এজ HTTP/1.1 ক্যাশিং হেডারগুলি পরিচালনা করে যখন আপনি ResponseCache নীতি ব্যবহার করছেন। Apigee Edge বর্তমানে ব্যাকএন্ড টার্গেট (অরিজিন) সার্ভার থেকে প্রাপ্ত HTTP/1.1 ক্যাশিং হেডার এবং নির্দেশাবলীর (অসমর্থিত বৈশিষ্ট্যগুলি এই বিষয়ে তালিকাভুক্ত করা হয়েছে) এর একটি উপসেট সমর্থন করে।

উপরন্তু, নির্দিষ্ট শিরোনামগুলির সাথে এজ তাদের নির্দেশের উপর ভিত্তি করে ব্যবস্থা নেয়। কিছু ক্ষেত্রে, এই HTTP/1.1 ক্যাশে হেডারগুলি রেসপন্সক্যাশ নীতিতে নির্দিষ্ট করা যাই হোক না কেন আচরণকে ওভাররাইড করে। উদাহরণস্বরূপ, যদি Cache-Control হেডারটি ব্যাকএন্ড সার্ভার থেকে ফেরত দেওয়া হয়, তাহলে আপনি হেডারের s-maxage নির্দেশিকা নীতির অন্যান্য মেয়াদ শেষ হওয়ার সেটিংসকে সম্ভাব্যভাবে ওভাররাইড করতে পারেন।

হেডার সমর্থন
ক্যাশে-নিয়ন্ত্রণ ব্যাকএন্ড অরিজিন সার্ভার থেকে ফিরে আসা প্রতিক্রিয়াগুলিতে সমর্থিত, কিন্তু ক্লায়েন্ট অনুরোধ নয়। এজ নির্দেশাবলীর একটি উপসেট সমর্থন করে।
মেয়াদ শেষ সমর্থিত। ওভাররাইড করা যেতে পারে।
সত্তা ট্যাগ (ETags) If-Match এবং If-None-Match এর জন্য নির্দিষ্ট আচরণ।
যদি-পরিবর্তিত-যখন থেকে GET অনুরোধে, একটি বৈধ ক্যাশে এন্ট্রি থাকলেও হেডারটি অরিজিন সার্ভারে পাঠানো হয়।
স্বীকার-এনকোডিং এজ ইনকামিং হেডারের উপর নির্ভর করে সংকুচিত বা অসংকুচিত প্রতিক্রিয়া পাঠায়।

ক্যাশে-নিয়ন্ত্রণ

Apigee Edge শুধুমাত্র ব্যাকএন্ড অরিজিন সার্ভার থেকে প্রত্যাবর্তিত প্রতিক্রিয়াগুলিতে Cache-Control শিরোনাম সমর্থন করে (HTTP/1.1 স্পেক ক্লায়েন্ট অনুরোধ এবং অরিজিন সার্ভার প্রতিক্রিয়া উভয় ক্ষেত্রেই Cache-Control হেডারকে অনুমতি দেয়)। অরিজিন সার্ভারগুলি এপিজি এজ এপিআই প্রক্সিতে সংজ্ঞায়িত টার্গেট এন্ডপয়েন্ট এবং TargetServer API কল ব্যবহার করে তৈরি করা উভয়ই অন্তর্ভুক্ত করতে পারে।

ক্যাশে-নিয়ন্ত্রণ সমর্থন সীমাবদ্ধতা

Apigee Edge HTTP/1.1 স্পেসিফিকেশনে সংজ্ঞায়িত Cache-Control রেসপন্স হেডার ক্ষমতার একটি উপসেট সমর্থন করে। নিম্নলিখিত নোট করুন:

  • Apigee Edge Cache-Control শিরোনাম সমর্থন করে না যা অন্তর্মুখী ক্লায়েন্ট অনুরোধের সাথে আসে।
  • Apigee Edge শুধুমাত্র পাবলিক ক্যাশে ধারণা সমর্থন করে। (HTTP স্পেসিফিকেশন অনুযায়ী, Cache-Control হয় সর্বজনীন (ভাগ করা) বা ব্যক্তিগত (একক ব্যবহারকারী) হতে পারে।)
  • Apigee Edge HTTP/1.1 স্পেসিফিকেশনে Cache-Control প্রতিক্রিয়া নির্দেশাবলীর শুধুমাত্র একটি উপসেট সমর্থন করে। বিস্তারিত জানার জন্য ক্যাশে-কন্ট্রোল রেসপন্স হেডার নির্দেশাবলীর জন্য সমর্থন দেখুন।

ক্যাশে-কন্ট্রোল প্রতিক্রিয়া হেডার নির্দেশাবলীর জন্য সমর্থন

Apigee মূল সার্ভার থেকে প্রতিক্রিয়ার উপর HTTP/1.1 স্পেসিফিকেশন থেকে একটি উপসেট নির্দেশাবলী সমর্থন করে। নিম্নলিখিত সারণী HTTP ক্যাশে-কন্ট্রোল প্রতিক্রিয়া শিরোনাম নির্দেশাবলীর জন্য Apigee এজ সমর্থন বর্ণনা করে।

এখানে তালিকাভুক্ত নির্দেশাবলী সম্পর্কে আরও বিস্তারিত তথ্যের জন্য, HTTP/1.1 স্পেসিফিকেশনে ক্যাশে-কন্ট্রোল দেখুন।

ক্যাশে-কন্ট্রোল নির্দেশিকা Apigee Edge কিভাবে নির্দেশিকা প্রক্রিয়া করে
cache-extension সমর্থিত নয়।
max-age

যদি আপনার ResponseCache নীতি <UseResponseCacheHeaders> উপাদানটিকে true সেট করে, তাহলে এই নির্দেশিকা দ্বারা নির্দিষ্ট সেকেন্ডের সংখ্যার জন্য প্রতিক্রিয়া ক্যাশে করা যেতে পারে।

এই নির্দেশটি s-maxage নির্দেশিকা দ্বারা ওভাররাইড করা হয়েছে এবং Expires শিরোনামকে ওভাররাইড করে। এটি নীতির <ExpirySettings> উপাদান দ্বারা ওভাররাইড করা যেতে পারে। আরও তথ্যের জন্য, প্রতিক্রিয়া ক্যাশে নীতিতে "ক্যাশে এন্ট্রির মেয়াদ শেষ করা সেট করা" এবং <UseResponseCacheHeaders> দেখুন।

must-revalidate সমর্থিত নয়। সমস্ত ক্যাশে এন্ট্রি মেয়াদ শেষ হওয়ার সাথে সাথে Apigee Edge দ্বারা মুছে ফেলা হয়।
no-cache

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

no-store সমর্থিত নয়।
no-transform সমর্থিত নয়।
private সমর্থিত নয়। এই নির্দেশ প্রাপ্ত হলে, মূল প্রতিক্রিয়া ক্যাশে করা হয় না. যেকোনো ক্ষেত্রের নাম উপেক্ষা করা হয়।
proxy-revalidate সমর্থিত নয়। সমস্ত ক্যাশে এন্ট্রি মেয়াদ শেষ হওয়ার সাথে সাথে Apigee Edge দ্বারা মুছে ফেলা হয়।
public এজ মূল প্রতিক্রিয়া ক্যাশে করে, এমনকি যখন অন্যান্য নির্দেশ অন্যথায় নির্দেশ করে। HTTP/1.1 স্পেসিফিকেশন অনুসারে, এই নিয়মের একমাত্র ব্যতিক্রম যদি প্রতিক্রিয়াটিতে একটি অনুমোদন শিরোনাম অন্তর্ভুক্ত থাকে।
s-maxage

যদি আপনার ResponseCache নীতি <UseResponseCacheHeaders> উপাদানটিকে true সেট করে, তাহলে এই নির্দেশিকা দ্বারা নির্দিষ্ট সেকেন্ডের সংখ্যার জন্য প্রতিক্রিয়া ক্যাশে করা যেতে পারে।

এই নির্দেশটি max-age নির্দেশিকা এবং Expires শিরোনামকে ওভাররাইড করে। এটি নীতির <ExpirySettings> উপাদান দ্বারা ওভাররাইড করা যেতে পারে। আরও তথ্যের জন্য, প্রতিক্রিয়া ক্যাশে নীতিতে "ক্যাশে এন্ট্রির মেয়াদ শেষ করা সেট করা" এবং <UseResponseCacheHeaders> দেখুন।

মেয়াদ শেষ

যখন ResponseCache নীতিতে UseResponseCacheHeaders পতাকা true সেট করা হয়, তখন এজ একটি ক্যাশে করা এন্ট্রির লাইভ (TTL) সময় নির্ধারণ করতে Expires শিরোনাম ব্যবহার করতে পারে। এই শিরোনামটি একটি তারিখ/সময় নির্দিষ্ট করে যার পরে একটি প্রতিক্রিয়ার ক্যাশে এন্ট্রি পুরানো বলে বিবেচিত হয়। এই শিরোনামটি সার্ভারগুলিকে সংকেত দেওয়ার অনুমতি দেয় যখন এটি একটি টাইম স্ট্যাম্পের উপর ভিত্তি করে ক্যাশে করা মান ফেরত দেওয়া ঠিক হয়।

Expires শিরোনামের জন্য গ্রহণযোগ্য তারিখ বিন্যাস HTTP/1.1 স্পেসিফিকেশনে বর্ণনা করা হয়েছে। যেমন:

মেয়াদ শেষ হবে: বৃহস্পতি, 01 ডিসেম্বর 1994 16:00:00 GMT

HTTP তারিখ/সময় বিন্যাস সম্পর্কে বিস্তারিত তথ্যের জন্য, HTTP/1.1 স্পেসিফিকেশনে তারিখ/সময় বিন্যাস দেখুন।

Expires শিরোনাম সম্পর্কে আরও তথ্যের জন্য, HTTP/1.1 স্পেসিফিকেশনে হেডার ফিল্ডের সংজ্ঞা দেখুন।

ETag

একটি সত্তা ট্যাগ (ETag) একটি অনুরোধকৃত সম্পদের সাথে যুক্ত একটি শনাক্তকারী৷ একটি ETag ব্যবহার করে, একটি সার্ভার নির্ধারণ করতে পারে যে অনুরোধ করা সংস্থান এবং সংশ্লিষ্ট ক্যাশে করা সংস্থান মিলছে কিনা৷ উদাহরণস্বরূপ, সার্ভার প্রতিক্রিয়াটিকে পুনরায় ক্যাশে করতে পারে যদি এটি বর্তমানে ক্যাশ করা হয়েছে তার সাথে মেলে না। ETags মিলে গেলে এটি ক্যাশ করা সম্পদ ফেরত দিতে পারে।

যখন একটি টার্গেট এন্ডপয়েন্ট একটি ETag সহ এজ-এ একটি প্রতিক্রিয়া পাঠায়, তখন এজ প্রতিক্রিয়া সহ ETag কে ক্যাশ করে৷

আপনি HTTP/1.1 স্পেসিফিকেশনে প্রোটোকল প্যারামিটারে এন্টিটি ট্যাগ সম্পর্কে আরও পড়তে পারেন।

যদি-ম্যাচ

If-Match রিকোয়েস্ট হেডারের সাথে, একটি ক্যাশে করা সত্তা বর্তমান থাকে যদি হেডারের ETag ক্যাশে করা ETag-এর সাথে মেলে। GET ছাড়া অন্য যেকোনো অনুরোধ যা একটি If-Match শিরোনাম নির্দিষ্ট করে তা নিশ্চিত করতে অরিজিন সার্ভারে পাঠানো হয় যাতে কোনো অরিজিন ক্যাশিং সুবিধার অনুরোধ প্রক্রিয়া করার সুযোগ থাকে।

আপনি HTTP/1.1 স্পেসিফিকেশনে হেডার ফিল্ডের সংজ্ঞাগুলিতে If-Match সম্পর্কে আরও পড়তে পারেন।

যদি এজ একটি ক্লায়েন্টের কাছ থেকে একটি অন্তর্মুখী GET অনুরোধ পায় যাতে একটি If-Match হেডার রয়েছে:

যদি তারপর
If-Match হেডার এক বা একাধিক ETag উল্লেখ করে
  1. Apigee Edge নির্দিষ্ট রিসোর্সের জন্য কোনো মেয়াদোত্তীর্ণ ক্যাশে এন্ট্রি পুনরুদ্ধার করে এবং সেই ক্যাশে করা এন্ট্রিগুলিতে যেকোন শক্তিশালী ETagsকে If-Match হেডারে নির্দিষ্ট করা সঙ্গে তুলনা করে।
  2. যদি একটি মিল পাওয়া যায়, ক্যাশে এন্ট্রি ফেরত দেওয়া হয়।
  3. যদি তা না হয়, অনুরোধটি অরিজিন সার্ভারে পাঠানো হয়।
If-Match হেডার "*" নির্দিষ্ট করে অনুরোধটি অরিজিন সার্ভারে প্রেরণ করা হয়েছে যাতে নিশ্চিত করা হয় যে কোনও অরিজিন ক্যাশিং সুবিধার অনুরোধটি প্রক্রিয়া করার সুযোগ রয়েছে
একই অনুরোধ URI সহ একটি ক্যাশে এন্ট্রি পাওয়া গেছে, কিন্তু এতে শুধুমাত্র দুর্বল ETags রয়েছে ক্লায়েন্টের কাছে ফেরত দেওয়ার আগে এন্ট্রিটি অরিজিন সার্ভার দ্বারা পুনরায় যাচাই করা উচিত
ETags অরিজিন সার্ভার থেকে আসে। ETag অপরিবর্তিত ক্লায়েন্টকে ফেরত দেওয়া হয়

If-None-Match

If-None-Match হেডারের সাথে, একটি ক্যাশে করা সত্তা বর্তমান থাকে যদি হেডারের ETag ক্যাশে করা ETag-এর সাথে মেলে না । এই শিরোনাম ধারণ করা একটি GET ছাড়া অন্য অনুরোধগুলি অরিজিন সার্ভারে পাঠানো হয়।

যদি এজ এই হেডারের সাথে একটি অন্তর্মুখী GET অনুরোধ পায়:

যদি তারপর
If-None-Match হেডার এক বা একাধিক ETag উল্লেখ করে
  1. Apigee Edge নির্দিষ্ট URI-এর জন্য যেকোনও মেয়াদোত্তীর্ণ ক্যাশে এন্ট্রি পুনরুদ্ধার করে এবং সেই ক্যাশে করা এন্ট্রিগুলিতে যেকোন শক্তিশালী ETags-এর সাথে If-None-Match হেডারে উল্লেখ করা আছে।
  2. যদি একটি মিল পাওয়া যায়, এজ একটি 304 নট মডিফাইড স্ট্যাটাস প্রদান করে। যদি কোন মিল পাওয়া না যায়, এজ অরিজিন সার্ভারে অনুরোধটি পাস করে।

If-None-Match শিরোনামটি "*" নির্দিষ্ট করে এবং অনুরোধ করা URI-এর জন্য একটি অপ্রয়োজনীয় ক্যাশে এন্ট্রি বিদ্যমান।

এজ একটি 304 নট মডিফাইড স্ট্যাটাস প্রদান করে
একই অনুরোধ ইউআরআই সহ একটি ক্যাশে এন্ট্রি পাওয়া গেছে তবে এতে শুধুমাত্র দুর্বল ইটিগ রয়েছে এজ ক্লায়েন্টের কাছে ফেরত দেওয়ার আগে এন্ট্রিটি অরিজিন সার্ভার দ্বারা পুনরায় যাচাই করা উচিত
এজ একটি অরিজিন সার্ভার থেকে একটি ETag পায় ETag অপরিবর্তিত ক্লায়েন্টকে ফেরত দেওয়া হয়

যদি-পরিবর্তিত-যখন থেকে

Apigee Edge যদি একটি GET অনুরোধে একটি If-Modified-Since শিরোনাম পায়, তাহলে একটি বৈধ ক্যাশে এন্ট্রি থাকা সত্ত্বেও এটি অরিজিন সার্ভারে পাঠানো হয়।

এটি নিশ্চিত করে যে Apigee Edge-এর মধ্য দিয়ে না যাওয়া কোনো রিসোর্সের যেকোনো আপডেটের জন্য হিসাব করা হয়েছে। যদি অরিজিন সার্ভার একটি নতুন সত্তা ফেরত দেয়, তাহলে এজ বিদ্যমান ক্যাশে এন্ট্রিটিকে নতুন মান দিয়ে প্রতিস্থাপন করে। যদি সার্ভার একটি 304 নট মডিফাইড স্ট্যাটাস প্রদান করে, যদি ক্যাশড রেসপন্সের Last-Modified হেডার ইঙ্গিত করে যে এটি পরিবর্তিত হয়নি তাহলে এজ রেসপন্স ভ্যালু প্রদান করে।

স্বীকার-এনকোডিং

যখন একটি ইনকামিং অনুরোধে gzip , deflate বা compress এর মান সহ হেডার Accept-Encoding অন্তর্ভুক্ত থাকে, তখন অরিজিন সার্ভার সংকুচিত ডেটার সাথে প্রতিক্রিয়া জানায়। যখন পরবর্তী অনুরোধগুলি Accept-Encoding শিরোনাম ছাড়াই আসে, তখন তারা একটি অসংকুচিত প্রতিক্রিয়া আশা করে। Apigee এর রেসপন্স ক্যাশিং মেকানিজম অরিজিন সার্ভারে ফিরে না গিয়ে ইনকামিং হেডারের উপর নির্ভর করে কম্প্রেসড এবং আনকম্প্রেসড উভয় প্রতিক্রিয়া পাঠাতে সক্ষম।

প্রতিটি ক্যাশ করা আইটেমের জন্য কীগুলিকে আরও অর্থবহ করতে আপনি ক্যাশে কীগুলির সাথে যুক্ত হেডার মানগুলি গ্রহণ করতে পারেন৷ আরও বিশদ বিবরণের জন্য, প্রতিক্রিয়া ক্যাশে নীতিতে "একটি ক্যাশে কী কনফিগার করা" দেখুন।