এই উপাদানটি "এন্টারপ্রাইজ ডেভেলপমেন্টের ভূমিকা" সিরিজের অংশ। পূর্ববর্তী নিবন্ধ:
ওহে! আজ আমরা HTTP এবং HTTPS প্রোটোকল সম্পর্কে জানব। কিন্তু প্রথমে, আসুন একটি বিষয় স্পষ্ট করা যাক: আমরা OSI মডেলের অ্যাপ্লিকেশন স্তরে নেটওয়ার্কের মাধ্যমে ডেটা পাঠানোর জন্য প্রোটোকল সম্পর্কে কথা বলছি। আপনি হয়তো মনে করতে পারেন যে আমরা আগের নিবন্ধগুলির একটিতে OSI মডেলটি জেনেছি। যদি আপনার মনে না থাকে, তাহলে এটি এখানে ।

ডেটা কমিউনিকেশন প্রোটোকল কী?
একে আমরা সম্মত নিয়মের সেট বলি যা বিভিন্ন পরিষেবার বিকাশকারীদের এমন একটি বিন্যাসে তথ্য পাঠাতে দেয় যা অন্যরা বুঝতে পারে। উদাহরণস্বরূপ, আপনি Facebook এবং Twitter উভয় থেকে তথ্য পেতে Google Chrome ব্যবহার করতে পারেন, কারণ বিকাশকারীরা স্ট্যান্ডার্ড HTTP প্রোটোকল ব্যবহার করে এটি পাঠায়, যা আপনার ব্রাউজারকে এটি প্রক্রিয়া করার অনুমতি দেয়। সার্ভারের অংশটি বিকাশকারী ব্যক্তিদের জন্য অভিন্ন নিয়মগুলি খুব সুবিধাজনক: প্রচুর লাইব্রেরি রয়েছে যা আপনার জন্য তথ্য রূপান্তর করতে এবং উপযুক্ত প্রোটোকল ব্যবহার করে পাঠাতে পারে। এইচটিটিপি প্রাথমিকভাবে এইচটিএমএল পেজ পাঠানোর জন্য একটি প্রোটোকল হিসাবে কল্পনা করা হয়েছিল। এইভাবে এটি দীর্ঘদিন ব্যবহার করা হয়েছিল, কিন্তু এখন প্রোগ্রামাররা প্রায়শই স্ট্রিং এবং মিডিয়া ফাইল পাঠাতে এটি ব্যবহার করে। সাধারণভাবে, এই প্রোটোকলটি সর্বজনীনভাবে গৃহীত এবং বহুমুখী, এবং এটি ব্যবহার করা সত্যিই সহজ। এবং এখন আমরা এটি কীভাবে ব্যবহার করব তা তদন্ত করব।HTTP এর গঠন
আমাদের এখনই নোট করা উচিত যে HTTP প্রোটোকল শুধুমাত্র পাঠ্য নিয়ে গঠিত। আমাদের সবচেয়ে আগ্রহের বিষয় হল এই পাঠ্যের গঠন। প্রতিটি বার্তা তিনটি অংশ নিয়ে গঠিত:- স্টার্ট লাইন — এটি কিছু হাউসকিপিং ডেটা সংজ্ঞায়িত করে।
- শিরোনাম — এই বার্তা পরামিতি বর্ণনা.
- বডি - এটি বার্তার বিষয়বস্তু। একটি খালি লাইন দ্বারা শরীর শিরোনাম থেকে পৃথক করা আবশ্যক.
এখানে একটি সাধারণ HTTP অনুরোধ কেমন দেখাচ্ছে:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
শুরু লাইন নির্দেশ করে:
- GET — অনুরোধের পদ্ধতি
- / — অনুরোধের পথ
- HTTP/1.1 — প্রোটোকল সংস্করণ
- হোস্ট - যে হোস্টের কাছে অনুরোধটি সম্বোধন করা হয়
- ব্যবহারকারী-এজেন্ট - অনুরোধ পাঠানো ক্লায়েন্ট
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
যেখানে codegym.cc হোস্ট, /send হল অনুরোধের পথ, এবং ? একটি বিভাজক যা নির্দেশ করে যে ক্যোয়ারী পরামিতি অনুসরণ করে। শেষে, কী-মান জোড়া ("কী=মান") তালিকাভুক্ত করা হয়, একটি অ্যাম্পারস্যান্ড দ্বারা পৃথক করা হয়। পোস্ট - এই পদ্ধতি সার্ভারে তথ্য প্রকাশ করে। একটি POST অনুরোধ বিভিন্ন ধরণের তথ্য পাঠাতে পারে: প্যারামিটারগুলি যেমন "key=value" জোড়া, JSON, HTML কোড, এমনকি ফাইল। সমস্ত তথ্য বার্তার মূল অংশে পাঠানো হয়। উদাহরণ স্বরূপ:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
অনুরোধ পাঠানো হয়েছে codegym.cc/user/create/json, এবং প্রোটোকল সংস্করণ হল HTTP/1.1। "স্বীকার করুন" প্রতিক্রিয়া বিন্যাস নির্দেশ করে যা ক্লায়েন্ট পাওয়ার আশা করে। "কন্টেন্ট-টাইপ" অনুরোধে পাঠানো মেসেজের বডির ফরম্যাট নির্দেশ করে। "কন্টেন্ট-লেংথ" হল শরীরের অক্ষরের সংখ্যা। একটি HTTP অনুরোধে অনেকগুলি বিভিন্ন শিরোনাম থাকতে পারে। আরও তথ্যের জন্য, প্রোটোকলের স্পেসিফিকেশন দেখুন ।
HTTP প্রতিক্রিয়া
একটি অনুরোধ পাওয়ার পরে, সার্ভার এটি প্রক্রিয়া করে এবং ক্লায়েন্টকে একটি প্রতিক্রিয়া পাঠায়:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
প্রতিক্রিয়ার সূচনা লাইনে প্রোটোকল সংস্করণ (HTTP/1.1), স্ট্যাটাস কোড (200), এবং স্ট্যাটাস বিবরণ (ঠিক আছে) রয়েছে। এর শিরোনামগুলি বিষয়বস্তুর ধরন এবং দৈর্ঘ্য অন্তর্ভুক্ত করে। রেসপন্স বডিতে এইচটিএমএল কোড থাকে যা ব্রাউজার একটি HTML পেজ হিসেবে রেন্ডার করে।
প্রতিক্রিয়া স্থিতি কোড
বার্তার মূল অংশ এবং শিরোনামগুলি সম্পর্কে সবকিছু পরিষ্কার, তবে আমাদের স্ট্যাটাস কোড সম্পর্কে কয়েকটি শব্দ বলা উচিত। প্রতিক্রিয়া স্ট্যাটাস কোড সবসময় তিন সংখ্যা হয়. কোডের প্রথম সংখ্যা প্রতিক্রিয়ার বিভাগ নির্দেশ করে:- 1xx — তথ্যপূর্ণ। অনুরোধ গৃহীত হয়. সার্ভারটি চালিয়ে যাওয়ার জন্য প্রস্তুত।
- 2xx — সফল। অনুরোধ গৃহীত হয়েছে, বোঝা এবং প্রক্রিয়া করা হয়েছে.
- 3xx — পুনঃনির্দেশ। অনুরোধটি প্রক্রিয়া করার জন্য অতিরিক্ত ক্রিয়াকলাপ সম্পাদন করতে হবে।
- 4xx — ক্লায়েন্ট ত্রুটি। অনুরোধে ত্রুটি রয়েছে বা প্রোটোকল মেনে চলে না।
- 5xx — সার্ভার ত্রুটি। অনুরোধটি সঠিকভাবে তৈরি করা হয়েছে, কিন্তু সার্ভার এটি প্রক্রিয়া করতে পারেনি৷
- 200 ঠিক আছে — অনুরোধটি গৃহীত হয়েছে এবং সফলভাবে প্রক্রিয়া করা হয়েছে।
- 201 তৈরি করা হয়েছে - অনুরোধটি গৃহীত হয়েছে এবং সফলভাবে প্রক্রিয়া করা হয়েছে, যার ফলে একটি নতুন সংস্থান বা উদাহরণ তৈরি হয়েছে।
- 301 স্থায়ীভাবে সরানো হয়েছে — অনুরোধ করা সংস্থানটি স্থায়ীভাবে সরানো হয়েছে। এটির পরবর্তী অনুরোধগুলি নতুন ঠিকানা ব্যবহার করে করা উচিত।
- 307 অস্থায়ী পুনঃনির্দেশ — সংস্থানটি অস্থায়ীভাবে সরানো হয়েছে। আপাতত, এটি স্বয়ংক্রিয় ফরওয়ার্ডিং ব্যবহার করে অ্যাক্সেস করা যেতে পারে।
- 403 নিষিদ্ধ — অনুরোধটি বোঝা গেছে, কিন্তু অনুমোদন প্রয়োজন৷
- 404 পাওয়া যায়নি — সার্ভার এই ঠিকানায় সংস্থান খুঁজে পায়নি।
- 501 বাস্তবায়িত হয়নি — সার্ভার অনুরোধে সাড়া দেওয়ার জন্য প্রয়োজনীয় কার্যকারিতা সমর্থন করে না।
- 505 HTTP সংস্করণ সমর্থিত নয় — সার্ভার HTTP প্রোটোকলের নির্দিষ্ট সংস্করণ সমর্থন করে না।
GO TO FULL VERSION