আপনি আপনার ব্রাউজারে যা দেখেন তা প্রায় সবকিছুই HTTP প্রোটোকলের মাধ্যমে আপনার কম্পিউটারে প্রেরণ করা হয়। উদাহরণস্বরূপ, আপনি যখন এই নিবন্ধের পৃষ্ঠাটি খুললেন, তখন আপনার ব্রাউজার প্রচুর HTTP অনুরোধ পাঠিয়েছে ( অনুরোধ ) এবং প্রচুর প্রতিক্রিয়া পেয়েছে ( প্রতিক্রিয়া )।
HTTP শিরোনাম ( Header ) এই HTTP অনুরোধ এবং প্রতিক্রিয়াগুলির একটি গুরুত্বপূর্ণ অংশ, তারা ক্লায়েন্টের ব্রাউজার, অনুরোধ করা পৃষ্ঠা, সার্ভার ইত্যাদি সম্পর্কে তথ্য প্রদান করে।
এই টিউটোরিয়ালে আমরা দেখাব কিভাবে Request Headers থেকে আপনার প্রয়োজনীয় তথ্য পেতে হয়। এই টিউটোরিয়ালটি নির্দেশ করে যে কীভাবে আমরা অনুরোধের শিরোনামগুলি ( Request Headers শিরোনামগুলি) থেকে আগ্রহী তথ্য পেতে পারি এবং প্রয়োজনীয় প্রতিক্রিয়া শিরোনামগুলিতে ( Response Headers শিরোনামগুলি) নির্দিষ্ট মান সেট করতে পারি৷
Request Headers বিষয়বস্তু সম্পর্কে তথ্য পাওয়ার সবচেয়ে সহজ উপায় হল একটি প্রকাশিত অ্যাপ্লিকেশনে একটি অনুরোধ চালানো।
- বিকাশকারী টুলে যান ( F12 )।
- Networks ট্যাবে স্যুইচ করুন।
- তালিকা থেকে জমা দেওয়া অনুরোধ নির্বাচন করা।
- Headers ট্যাবে স্যুইচ করুন এবং Request Headers বিভাগটি খুঁজুন।
অনুরোধ-প্রতিক্রিয়া শিরোনামগুলির সাথে ইন্টারঅ্যাক্ট করতে অ্যাপমাস্টার কীভাবে ব্যবহার করবেন
AppMaster ব্যাকএন্ড ডিজাইনারে আপনি অনুরোধ শিরোনামের তথ্য পেতে পারেন যদি এর নাম Get Request Headers ব্যবসা প্রক্রিয়া ব্লকে উল্লেখ করা থাকে।
- Name [ string ] - হেডারের নাম;
- Value [ string ] - হেডারের মান;
প্রতিক্রিয়াতে কাস্টম Header যোগ করতে - Set Response Header ব্লক ব্যবহার করা হয়।
- Name [ স্ট্রিং ] - হেডারের নাম;
- Value [ স্ট্রিং ] - হেডারের মান;
অনেক Request Headers বিদ্যমান, কিন্তু তাদের কয়েকটি নীচে বর্ণনা করা হয়েছে (তথ্যগুলি https://www.w3.org/Protocols/HTTP/HTRQ_Headers.html থেকে নেওয়া হয়েছে):
- From - ইন্টারনেট মেল বিন্যাসে, এটি অনুরোধকারী ব্যবহারকারীর নাম দেয়। এই ক্ষেত্রটি লগিংয়ের উদ্দেশ্যে এবং অ্যাক্সেস সুরক্ষার একটি অনিরাপদ ফর্মের জন্য ব্যবহার করা যেতে পারে। এই ক্ষেত্রের ব্যাখ্যা হল যে অনুরোধটি প্রদত্ত ব্যক্তির পক্ষ থেকে করা হচ্ছে, যিনি সম্পাদিত পদ্ধতির জন্য দায় স্বীকার করেন। এই ক্ষেত্রের ইন্টারনেট মেল ঠিকানাটি অনুরোধ জারি করা ইন্টারনেট হোস্টের সাথে সঙ্গতিপূর্ণ হতে হবে না। (উদাহরণস্বরূপ, যখন একটি অনুরোধ একটি গেটওয়ের মাধ্যমে পাস করা হয়, তখন মূল ইস্যুকারীর ঠিকানা ব্যবহার করা উচিত)। মেইল ঠিকানাটি, যদি সম্ভব হয়, একটি বৈধ মেইল ঠিকানা হওয়া উচিত, তা প্রকৃতপক্ষে একটি ইন্টারনেট মেল ঠিকানা বা অন্য কোন মেল সিস্টেমে একটি ঠিকানার ইন্টারনেট মেইল উপস্থাপনা।
- Accept - এই ক্ষেত্রটিতে উপস্থাপনা স্কিমগুলির একটি সেমিকোলন-বিচ্ছিন্ন তালিকা রয়েছে ( Content-Type মেটানফরমেশন মান) যা এই অনুরোধের প্রতিক্রিয়ায় গৃহীত হবে। প্রদত্ত সেট অবশ্যই একই ব্যবহারকারীর অনুরোধ থেকে ভিন্ন হতে পারে।
উদাহরণ:
স্বীকার করুন: টেক্সট/প্লেইন, টেক্সট/এইচটিএমএল
স্বীকার করুন: টেক্সট/এক্স-ডিভিআই; q=.8; mxb=100000; mxt=5.0, text/xc - Accept-Encoding - Accept এর অনুরূপ, কিন্তু কন্টেন্ট-এনকোডিং ধরনের তালিকা করে যা প্রতিক্রিয়ায় গ্রহণযোগ্য।
উদাহরণ:
স্বীকার-এনকোডিং: এক্স-কম্প্রেস; x-জিপ - Referer - এই ঐচ্ছিক হেডার ক্ষেত্রটি ক্লায়েন্টকে সার্ভারের সুবিধার জন্য, নথির ঠিকানা ( URI ) উল্লেখ করতে দেয় (বা নথির মধ্যে উপাদান) যেখান থেকে অনুরোধে URI প্রাপ্ত হয়েছিল। এটি একটি সার্ভারকে নথিতে ব্যাক-লিঙ্কের তালিকা তৈরি করতে দেয়, আগ্রহ, লগিং ইত্যাদির জন্য। এটি রক্ষণাবেক্ষণের জন্য খারাপ লিঙ্কগুলিকে খুঁজে বের করার অনুমতি দেয়। যদি একটি আংশিক URI দেওয়া হয়, তাহলে অনুরোধের বস্তুর URI-এর সাথে এটিকে পার্স করা উচিত।
উদাহরণ:
রেফারার: http://www.w3.org/hypertext/DataSources/Overview.html - Authorization - যদি এই লাইনটি উপস্থিত থাকে তবে এতে অনুমোদনের তথ্য রয়েছে। ফরম্যাট হল টু বি স্পেসিফাইড (TBS)। এই ক্ষেত্রের বিন্যাস এক্সটেনসিবল আকারে। প্রথম শব্দটি ব্যবহারে অনুমোদন ব্যবস্থার একটি স্পেসিফিকেশন।
উদাহরণ:
অনুমোদন: বহনকারী BtHKEsVs5mNNtNf7UWoVwjJzFqLOzucA - Accept-Language - Accept এর অনুরূপ, কিন্তু ভাষার মান তালিকাভুক্ত করে যা প্রতিক্রিয়ায় পছন্দনীয়। একটি অনির্দিষ্ট ভাষায় একটি প্রতিক্রিয়া অবৈধ নয়।
- User-Agent - এই লাইনটি যদি উপস্থিত থাকে তবে মূল ক্লায়েন্ট দ্বারা ব্যবহৃত সফ্টওয়্যার প্রোগ্রামটি দেয়। এটি পরিসংখ্যানগত উদ্দেশ্যে এবং প্রোটোকল লঙ্ঘনের ট্রেসিংয়ের জন্য। এটা অন্তর্ভুক্ত করা উচিত. প্রথম সাদা স্থান সীমাবদ্ধ শব্দটি অবশ্যই সফ্টওয়্যার পণ্যের নাম হতে হবে, একটি ঐচ্ছিক স্ল্যাশ এবং সংস্করণ ডিজাইনার সহ। অন্যান্য পণ্য যা ব্যবহারকারী এজেন্টের অংশ গঠন করে সেগুলিকে আলাদা শব্দ হিসাবে রাখা যেতে পারে।
উদাহরণ:
ব্যবহারকারী-এজেন্ট: LII-Cello/1.0 libwww/2.5
Response Headers উদাহরণ:
- Allowed - অনুরোধের সেটের তালিকা করে যা অনুরোধকারী ব্যবহারকারীকে এই URL এর জন্য ইস্যু করার অনুমতি দেওয়া হয়েছে। যদি এই হেডার লাইনটি বাদ দেওয়া হয়, ডিফল্ট অনুমোদিত পদ্ধতিগুলি হল " হেড পান "
- Public - অনুমোদিত তবে সেই অনুরোধগুলি তালিকাভুক্ত করে যা যে কেউ ব্যবহার করতে পারে। যদি বাদ দেওয়া হয়, ডিফল্ট শুধুমাত্র " GET " হয়৷
- Content-Length - বোঝায় যে বডিটি বাইনারি এবং এটি যোগাযোগ লিঙ্ক থেকে সরাসরি পড়া উচিত, লাইন পার্সিং ছাড়াই।
- Content-Encoding - ব্যবহৃত এনকোডিং পদ্ধতি নির্দিষ্ট করে। বর্তমানে শুধুমাত্র x-compress এবং x-gzip ব্যবহার করা হচ্ছে।
- Content-Type - নথির ধরন নির্দিষ্ট করে।
- Content-Length - বোঝায় যে বডিটি বাইনারি এবং এটি যোগাযোগ লিঙ্ক থেকে সরাসরি পড়া উচিত, লাইন পার্সিং ছাড়াই।
- Last-Modified - শেষ সময় অবজেক্ট পরিবর্তন করা হয়েছিল, অর্থাৎ এই সংস্করণের তারিখ যদি নথিটি একটি "জীবন্ত নথি" হয়।
অনুরোধ শিরোনাম থেকে ব্যবহারকারীর আইপি এবং এর কুকি মান পাওয়ার একটি উদাহরণ দেখা যাক।
ব্যবহারকারীর আইপি পেতে x-real-ip ব্যবহার করা হয়। কুকি অনুরোধ শিরোনাম কুকি টোকেন তথ্য প্রদান করে।
BP এর মত দেখাচ্ছে:
পরবর্তী ধাপে এই BP এর জন্য এন্ডপয়েন্ট তৈরি করতে হবে
UI এর মত দেখাচ্ছে:
অবশেষে, ফলাফল নীচে দেখানো হয়েছে. বোতামটি ক্লিক করার পরে ব্যবহারকারী শিরোনামগুলি থেকে তথ্য পায় ( বোতামের ওয়ার্কফ্লোতে অনক্লিক ট্রিগার) এবং লেবেলের শিরোনামগুলি এই তথ্যের সাথে আপডেট করা হয় ( লেবেল আপডেট বৈশিষ্ট্যগুলি )।