কীভাবে কোনও সার্ভার এইচটিটিপি অনুরোধ সম্পর্কে অবহিত হয়?


8

এইচটিটিপি কীভাবে কাজ করে তা সম্পর্কে আমার একটি প্রাথমিক ধারণা রয়েছে । আমি বুঝতে পারি ক্লায়েন্ট (ওয়েব ব্রাউজার) একটি অনুরোধ করে এবং সার্ভারটি অনুরোধটির প্রতিক্রিয়া জানায়। তবে, আমি যে জিনিসটি বুঝতে পারি না সেটি হ'ল ক্লায়েন্ট যখন কোনও অনুরোধ জানায় তখন কোনও ওয়েব সার্ভার কীভাবে জানতে পারে?

যদি কেউ আমাকে ফোন করে তবে আমার ফোন বেজে যায় এবং আমি অবহিত হই। অনুরূপভাবে কোনও ওয়েবসভার কীভাবে অনুরোধ সম্পর্কে অবহিত হয়?


2
সুপার ইউজার চালু হওয়ার ৫ বছর পরে এটি কীভাবে ডুপ্লিকেট নয়?
পিটার মর্টেনসেন

উত্তর:


28

এটিতে অনেক স্তর রয়েছে। এবং গুরুত্বপূর্ণ বিষয়, তাদের অনেকগুলি পরিবর্তনযোগ্য হয়।

উদাহরণস্বরূপ, শারীরিক স্তরে আপনার একটি কক্স-তারের নেটওয়ার্ক, একটি ইথারনেট বা একটি Wi-Fi থাকতে পারে। এইচটিটিপি তাদের সবার উপরে কাজ করে তবে তাদের প্রত্যেকের চারপাশে পাঠানো পেলোডের কিছুটা আলাদা হ্যান্ডলিং রয়েছে।

এইচটিটিপি অন্য প্রোটোকলের শীর্ষে কাজ করে, টিসিপি নামে, যা পরিবর্তিত আরও একটি প্রোটোকলের শীর্ষে চলে আসে আইপি (আজকাল বেশিরভাগ ক্ষেত্রে দুটি রূপে - আইপিভি 4 এবং আইপিভি 6)।

সুতরাং HTTP সার্ভার একটি IP ঠিকানা (যেমন খাতাপত্র 184.38.45.1, অথবা প্রায়শই "কোনো"), একটি TCP পোর্ট সাথে ( 80HTTP এর জন্য ডিফল্ট ছিলেন, কিন্তু থেকে সাধারণ কিছু 1করতে 65535), অপারেটিং সিস্টেমের সাথে। এখন, এইচটিটিপি সার্ভার যখন ডেটা (বা অন্য কোনও বার্তা) আসে তখন ওএসকে এটি পিং করতে বলে। ওএস জানে যে কখন এটি ঘটে কারণ নেটওয়ার্ক ইন্টারফেস কার্ড ড্রাইভার এটি এটি বলে। এবং এন.আই.সি. ড্রাইভারটি এন.আই.সি. নিজেই বলেছিল, যার আসলে তার নিজস্ব সফ্টওয়্যার রয়েছে নেটওয়ার্ক কেবলে বৈদ্যুতিক সংকেত ব্যাখ্যা করতে (বা বাতাসে বেতার সংকেত ইত্যাদি, আপনি ধারণাটি পাবেন)।

পার্শ্ব নোট :

এনআইসি কীভাবে ড্রাইভার / ওএসের সাথে যোগাযোগের সূচনা করতে পারে সে সম্পর্কে আপনি যদি আরও জানতে চান তবে আপনি হার্ডওয়্যার বিঘ্ন সম্পর্কে কিছু প্রাথমিক তথ্য অনুসন্ধান করতে চাইতে পারেন - মূলত, সিপিইউ যা করছে তা বন্ধ করা হয়েছে, এবং প্রোগ্রামের প্রবাহটি একটি বাধারে স্যুইচ করে হ্যান্ডলার রুটিন - একটি অত্যন্ত সহজ কোডের টুকরো যা সিস্টেমটি জানানোর জন্য যত্ন নেয় এবং তারপরে তত্ক্ষণাত সিপিইউ করছিল এমন মূল জিনিসটিতে নিয়ন্ত্রণ ফিরিয়ে দেয়। প্রকৃতপক্ষে, এটি আপনাকে ওএস এবং কম্পিউটারের নিজের অভ্যন্তরীণ কর্ম সম্পর্কে অনেক প্রশ্নের উত্তর দিতে পারে - যেমন কোনও অপারেটিং সিস্টেম কীভাবে সিপিইউকে অ্যাপ্লিকেশন চালনা থেকে "চুরি" করতে পারে এবং একই সাথে চলমান বিভিন্ন অ্যাপ্লিকেশনগুলির মধ্যে সিপিইউ সংস্থানগুলি পরিবর্তন করতে পারে, এমনকি যদি তারা সম্মতি না দেয়।

ফিরে ব্যবসা:

