কম্পিউটার টিউটোরিয়াল

HTTP মাস্টার করুন: ওয়েব কমিউনিকেশনের অপরিহার্য গাইড

এই আর্টিকেলে, আমি আপনাকে ওয়েস্ট ওয়ার্ল্ড ওয়েব কীভাবে মৌলিক স্তরে কাজ করে সেটি ব্যাখ্যা করব।

কোর টেকনোলজি হলো HTTP - হাইপারটেক্সট ট্রান্সফার প্রোটোকল। এটি আপনি ওয়েব ব্রাউজ করার সময় যে কমিউনিকেশন প্রোটোকল ব্যবহার করেন।

মৌলিক স্তরে, আপনি যখন একটি ওয়েবসাইট ভিজিট করেন, আপনার ব্রাউজার একটি সার্ভারে HTTP রিকোয়েস্ট করে। তারপর সেই সার্ভার একটি রিসোর্স (একটি ইমেজ, ভিডিও, বা একটি ওয়েব পেজের HTML) রেসপন্স হিসেবে ফেরত দেয় - যা আপনার ব্রাউজার আপনাকে দেখায়।

এটি HTTP-এর মেসেজ-বেইজড মডেল। প্রতিটি HTTP ইন্টারঅ্যাকশনে একটি রিকোয়েস্ট এবং একটি রেসপন্স থাকে।

তার প্রকৃতির কারণে, HTTP স্টেটলেস।

স্টেটলেস মানে সকল রিকোয়েস্ট একে অপরের থেকে আলাদা। তাই আপনার ব্রাউজারের প্রতিটি রিকোয়েস্টে নিজে নিজে যথেষ্ট তথ্য থাকতে হবে যাতে সার্ভার রিকোয়েস্টটি ফুলফিল করতে পারে। সেটি এছাড়া মানে HTTP-এর মেসেজ বেইজড মডেলের প্রতিটি ট্রানজ্যাকশন অন্যগুলোর থেকে আলাদাভাবে প্রসেস হয়।

URLs

URL (Uniform Resource Locator) সম্ভবত ওয়েবের সবচেয়ে পরিচিত ধারণা। এটি সবচেয়ে গুরুত্বপূর্ণ এবং উপযোগী ধারণাগুলোর একটিও। একটি URL হলো একটি ওয়েব অ্যাড্রেস যা ওয়েবে রিসোর্সগুলোকে আইডেন্টিফাই করতে ব্যবহৃত হয়।

ওয়েবের ধারণা রিসোর্সের চারপাশে গড়ে উঠেছে। এতদিন부터 ওয়েব টেক্সট/HTML ফাইল, ডকুমেন্ট, ইমেজ ইত্যাদি শেয়ার করার প্ল্যাটফর্ম ছিল, এবং এজন্য এটিকে রিসোর্সের একটি সংগ্রহ হিসেবে বিবেচনা করা যেতে পারে।

HTTP মাস্টার করুন: ওয়েব কমিউনিকেশনের অপরিহার্য গাইড
একটি URL-এর উদাহরণ

প্রোটোকল — অধিকাংশ সময় সেগুলো HTTP (অথবা HTTPS HTTP-এর সিকিউর সংস্করণের জন্য)।

অন্য ملحوظة প্রোটোকলগুলো হলো:

  • ফাইল ট্রান্সফার প্রোটোকল (FTP) — একটি নেটওয়ার্কের ওপর ক্লায়েন্ট এবং সার্ভারের মাঝপথে ফাইল ট্রান্সফারের জন্য একটি স্ট্যান্ডার্ড প্রোটোকল।
  • সিম্পল মেইল ট্রান্সফার প্রোটোকল (SMTP) ইমেইল ট্রান্সমিশনের জন্য একটি স্ট্যান্ডার্ড।

ডোমেইন — যে নামটি এক বা একাধিক IP অ্যাড্রেস আইডেন্টিফাই করতে ব্যবহৃত হয় যেখানে রিসোর্সটি অবস্থিত।

