Cache-Control হেডার HTTP প্রোটোকলে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা ক্লায়েন্ট বা প্রক্সি সার্ভারকে নির্দেশ দেয় কিভাবে ক্যাশিং করা হবে এবং কখন ক্যাশড ডেটা ব্যবহার করা যাবে বা পুনরায় ফেচ করতে হবে। Apache HTTP Client-এ Cache-Control headers ব্যবহার করা হলে এটি HTTP রিকোয়েস্ট এবং রেসপন্সে ক্যাশিং কনফিগারেশন করার জন্য ব্যবহৃত হয়।
Cache-Control
হেডারে বিভিন্ন ডিরেকটিভ থাকতে পারে যেমন:
max-age=3600
মানে হলো এক ঘণ্টা।Apache HTTP Client এ Cache-Control
হেডার যোগ করতে, HttpRequest এ হেডার সেট করতে হয়। নিচে একটি উদাহরণ দেখানো হয়েছে, যেখানে Cache-Control হেডার দিয়ে রিকোয়েস্ট কনফিগার করা হচ্ছে।
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.util.EntityUtils;
import org.apache.http.client.config.RequestConfig;
import java.io.IOException;
public class HttpClientWithCacheControl {
public static void main(String[] args) {
// HTTP ক্লায়েন্ট কনফিগারেশন তৈরি করা
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// HTTP GET রিকোয়েস্ট তৈরি
HttpGet request = new HttpGet("https://your-api-endpoint.com");
// Cache-Control হেডার যোগ করা
request.setHeader("Cache-Control", "max-age=3600"); // 1 ঘণ্টা ক্যাশে রাখবে
// রিকোয়েস্ট পাঠানো এবং রেসপন্স প্রাপ্তি
try (CloseableHttpResponse response = httpClient.execute(request)) {
String responseBody = EntityUtils.toString(response.getEntity());
System.out.println("Response: " + responseBody);
// Cache-Control হেডার থেকে রেসপন্সে ক্যাশিং সম্পর্কিত তথ্য বের করা
String cacheControl = response.getFirstHeader("Cache-Control").getValue();
System.out.println("Cache-Control in response: " + cacheControl);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
request.setHeader("Cache-Control", "max-age=3600")
লাইনটি দিয়ে ক্লায়েন্টের রিকোয়েস্টে Cache-Control হেডার সেট করা হয়েছে, যেখানে max-age=3600
মানে হলো রিকোয়েস্টের জন্য 1 ঘণ্টা পর্যন্ত ক্যাশড রেসপন্স ব্যবহার করা যাবে।Cache-Control: no-cache
ব্যবহার করবেন।Cache-Control: no-store
ব্যবহার করবেন।Cache-Control: private, max-age=600
।Cache-Control: public, max-age=86400
(24 ঘণ্টা)।Apache HTTP Client-এ Cache-Control হেডারের মাধ্যমে ক্যাশিং কনফিগার করা হয়। এটি সার্ভার থেকে প্রাপ্ত রেসপন্সের ক্যাশিং আচরণ নিয়ন্ত্রণ করতে সহায়ক। হেডারে বিভিন্ন ডিরেকটিভ যেমন max-age
, no-cache
, private
, এবং public
ব্যবহার করা যেতে পারে। এই হেডারের মাধ্যমে আপনি রিকোয়েস্ট এবং রেসপন্সের ক্যাশিং কৌশল নির্ধারণ করতে পারেন, যা কর্মক্ষমতা উন্নত করতে এবং অপ্রয়োজনীয় নেটওয়ার্ক ট্র্যাফিক কমাতে সাহায্য করে।
common.read_more