আপনার ম্যানুয়াল টেলিফোন উপমাতে, কল্পনা করুন যে আপনার ফোনটি আসলে বেজে না। আপনার যদি কোনও ফোন কল চেষ্টা করা হচ্ছে তা জানতে, আপনাকে পর্যায়ক্রমে স্ক্রিনটি তাকাতে হবে এবং চেক করতে হবে। এইচটিটিপি সার্ভারের জন্য এটি পরিচালনা করা সহজ করার জন্য (যেহেতু ইতিমধ্যে বেশ কয়েকটি স্তর রয়েছে যাঁরা পর্যায়ক্রমিক চেক করেন) তাই আপনি চেক প্রয়াসকে অবরুদ্ধ করতে পারেন ।

সুতরাং চেক করার পরিবর্তে, সেখানে কিছুই নেই দেখে আবার চেক করার পরিবর্তে আপনি মূলত পুরো সময় পর্দার দিকে তাকিয়ে থাকুন। তবে, আপনি মূলত এটি পরিচালনা করার জন্য একটি সম্পূর্ণ পৃথক ব্যবস্থা পেয়েছেন (আপনার ক্ষেত্রে শ্রবণ কেন্দ্র, যা দরকারী তথ্যের জন্য বাতাসের কম্পনগুলি পরীক্ষা করে, রিংটি), তাই এটি আসলে আপনার মনোযোগের প্রয়োজন হয় না (সিপিইউ সময়)।

এটি এমন কৌশলগুলির দ্বারা আরও উন্নত হয় যা আপনাকে একবারে অনেকগুলি সংযোগ নিরীক্ষণ করতে দেয় (আইওসিপি)। এটি ফোনের রিং সিস্টেমে আরও ঘনিষ্ঠ হয় - আপনার কাছে দশ হাজার ফোন সহ একটি কক্ষ রয়েছে, তবে আপনি কেবল সেই মুহুর্তে যেগুলি বেজেছে তাদের যত্ন নেওয়া, অন্যরা আপনার মনোযোগ নিচ্ছে না।


সাবধান, নেটওয়ার্কিংয়ে "পিং" এর সম্পূর্ণ সম্পূর্ণ অপ্রাসঙ্গিক অর্থ রয়েছে। এছাড়াও, কেন কেউ "হার্ডওয়্যার বিঘ্ন" উল্লেখ করেনি?
মিথ্যা রায়ান

1
@ লাইরিয়ান ভাল, হ্যাঁ, এনআইসি এনআইসি ড্রাইভারকে যে অংশটি বলছে সে অংশেই এটি। এটি জড়িত বিমূর্ততার বিশাল তালিকায় কেবল একটি ছোট্ট ছিটকের মতো মনে হয় এবং সত্যই, পুরাতন স্কুল আর্কিটেকচার, এম্বেডড ডিভাইস বা ড্রাইভার বিকাশকারীদের সাথে ঘুরে বেড়ানো লোকদের বাইরে, এটি অত্যন্ত অস্পষ্ট জ্ঞান, দুঃখের বিষয়। তবে ভাল, আমি মনে করি আমি একটি দ্রুত উল্লেখ করব
লুয়ান

1
বন্দরগুলি কি কেবল সংখ্যা? নাকি এগুলি এনআইসি কার্ডে শারীরিক পিন রয়েছে? 65536 বন্দর থাকতে পারে তা ভাবতে আমার কষ্ট হয়
ধীওয়াকর রিকিকুমার

2
@ ধীবকররভিকুমার: হ্যাঁ, বন্দরগুলি কেবল সংখ্যা numbers এগুলি একটি প্রোগ্রাম বা অপারেটিং সিস্টেম দ্বারা গঠিত, তারা হার্ডওয়্যার কোনও কিছুর সাথে মিল রাখে না।
sleske

1
@ দিওয়াকররভিকুমার বন্দরগুলি কেবল সংখ্যা, তবে হার্ডওয়্যার বিঘ্নগুলি আসলে সিপিইউতে হার্ডওয়ার পিন হিসাবে ব্যবহৃত হত (সুতরাং আপনার কাছে "শূন্যের সাথে বিভাজন পেয়েছে!" এবং "অ্যালার্ম ক্লক বাজছে" এর জন্য অন্য একটি পিন ছিল)) সুতরাং আপনার কেবল তিন বা সাতটি বিভিন্ন বাধা বা এরকম বেশিরভাগ সময় ছিল। এটি পুরানো ফোন স্টেশনগুলির সাথে তুলনাযোগ্য - কল করার জন্য তাদের কাছে আসলে শারীরিক পিন ব্যবহার করা হত তবে তারা আজকাল টিসিপি পোর্টগুলির মতোই সফ্টওয়্যারটিতে স্যুইচ করেছে।
লুয়ান

9

কম্পিউটারগুলি টেলিফোন সুইচবোর্ডের জন্য "এক্সটেনশনগুলির" সাথে সাদৃশ্যযুক্ত "পোর্ট" নামে একটি ধারণা ব্যবহার করে: ক্লায়েন্টটি কেবল সার্ভারের আইপি ঠিকানা "কলিং" করে না, সেই সার্ভারের একটি নির্দিষ্ট পোর্টে অনুরোধও প্রেরণ করে।