পাথ — সার্ভারে রিসোর্স লোকেশন স্পেসিফাই করে। এটি একই লজিক ব্যবহার করে যা আপনি যেখানে এই আর্টিকেল পড়ছেন সেখানে ডিভাইসে রিসোর্স লোকেশনের জন্য (যেমন /search/cars/VWBeetle.pdf বা C:/my cars/VWBeetle.pdf)।

প্যারামিটার — সার্ভারে রিসোর্স আইডেন্টিফাই বা ফিল্টার করতে ব্যবহৃত অতিরিক্ত ডেটা।

নোট: HTTP সম্পর্কে আর্টিকেল এবং আরও ইনফরমেশন খুঁজতে গেলে আপনি URI (অথবা Uniform Resource Identifier) টার্মটি দেখতে পেতে পারেন। URI কখনো কখনো URL-এর বদলে ব্যবহৃত হয় কিন্তু অধিকাংশ ফরম্যাল স্পেসিফিকেশনে এবং যারা শো অফ করতে চান। :)

HTTP রিকোয়েস্ট

HTTP-এ, প্রতিটি রিকোয়েস্টে অবশ্যই একটি URL অ্যাড্রেস থাকতে হবে। এছাড়া, রিকোয়েস্টে একটি মেথড থাকতে হবে। চারটি মূল HTTP মেথড হলো:

  • GET
  • PUT
  • POST
  • DELETE

আমি এই মেথডগুলো, এবং আরও, এই আর্টিকেলের HTTP মেথড সেকশনে ব্যাখ্যা করব।

এই মেথডগুলো সরাসরি অ্যাকশনের সাথে সম্পর্কিত:

  • রিড
  • আপডেট
  • ক্রিয়েট
  • ডিলিট

সকল HTTP মেসেজে এক বা একাধিক হেডার থাকে, এবং একটি অপশনাল মেসেজ বডি। বডিতে থাকে সেই ডেটা যা রিকোয়েস্টের সাথে পাঠানো হবে বা রেসপন্সের সাথে প্রাপ্য হবে।

প্রতিটি HTTP রিকোয়েস্টের প্রথম অংশে তিনটি আইটেম থাকে:

উদাহরণ:

  • GET /adds/search-result?item=vw+beetle HTTP/1.1

যখন একটি URL-এ "?" চিহ্ন থাকে, তার মানে এতে একটি কুয়েরি থাকে। অর্থাৎ এটি রিকোয়েস্ট করা রিসোর্সের প্যারামিটার পাঠাচ্ছে।

  1. প্রথম অংশটি হলো একটি মেথড যা বলে কোনো HTTP মেথড ব্যবহৃত হচ্ছে। সবচেয়ে সাধারণত ব্যবহৃত হলো GET মেথড। GET মেথড ওয়েব সার্ভার থেকে একটি রিসোর্স রিট্রিভ করে এবং যেহেতু GET-র কোনো মেসেজ বডি নেই, হেডারের পর কিছুই দরকার নেই।
  2. দ্বিতীয় অংশটি হলো রিকোয়েস্ট করা URL।
  3. তৃতীয় অংশটি হলো ব্যবহৃত HTTP ভার্সন। ভার্সন ১.১ অধিকাংশ ব্রাউজারের জন্য সবচেয়ে সাধারণ ভার্সন, যাই হোক, ভার্সন ২.০ আগ্রহের সাথে নেওয়া হচ্ছে।

HTTP রিকোয়েস্টে আরও কিছু আকর্ষণীয় জিনিস আছে:

Referer হেডার — বলে যে রিকোয়েস্টটি কোনো URL থেকে উদ্ভূত হয়েছে।

User-Agent হেডার — রিকোয়েস্ট জেনারেট করতে ব্যবহৃত ব্রাউজারের সম্পর্কে অতিরিক্ত তথ্য।

Host হেডার — একটি হোস্টনেমকে অনন্যভাবে আইডেন্টিফাই করে; একই সার্ভারে একাধিক ওয়েব পেজ হোস্ট থাকলে এটি জরুরি।

Cookie হেডার — ক্লায়েন্টকে অতিরিক্ত প্যারামিটার সাবমিট করে।

HTTP রেসপন্স

HTTP রিকোয়েস্টের মতো, HTTP রেসপন্সও তিনটি আইটেম নিয়ে গঠিত:

