এই নিবন্ধে, আমি আপনাকে ওয়ার্ল্ড ওয়াইড ওয়েব কিভাবে একটি মৌলিক স্তরে কাজ করে তার মধ্যে নিয়ে যাব।
মূল প্রযুক্তি হল HTTP - হাইপারটেক্সট ট্রান্সফার প্রোটোকল। এটি হল যোগাযোগ প্রোটোকল যা আপনি ব্যবহার করেন যখন আপনি ওয়েব ব্রাউজ করেন৷
৷একটি মৌলিক স্তরে, আপনি যখন একটি ওয়েবসাইট পরিদর্শন করেন, তখন আপনার ব্রাউজার একটি সার্ভারে একটি HTTP অনুরোধ করে। তারপর সেই সার্ভার একটি সংস্থান (একটি ছবি, ভিডিও বা একটি ওয়েব পৃষ্ঠার HTML)-এর সাথে প্রতিক্রিয়া জানায় - যা আপনার ব্রাউজার আপনার জন্য প্রদর্শন করে৷
এটি HTTP এর বার্তা-ভিত্তিক মডেল। প্রতিটি HTTP মিথস্ক্রিয়া একটি অনুরোধ এবং একটি প্রতিক্রিয়া অন্তর্ভুক্ত.
তার প্রকৃতির দ্বারা, HTTP রাষ্ট্রহীন।
রাষ্ট্রহীন মানে সব অনুরোধ একে অপরের থেকে আলাদা। তাই আপনার ব্রাউজার থেকে প্রতিটি অনুরোধে সার্ভারের অনুরোধটি পূরণ করার জন্য তার নিজস্ব পর্যাপ্ত তথ্য থাকতে হবে। এর মানে হল যে HTTP-এর বার্তা ভিত্তিক মডেলের প্রতিটি লেনদেন অন্যদের থেকে আলাদাভাবে প্রক্রিয়া করা হয়।
URL
ইউআরএল (ইউনিফর্ম রিসোর্স লোকেটার) সম্ভবত ওয়েবের সবচেয়ে পরিচিত ধারণা। এটি সবচেয়ে গুরুত্বপূর্ণ এবং দরকারী ধারণাগুলির মধ্যে একটি। একটি URL হল একটি ওয়েব ঠিকানা যা ওয়েবে সংস্থান সনাক্ত করতে ব্যবহৃত হয়৷
ওয়েবের ধারণা সম্পদের চারপাশে গঠিত। শুরু থেকেই ওয়েব ছিল টেক্সট/এইচটিএমএল ফাইল, ডকুমেন্ট, ইমেজ ইত্যাদি শেয়ার করার প্ল্যাটফর্ম এবং এটিকে সম্পদের একটি সংগ্রহ হিসেবে বিবেচনা করা যেতে পারে।
প্রোটোকল —‘প্রায়শই তারা HTTP (বা HTTP-এর নিরাপদ সংস্করণের জন্য HTTPS) হয়।
অন্যান্য উল্লেখযোগ্য প্রোটোকল হল:
- ফাইল ট্রান্সফার প্রোটোকল (FTP) - একটি নেটওয়ার্কের মাধ্যমে একটি ক্লায়েন্ট এবং সার্ভারের মধ্যে ফাইল স্থানান্তরের জন্য ব্যবহৃত একটি স্ট্যান্ডার্ড প্রোটোকল৷
- সিম্পল মেল ট্রান্সফার প্রোটোকল (SMTP) ইমেল ট্রান্সমিশনের জন্য একটি স্ট্যান্ডার্ড।
ডোমেইন —যে নামটি এক বা একাধিক IP ঠিকানা সনাক্ত করতে ব্যবহৃত হয় যেখানে সংস্থানটি অবস্থিত৷
৷পথ —সার্ভারে সম্পদের অবস্থান নির্দিষ্ট করে। আপনি যে ডিভাইসে এই নিবন্ধটি পড়ছেন (যেমন /search/cars/VWBeetle.pdf বা C:/my cars/VWBeetle.pdf) সেই ডিভাইসে ব্যবহৃত রিসোর্স লোকেশন হিসাবে এটি একই যুক্তি ব্যবহার করে।
প্যারামিটারস৷ — সার্ভারে রিসোর্স সনাক্ত করতে বা ফিল্টার করতে ব্যবহৃত অতিরিক্ত ডেটা।
দ্রষ্টব্য :HTTP সম্পর্কে নিবন্ধ এবং আরও তথ্য অনুসন্ধান করার সময়, আপনি URI (বা ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার) শব্দটির সম্মুখীন হতে পারেন। ইউআরআই কখনও কখনও ইউআরএল-এর পরিবর্তে ব্যবহার করা হয় তবে বেশিরভাগই আনুষ্ঠানিক স্পেসিফিকেশনে এবং যারা দেখাতে চান তাদের দ্বারা। :)
HTTP অনুরোধ
HTTP-তে, প্রতিটি অনুরোধের একটি URL ঠিকানা থাকতে হবে। উপরন্তু, অনুরোধ একটি পদ্ধতি প্রয়োজন. চারটি প্রধান HTTP পদ্ধতি হল:
- পান
- পুট
- পোস্ট করুন
- মুছুন
আমি এই প্রবন্ধের HTTP পদ্ধতি বিভাগে এই পদ্ধতিগুলি এবং আরও অনেক কিছু ব্যাখ্যা করব৷
৷এবং এই পদ্ধতিগুলি সরাসরি কর্মের সাথে মিলে যায়:
- পড়ুন
- আপডেট
- তৈরি করুন
- মুছুন
সমস্ত HTTP বার্তার এক বা একাধিক শিরোনাম থাকে, তার পরে একটি ঐচ্ছিক বার্তার বডি থাকে। বডিতে এমন ডেটা থাকে যা অনুরোধের সাথে পাঠানো হবে বা প্রতিক্রিয়া সহ প্রাপ্ত ডেটা।
প্রতিটি HTTP অনুরোধের প্রথম অংশে তিনটি আইটেম থাকে:
উদাহরণ:
- GET /adds/search-result?item=vw+beetle HTTP/1.1
যখন একটি URL তে একটি "?" থাকে চিহ্ন, এর মানে এটি একটি প্রশ্ন রয়েছে। এর মানে এটি অনুরোধ করা সম্পদের প্যারামিটার পাঠায়।
- প্রথম অংশটি একটি পদ্ধতি যা বলে যে কোন HTTP পদ্ধতি ব্যবহার করা হয়েছে। সবচেয়ে বেশি ব্যবহৃত হয় GET পদ্ধতি। GET পদ্ধতি ওয়েব সার্ভার থেকে একটি সংস্থান পুনরুদ্ধার করে এবং যেহেতু হেডারের প্রয়োজন হয় না তখন GET-এর কোনও বার্তার বডি নেই৷
- দ্বিতীয় অংশটি একটি অনুরোধ করা URL৷ ৷
- তৃতীয় অংশটি একটি HTTP সংস্করণ ব্যবহার করা হচ্ছে। সংস্করণ 1.1। বেশিরভাগ ব্রাউজারগুলির জন্য এটি সবচেয়ে সাধারণ সংস্করণ, তবে, সংস্করণ 2.0 গ্রহণ করছে৷ ৷
একটি HTTP অনুরোধে আরও কিছু আকর্ষণীয় জিনিস রয়েছে:
রেফারার হেডার — URLটি বলে যেখান থেকে অনুরোধটি এসেছে।
ইউজার-এজেন্ট হেডার — অনুরোধ তৈরি করতে ব্যবহৃত ব্রাউজার সম্পর্কে অতিরিক্ত তথ্য।
হোস্ট হেডার - স্বতন্ত্রভাবে একটি হোস্ট নাম সনাক্ত করে; একই সার্ভারে একাধিক ওয়েব পেজ হোস্ট করা হলে এটি প্রয়োজনীয়।
কুকি হেডার —ক্লায়েন্টের কাছে অতিরিক্ত প্যারামিটার জমা দেয়।
HTTP প্রতিক্রিয়া
HTTP অনুরোধের মতই, HTTP প্রতিক্রিয়াগুলিও তিনটি আইটেম নিয়ে গঠিত:
উদাহরণ:
HTTP/1.1 200 ঠিক আছে
- প্রথম অংশটি হল HTTP সংস্করণ ব্যবহার করা হচ্ছে৷ ৷
- দ্বিতীয় অংশ হল অনুরোধের ফলাফলের সাংখ্যিক কোড।
- তৃতীয় অংশটি দ্বিতীয় অংশের পাঠ্য বর্ণনা।
একটি HTTP প্রতিক্রিয়াতে আরও কিছু আকর্ষণীয় জিনিস রয়েছে:
সার্ভার হেডার — কোন ওয়েব সার্ভার সফ্টওয়্যার ব্যবহার করা হচ্ছে সে সম্পর্কে তথ্য৷
সেট-কুকি হেডার — ব্রাউজারে কুকি ইস্যু করে।
বার্তার মূল অংশ৷ — HTTP প্রতিক্রিয়ার জন্য একটি বার্তা বডি ধরে রাখা সাধারণ৷
৷সামগ্রী-দৈর্ঘ্য শিরোনাম —বাইটে বার্তার বডির আকার বলে।
HTTP পদ্ধতি
সবচেয়ে সাধারণ পদ্ধতি হল GET এবং POST। তবে আরও কয়েকজন আছে।
GET — আপনি একটি নির্দিষ্ট সংস্থান থেকে ডেটা অনুরোধ করার জন্য এই পদ্ধতিটি ব্যবহার করেন যেখানে ডেটা কোনও ভাবেই পরিবর্তন করা হয় না। GET অনুরোধ সম্পদের অবস্থা পরিবর্তন করে না।
পোস্ট করুন —আপনি একটি সম্পদ তৈরি করতে একটি সার্ভারে ডেটা পাঠাতে এই পদ্ধতিটি ব্যবহার করেন৷
৷পিইউটি— আপনি অনুরোধের মূল অংশে সামগ্রী ব্যবহার করে একটি সার্ভারে বিদ্যমান সংস্থান আপডেট করতে এই পদ্ধতিটি ব্যবহার করেন। এটিকে কিছু "সম্পাদনা" করার উপায় হিসেবে ভাবুন৷
৷হেড —‘ আপনি এই পদ্ধতিটি একইভাবে ব্যবহার করেন যেভাবে আপনি GET ব্যবহার করেন, তবে পার্থক্যের সাথে যে HEAD পদ্ধতির প্রত্যাবর্তনের প্রতিক্রিয়াতে বডি থাকা উচিত নয়। কিন্তু রিটার্নে একই হেডার থাকবে যেমন GET ব্যবহার করা হয়েছে। আপনি একটি GET অনুরোধ করার আগে সংস্থানটি উপস্থিত আছে কিনা তা পরীক্ষা করার জন্য HEAD পদ্ধতি ব্যবহার করুন৷
TRACE—way আপনি ডায়গনিস্টিক উদ্দেশ্যে এই পদ্ধতি ব্যবহার করুন. প্রতিক্রিয়াটির মূল অংশে অনুরোধ বার্তাটির সঠিক বিষয়বস্তু থাকবে৷
৷বিকল্পগুলি৷ —আপনি লক্ষ্য সম্পদের জন্য উপলব্ধ যোগাযোগের বিকল্পগুলি (HTTP পদ্ধতি) বর্ণনা করতে এই পদ্ধতিটি ব্যবহার করেন৷
প্যাচড—ওয়াই আপনি একটি সম্পদে আংশিক পরিবর্তন প্রয়োগ করতে এই পদ্ধতিটি ব্যবহার করেন৷
৷মুছুন— আপনি নির্দিষ্ট সম্পদ মুছে ফেলার জন্য এই পদ্ধতি ব্যবহার করুন.
বিশ্রাম
রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার (REST) হল একটি আর্কিটেকচার স্টাইল যেখানে রিকোয়েস্ট এবং রেসপন্সে সিস্টেম রিসোর্সের বর্তমান অবস্থার উপস্থাপনা থাকে।
"নিয়মিত" উপায়:
- https://carapp.com/search?make=wv&model=beetle
REST-স্টাইল:
- https://carapp.com/search/vw/beetle
আপনি যদি আগ্রহী হন তবে আপনি এখানে REST সম্পর্কে আরও জানতে পারেন।
HTTP হেডার
তিনটি প্রধান উপাদান রয়েছে যা অনুরোধ/প্রতিক্রিয়া কাঠামো তৈরি করে। এর মধ্যে রয়েছে:
- প্রথম লাইন
- হেডার
- দেহ/সামগ্রী
আমরা ইতিমধ্যেই HTTP অনুরোধ এবং প্রতিক্রিয়াগুলির প্রথম লাইন সম্পর্কে কথা বলেছি, এবং বডি ফাংশনটিও উল্লেখ করা হয়েছিল। এখন আমরা HTTP শিরোনাম সম্পর্কে কথা বলব।
HTTP শিরোনামগুলি প্রথম লাইনের পরে যোগ করা হয় এবং একটি কোলন দ্বারা পৃথক করা নাম:মান জোড়া হিসাবে সংজ্ঞায়িত করা হয়। অনুরোধ বা প্রতিক্রিয়া সহ অতিরিক্ত প্যারামিটার পাঠাতে HTTP হেডার ব্যবহার করা হয়।
আমি আগেই বলেছি, বার্তার মূল অংশে অনুরোধের সাথে পাঠানো ডেটা বা প্রতিক্রিয়া সহ প্রাপ্ত ডেটা অন্তর্ভুক্ত থাকে৷
বিভিন্ন ধরনের হেডার আছে যেগুলি তাদের ব্যবহারের উপর ভিত্তি করে 4টি বিস্তৃত বিভাগে বিভক্ত করা হয়েছে:
- সাধারণ শিরোনাম — শিরোনাম যেগুলি অনুরোধ এবং প্রতিক্রিয়া বার্তা উভয় ক্ষেত্রেই ব্যবহার করা যেতে পারে এবং যেগুলি আদান-প্রদান করা ডেটা থেকে স্বাধীন৷
- অনুরোধ শিরোনাম ——এই শিরোনামগুলি অনুরোধ করা ডেটার জন্য প্যারামিটার বা প্যারামিটারগুলিকে সংজ্ঞায়িত করে যা ক্লায়েন্ট অনুরোধ করার বিষয়ে গুরুত্বপূর্ণ তথ্য দেয়৷
- প্রতিক্রিয়া শিরোনাম —‘এই শিরোনামগুলিতে আগত প্রতিক্রিয়া সম্পর্কে তথ্য রয়েছে৷ ৷
- সত্তার শিরোনাম —‘সত্তার শিরোনামগুলি সেই বিষয়বস্তু বর্ণনা করে যা বার্তার মূল অংশ তৈরি করে৷ ৷
HTTP স্ট্যাটাস কোড
ওয়েব ব্রাউজ করার সময়, আপনি "404 ত্রুটি:পাওয়া যায়নি" পৃষ্ঠাগুলি বা "500 ত্রুটি:সার্ভার সাড়া দিচ্ছে না" পৃষ্ঠাগুলির সম্মুখীন হতে পারেন৷
এগুলি হল HTTP স্ট্যাটাস কোড৷
৷প্রতিটি HTTP প্রতিক্রিয়া বার্তার প্রথম লাইনে একটি HTTP স্থিতি কোড থাকতে হবে, যা আমাদের অনুরোধের ফলাফল জানায়৷
স্ট্যাটাস কোডের পাঁচটি গ্রুপ আছে যেগুলিকে প্রথম সংখ্যা দ্বারা গোষ্ঠীবদ্ধ করা হয়েছে:
- 1xxaw—তথ্যমূলক।
- 2xxaw—অনুরোধ সফল হয়েছে৷ ৷
- 3xxway—ক্লায়েন্টকে একটি ভিন্ন সংস্থানে পুনঃনির্দেশিত করা হয়েছে৷ ৷
- 4xxway—অনুরোধে কোনো ধরনের ত্রুটি রয়েছে।
- 5xxway—সার্ভার অনুরোধটি পূরণ করতে একটি ত্রুটির সম্মুখীন হয়েছে৷ ৷
এখানে HTTP স্ট্যাটাস রেসপন্স কোড এবং তাদের ব্যাখ্যার একটি সম্পূর্ণ তালিকা রয়েছে।
HTTPS (হাইপারটেক্সট ট্রান্সফার প্রোটোকল সিকিউর)
HTTP প্রোটোকলের সুরক্ষিত সংস্করণ হল হাইপারটেক্সট ট্রান্সফার প্রোটোকল সিকিউর (HTTPS)। HTTPS একটি ব্রাউজার (ক্লায়েন্ট) এবং ওয়েবসাইট (সার্ভার) মধ্যে এনক্রিপ্ট করা যোগাযোগ প্রদান করে।
HTTPS-এ, ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) বা সিকিউর সকেট লেয়ার (SSL) ব্যবহার করে যোগাযোগ প্রোটোকল এনক্রিপ্ট করা হয়।
প্রোটোকলকে তাই প্রায়শই TLS এর উপর HTTP বা SSL এর উপর HTTP বলা হয়।
TLS এবং SSL প্রোটোকল উভয়ই একটি অপ্রতিসম এনক্রিপশন সিস্টেম ব্যবহার করে। অ্যাসিমেট্রিক এনক্রিপশন সিস্টেম একটি বার্তা এনক্রিপ্ট করতে একটি পাবলিক কী (এনক্রিপশন কী) এবং একটি ব্যক্তিগত কী (ডিক্রিপশন কী) ব্যবহার করে।
যে কেউ একটি বার্তা এনক্রিপ্ট করতে সর্বজনীন কী ব্যবহার করতে পারেন। যাইহোক, ব্যক্তিগত কীগুলি গোপনীয়, এবং এর মানে হল যে শুধুমাত্র উদ্দেশ্যপ্রণোদিত প্রাপক বার্তাটি ডিক্রিপ্ট করতে পারে৷
SSL/TLS হ্যান্ডশেক
আপনি যখন কোনো ওয়েবসাইটে HTTPS সংযোগের অনুরোধ করেন, ওয়েবসাইটটি আপনার ব্রাউজারে তার SSL শংসাপত্র পাঠায়। সেই প্রক্রিয়া যেখানে আপনার ব্রাউজার এবং ওয়েবসাইট যোগাযোগ শুরু করে তাকে "SSL/TLS হ্যান্ডশেক" বলা হয়।
SSL/TLS হ্যান্ডশেক একটি সিরিজের ধাপ জড়িত যেখানে ব্রাউজার এবং ওয়েবসাইট একে অপরকে যাচাই করে এবং SSL/TLS টানেলের মাধ্যমে যোগাযোগ শুরু করে।
আপনি সম্ভবত লক্ষ্য করেছেন, HTTPS সংযোগের সময় যখন একটি বিশ্বস্ত সুরক্ষিত টানেল ব্যবহার করা হয়, তখন ব্রাউজার অ্যাড্রেস বারে সবুজ প্যাডলক আইকন প্রদর্শিত হয়৷
HTTPS এর সুবিধাগুলি৷
একটি HTTPS এর প্রধান সুবিধা হল:
- গ্রাহকের তথ্য, যেমন ক্রেডিট কার্ড নম্বর এবং অন্যান্য সংবেদনশীল তথ্য, এনক্রিপ্ট করা হয় এবং আটকানো যায় না৷
- ভিজিটররা যাচাই করতে পারে আপনি একটি নিবন্ধিত ব্যবসা এবং আপনি ডোমেনের মালিক৷ ৷
- গ্রাহকেরা জানে যে তারা HTTPS ছাড়া সাইট পরিদর্শন করতে পারে না, এবং তাই, HTTPS ব্যবহার করে এমন সাইটগুলি থেকে তাদের বিশ্বাস এবং কেনাকাটা সম্পূর্ণ করার সম্ভাবনা বেশি৷
পড়ার জন্য আপনাকে ধন্যবাদ! আমার freeCodeCamp প্রোফাইলে এই মত আরো নিবন্ধ দেখুন. এবং আমার গিটহাব পৃষ্ঠায় আমি তৈরি করা অন্যান্য মজার জিনিসগুলি দেখুন৷
৷