হাজার হাজার পোর্ট রয়েছে ( উইকিপিডিয়া তালিকা ), উদাহরণস্বরূপ, পোর্ট 80 এইচটিটিপি-র জন্য ডিফল্ট।

কৌশলটি হ'ল কোনও প্রোগ্রাম, যেমন একটি ওয়েবসার্ভার কোনও নির্দিষ্ট বন্দরে শোনার জন্য নিজেকে নিবন্ধিত করতে পারে। তারপরে ওএস সেই বন্দরে যে কোনও অনুরোধ সেই প্রোগ্রামে আসবে।

বেশ কয়েকটি বন্দর থাকার বিষয়টি হ'ল আপনি একই সার্ভারে একই সাথে একাধিক পরিষেবা চালিয়ে যেতে পারেন, বিভিন্ন বন্দর ব্যবহার করে তারা একে অপরের সাথে হস্তক্ষেপ করবে না।


65,535 পোর্ট সঠিক হতে হবে
ub3rst4r

3

ওয়েবসভারটি নিম্নলিখিত প্রক্রিয়া সহ অবহিত

Accept ()
Liseten()
bind()
socket()

বলুন যে ওয়েবসার্ভার 80 পোর্টে শুনেছে, যখন ক্লায়েন্টের কাছ থেকে অনুরোধটি পোর্ট 80 এ আসে, এটি গ্রহন () সিস্টেম কলের সাথে একটি সংযোগ গ্রহণ করবে। কোনও ক্লায়েন্ট সার্ভারের সাথে সংযোগ না করা অবধি এই কলটি অবরুদ্ধ থাকে।

তারপরে শুনুন () সিস্টেম কলের সাথে সংযোগের জন্য শোনুন এবং সকেটটিকে বাইন্ড () সিস্টেম কল ব্যবহার করে কোনও ঠিকানায় বাঁধুন।

অ্যাটলাস্ট সকেট () সিস্টেম কল দিয়ে সকেট তৈরি করে।

আশাকরি এটা সাহায্য করবে!


0

নিম্নলিখিত ডিরেক্টরি সহ আপনার / var / লগ / অ্যাপাচি 2 ডিরেক্টরি রয়েছে:

access.log
error.log
other_vhosts_access.log

এটি ক্লায়েন্টের কাছ থেকে আপনার চাওয়া সম্পর্কিত, এবং এসএমএস, ইমেল এবং কীভাবে জানাতে হয় তার সাথে সম্পর্কিত।

আমার মিষ্টি

আপনি একটি লগ সার্ভার তৈরি করতে এবং আপনার প্রতিটি লগ যেমন মেল সার্ভার, ডিএনএস সার্ভার, ওয়েব সার্ভার ইত্যাদি প্রেরণ করতে পারেন, তারপরে আপনি এটি বিশ্লেষণ করতে পারেন, এমনকি একই সার্ভারটি ডিবি ব্যবহার করে এবং আপনি অনুসন্ধান চালাতে পারেন।


উত্তরের জন্য ধন্যবাদ, তবে আমি মনে করি আপনি আমার প্রশ্নটি ভুল বুঝেছেন। আমি যখন একটি ফোন কল পাই তখন আমার ফোন বেজে উঠল। সুতরাং আমি জানি যে আমার ফোন বেজেছিল কারণ আমি একটি ফোন কল পেয়েছি। একইভাবে ক্লায়েন্ট যখন একটি অনুরোধ করে তখন কীভাবে ওয়েব সার্ভারকে অবহিত করা হয়?
রাজ কৌতূহলী

0

আমি অনুমান করি যে ওয়েব সার্ভারটি বন্দরের সাথে কল ব্যাক ফাংশনগুলি রেজিস্টার করে।

যাতে যে কোনও নির্দিষ্ট বন্দরে যখনই কিছু পাওয়া যায়, সিস্টেম কল কল ব্যাক ফাংশনটি আগে রেজিস্টার্ড করে। ফিরে আসা কলটির অভ্যন্তরে এটি কোনও ইভেন্ট বা এর মতো কিছু সেট করতে পারে এবং তারপরে ওয়েবসভারের একটি উত্সর্গীকৃত থ্রেড সেই ইভেন্টটির জন্য অপেক্ষা করে। এই থ্রেডটি চলবে এবং এই অনুরোধটির ওয়েব তালিকার ইতিমধ্যে প্রক্রিয়াধীন অনুরোধগুলির মূল তালিকায় সারি করবে।

আমি এখানে যা দিয়েছি তা হ'ল ঘটে যাওয়া বিষয়গুলির একটি অতি পৃষ্ঠপোষক এবং ম্যাক্রো ভিউ। আরও সুনির্দিষ্ট উত্তরের জন্য বিশেষজ্ঞরা না আসা পর্যন্ত অপেক্ষা করা যাক।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.