উদাহরণ:

HTTP/1.1 200 OK

  1. প্রথম অংশটি হলো ব্যবহৃত HTTP ভার্সন।
  2. দ্বিতীয় অংশটি হলো রিকোয়েস্টের ফলাফলের न्यুমেরিক কোড।
  3. তৃতীয় অংশটি হলো দ্বিতীয় অংশের টেক্সচুয়াল বর্ণনা।

HTTP রেসপন্সে আরও কিছু আকর্ষণীয় জিনিস আছে:

Server হেডার — কোনো ওয়েব সার্ভার সফটওয়্যার ব্যবহৃত হচ্ছে সেটি সম্পর্কে তথ্য।

Set-Cookie হেডার — ব্রাউজারে কুকি ইস্যু করে।

মেসেজ বডি — HTTP রেসপন্সের মেসেজ বডি থাকা সাধারণ।

Content-Length হেডার — মেসেজ বডির সাইজ বাইটে বলে।

HTTP মেথড

সবচেয়ে সাধারণ মেথডগুলো হলো GET এবং POST। কিন্তু আরও কিছু আছে।

GET — আপনি এই মেথডটি একটি নির্দিষ্ট রিসোর্স থেকে ডেটা রিকোয়েস্ট করতে ব্যবহার করেন যেখানে ডেটা যেকোনোভাবে মডিফাই করা হয় না। GET রিকোয়েস্ট রিসোর্সের স্টেট পরিবর্তন করে না।

POST — আপনি এই মেথডটি একটি সার্ভারে ডেটা পাঠাতে ব্যবহার করেন একটি রিসোর্স তৈরি করার জন্য।

PUT — আপনি এই মেথডটি রিকোয়েস্টের বডির কন্টেন্ট ব্যবহার করে একটি সার্ভারে বিদ্যমান রিসোর্স আপডেট করতে ব্যবহার করেন। এটাকে "এডিট" করার একটি উপায় হিসেবে ভাবুন।

HEAD — আপনি এই মেথডটি GET-এর মতোই ব্যবহার করেন, কিন্তু পার্থক্য হলো HEAD মেথডের রিটার্নে রেসপন্সে বডি থাকা উচিত নয়। কিন্তু রিটার্নে সেই হেডারগুলো থাকবে যেন GET ব্যবহার করা হয়। আপনি GET রিকোয়েস্ট করার আগে রিসোর্স উপস্থিত কিনা চেক করতে HEAD মেথড ব্যবহার করেন।

TRACE — আপনি এই মেথডটি ডায়াগনোস্টিক উদ্দেশ্যে ব্যবহার করেন। রেসপন্স তার বডিতে রিকোয়েস্ট মেসেজের সঠিক কন্টেন্ট ধারণ করবে।

OPTIONS — আপনি এই মেথডটি টার্গেট রিসোর্সের জন্য উপলব্ধ কমিউনিকেশন অপশন (HTTP মেথড) বর্ণনা করতে ব্যবহার করেন।

PATCH — আপনি এই মেথডটি একটি রিসোর্সে আংশিক মডিফিকেশন অ্যাপ্লাই করতে ব্যবহার করেন।

DELETE —আপনি এই মেথডটি নির্দিষ্ট রিসোর্স ডিলিট করতে ব্যবহার করেন।

REST

রিপ্রেজেন্টেশন্যাল স্টেট ট্রান্সফার (REST) একটি আর্কিটেকচার স্টাইল যেখানে রিকোয়েস্ট এবং রেসপন্স সিস্টেমের রিসোর্সের বর্তমান স্টেটের রিপ্রেজেন্টেশন ধারণ করে।

"নিয়মিত" পদ্ধতি:

  • https://carapp.com/search?make=wv&model=beetle

REST-স্টাইল:

  • https://carapp.com/search/vw/beetle

আপনি কৌতূহলী হলে এখান থেকে REST সম্পর্কে আরও জানতে পারেন।

HTTP হেডার

রিকোয়েস্ট/রেসপন্স কাঠামোকে গঠনকারী তিনটি প্রধান কম্পোনেন্ট আছে। এগুলো شامل:

  • প্রথম লাইন
  • হেডার
  • বডি/কন্টেন্ট

আমরা ইতিমধ্যে HTTP রিকোয়েস্ট এবং রেসপন্সের প্রথম লাইন, এবং বডি ফাংশন নিয়ে কথা বলেছি। এখন HTTP হেডার নিয়ে কথা বলব।

HTTP হেডারগুলো প্রথম লাইনের পর যোগ করা হয় এবং নাম:ভ্যালু জোড়া হিসেবে ডিফাইন করা হয় কোলন দিয়ে আলাদা করে। HTTP হেডারগুলো রিকোয়েস্ট বা রেসপন্সের সাথে অতিরিক্ত প্যারামিটার পাঠাতে ব্যবহৃত হয়।

যেমন আমি ইতিমধ্যে বলেছি, মেসেজের বডিতে থাকে রিকোয়েস্টের সাথে পাঠানো ডেটা বা রেসপন্সের সাথে প্রাপ্য ডেটা।

হেডারগুলো তাদের ব্যবহার অনুযায়ী ৪টি বিস্তৃত ক্যাটাগরিতে গ্রুপ করা হয়েছে:

  • জেনারেল হেডার — হেডার যেগুলো রিকোয়েস্ট এবং রেসপন্স উভয়েই ব্যবহার করা যেতে পারে এবং এক্সচেঞ্জ হওয়া ডেটা থেকে স্বাধীন।
  • রিকোয়েস্ট হেডার — এই হেডারগুলো রিকোয়েস্ট করা ডেটার প্যারামিটার বা ক্লায়েন্ট সম্পর্কে গুরুত্বপূর্ণ তথ্য ডিফাইন করে।
  • রেসপন্স হেডার — এই হেডারগুলো ইনকামিং রেসপন্স সম্পর্কে তথ্য ধারণ করে।
  • এন্টিটি হেডার — এন্টিটি হেডারগুলো মেসেজের বডি গঠনকারী কন্টেন্ট বর্ণনা করে।
HTTP মাস্টার করুন: ওয়েব কমিউনিকেশনের অপরিহার্য গাইড
হেডারের ধরন

HTTP স্ট্যাটাস কোড

ওয়েব ব্রাউজ করলে, আপনি "404 error: not found" পেজ বা "500 errors: server is not responding" পেজ দেখতে পেতে পারেন।

এই HTTP স্ট্যাটাস কোড।

প্রতিটি HTTP রেসপন্স মেসেজে অবশ্যই তার প্রথম লাইনে একটি HTTP স্ট্যাটাস কোড থাকতে হবে, যা আমাদের রিকোয়েস্টের ফলাফল বলে।

HTTP মাস্টার করুন: ওয়েব কমিউনিকেশনের অপরিহার্য গাইড

স্ট্যাটাস কোডের পাঁচটি গ্রুপ আছে যা প্রথম ডিজিট দ্বারা গ্রুপ করা হয়েছে:

  • 1xx — ইনফরমেশনাল।
  • 2xx — রিকোয়েস্ট সফল হয়েছে।
  • 3xx — ক্লায়েন্টকে একটি ভিন্ন রিসোর্সে রিডাইরেক্ট করা হয়েছে।
  • 4xx — রিকোয়েস্টে কিছু ত্রুটি আছে।
  • 5xx — সার্ভার রিকোয়েস্ট ফুলফিল করতে একটি ত্রুটি মুখোমুখি হয়েছে।

এখানে HTTP স্ট্যাটাস রেসপন্স কোড এবং তাদের ব্যাখ্যার একটি পূর্ণ তালিকা।

HTTPS (হাইপারটেক্সট ট্রান্সফার প্রোটোকল সিকিউর)

HTTP প্রোটোকলের সিকিউর ভার্সন হলো হাইপারটেক্সট ট্রান্সফার প্রোটোকল সিকিউর (HTTPS)। HTTPS ব্রাউজার (ক্লায়েন্ট) এবং ওয়েবসাইট (সার্ভার) এর মধ্যে এনক্রিপ্টেড কমিউনিকেশন প্রদান করে।

HTTPS-এ, কমিউনিকেশন প্রোটোকল ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) বা সিকিউর সকেটস লেয়ার (SSL) ব্যবহার করে এনক্রিপ্ট করা হয়।

প্রোটোকলটিকে তাই প্রায়শই HTTP over TLS, বা HTTP over SSL বলা হয়।

TLS এবং SSL প্রোটোকল দুটোই একটি অ্যাসিমেট্রিক এনক্রিপশন সিস্টেম ব্যবহার করে। অ্যাসিমেট্রিক এনক্রিপশন সিস্টেম একটি পাবলিক কি (এনক্রিপশন কি) এবং একটি প্রাইভেট কি (ডিক্রিপশন কি) ব্যবহার করে একটি মেসেজ এনক্রিপ্ট করে।

কেউই পাবলিক কি ব্যবহার করে একটি মেসেজ এনক্রিপ্ট করতে পারে। যাই হোক, প্রাইভেট কিগুলো গোপন, এবং তার মানে শুধু উদ্দেশ্য প্রাপকই মেসেজ ডিক্রিপ্ট করতে পারবে।

HTTP মাস্টার করুন: ওয়েব কমিউনিকেশনের অপরিহার্য গাইড
অ্যাসিমেট্রিক এনক্রিপশন সিস্টেমের উদাহরণ

SSL/TLS হ্যান্ডশেক

যখন আপনি একটি ওয়েবসাইটে HTTPS কানেকশন রিকোয়েস্ট করেন, ওয়েবসাইট তার SSL সার্টিফিকেট আপনার ব্রাউজারে পাঠায়। যে প্রক্রিয়ায় আপনার ব্রাউজার এবং ওয়েবসাইট কমিউনিকেশন শুরু করে সেটাকে "SSL/TLS হ্যান্ডশেক" বলা হয়।

SSL/TLS হ্যান্ডশেকში ব্রাউজার এবং ওয়েবসাইট একে অপরের যাচাই করে এবং SSL/TLS টানেলের মাধ্যমে কমিউনিকেশন শুরু করে।

আপনি সম্ভবত লক্ষ্য করেছেন, একটি বিশ্বস্ত সিকিউর টানেল HTTPS কানেকশনে ব্যবহৃত হলে, ব্রাউজারের অ্যাড্রেস বারে সবুজ প্যাডলক আইকন দেখায়।

HTTP মাস্টার করুন: ওয়েব কমিউনিকেশনের অপরিহার্য গাইড
আমার একটি সিকিউর পেজের উদাহরণ

HTTPS-এর সুবিধা

HTTPS-এর প্রধান সুবিধাগুলো হলো:

  • কাস্টমার ইনফরমেশন, যেমন ক্রেডিট কার্ড নম্বর এবং অন্যান্য সংবেদনশীল তথ্য, এনক্রিপ্টেড থাকে এবং ইন্টারসেপ্ট করা যায় না।
  • ভিজিটররা যাচাই করতে পারেন আপনি একটি রেজিস্টার্ড বिजনেস এবং আপনি ডোমেইনটির মালিক।
  • কাস্টমাররা জানেন তারা HTTPS ছাড়া সাইট ভিজিট করতে হবে না, এবং তাই তারা HTTPS ব্যবহারকারী সাইটগুলোতে ज्यादा আস্থা রাখে এবং পারচেস কমপ্লিট করার সম্ভাবনা বেশি।

পড়ার জন্য ধন্যবাদ! আমার freeCodeCamp প্রোফাইলে এইরকম আরও আর্টিকেল চেক আউট করুন। এবং আমার GitHub পেজে আমি যা বানাই সেগুলো চেক আউট করুন।

  1. ক্লাউড গেমিং উন্মোচন: সম্পূর্ণ গাইড

  2. অ্যাফিলিয়েট মার্কেটিং দক্ষতা: আধুনিক মার্কেটারদের জন্য সম্পূর্ণ গাইড

  3. ম্যালওয়্যার ব্যাখ্যা: মূল তথ্য এবং নিজেকে কীভাবে রক্ষা করবেন

  4. Wi‑Fi 6 বোঝা: মূল বৈশিষ্ট্য, সুবিধা এবং কীভাবে এটি কানেক্টিভিটি রূপান্তর করছে