ওয়েব সার্ভারগুলি কীভাবে আপনি সরাসরি আইপি ঠিকানা অ্যাক্সেস ব্যবহার করছেন কিনা তা জানেন?


63

কিছু ওয়েব সার্ভার, যখন তাদের আইপি ঠিকানা ব্যবহার করে অ্যাক্সেস করা হয়, সরাসরি একটি আইপি ঠিকানা অ্যাক্সেস অনুমতি দেয় যে একটি ত্রুটি ফেরত।

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


2
আমি মনে করি, তিনি সত্যিই কি জন্য জিজ্ঞাসা একই বাস্তব হোস্টে ভার্চুয়াল সার্ভারগুলি সরবরাহ করার জন্য খুব প্রারম্ভিক HTTP প্রোটোকলে যোগ করা হয়েছিল।
JDługosz

3
এটি মূলত একই প্রক্রিয়া যা একটি পৃথক সার্ভারকে বিভিন্ন ভার্চুয়াল হোস্টগুলির মধ্যে পার্থক্য করতে দেয়। আসল সার্ভার তার ভার্চুয়াল হোস্টগুলির একটিতে একটি URL টি ম্যাপ করে। অনেক সার্ভার ডিজাইন বা ডিফল্ট দ্বারা, একটি unmapped ইউআরএল জন্য একটি fallback না।
Manngo

আপনি DNS কে বাদ দিতে পারেন কিন্তু যদি আপনি ডোমেন নামটির জন্য আপনার হোস্ট ফাইলটিতে একটি এন্ট্রি তৈরি করেন তবে এই ত্রুটিটি এড়াতে পারেন। আপনার ব্রাউজার ডোমেন নামটি সন্ধান করবে এবং হোস্টে এটি অন্তর্ভুক্ত করবে: শিরোনাম, তবে হোস্ট ফাইল এন্ট্রির কারণে কোনও DNS ক্যোয়ারী তৈরি করা হবে না।
Monty Harder

সাধারণত এই ধরনের প্রশ্নের উত্তর হল, কারণ আপনি তাদের বলা
Thomas

উত্তর:


91

আপনার প্রশ্নের উত্তর দিতে এটা কিভাবে জানেন , এটি আপনার ব্রাউজার সার্ভার প্রেরণ করে কি করতে হবে।

আপনি সঠিক যে সিস্টেমটি সর্বদা এটি একটি আইপি ঠিকানায় সমাধান করে তবে ব্রাউজারটি যে URLটি আপনি HTTP হেডারে অ্যাক্সেস করার চেষ্টা করেছেন তা পাঠায়।

এখানে একটি নমুনা শিরোনাম যা আমি অনলাইন খুঁজে পেয়েছি, উইন্ডোজ এ ফায়ারফক্স ব্যবহার করা এবং টাইপ করার জন্য এটি সংশোধন করা হয়েছে apple.com ঠিকানা বারে:

GET / HTTP/1.1
Host: apple.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

আপনি যদি তার আইপি ঠিকানাটি ব্যবহার করেন তবে শিরোনামটি দেখতে হবে:

GET / HTTP/1.1
Host: 17.142.160.59
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

এগুলির উভয়ই একটি সকেটে একই আইপি ঠিকানায় পাঠানো হবে, তবে ব্রাউজার সার্ভারকে এটি কী অ্যাক্সেস করে তা জানায়।

কেন? কারণ একই IP ঠিকানা সহ ওয়েব সার্ভারগুলি একাধিক সাইট হোস্ট করে এবং প্রতিটির জন্য বিভিন্ন পৃষ্ঠা দিতে পারে। এটি আইপি ঠিকানা দ্বারা কোন পৃষ্ঠাটি চায় তা পার্থক্য করতে পারে না কারণ তাদের সকলের একই আছে - তবে এটি HTTP শিরোলেখ দ্বারা আলাদা করতে পারে।


7
আহ, এখন অনেক বেশি জ্ঞান করে! সুতরাং মূলত, ব্রাউজার IP বা ডোমেনের সাথে আইপি হেডারে প্রেরণ করে, এবং সাইটটি এর উপর তার ধারণা তৈরি করে। তাই সত্যিই, এই সীমাবদ্ধতা বাইপাস করা সহজ?
Joseph A.

7
এটি এমন নিষেধাজ্ঞা নয় যে আপনি বাইপাস করছেন, এটিই যে আপনি বল খেলছেন না এবং আপনি কিছু অদ্ভুত ফলাফল পেতে চলেছেন।
iAdjunct

আপনি যদি প্রক্সি ব্যবহার করেন তবে এই HTTP অনুরোধগুলি আপনি পাবেন। একটি প্রক্সি ছাড়া, তথ্য আসে host হেডার। দেখ এই উদাহরণ
0xFE

2
bytec0de: এর অন্য অংশ হল ওয়েব সার্ভার কনফিগারেশানগুলি প্রায়ই হোস্ট নামের উপর ভিত্তি করে সেট আপ করা হবে। আইপি প্যাকেট আইপি ঠিকানা নির্দিষ্ট করে, টিসিপি সেগমেন্টটি পোর্ট নম্বরটি নির্দিষ্ট করে এবং HTTP হেডার হোস্টনামটি নির্দিষ্ট করে। তাই সাধারণত সার্ভারগুলিকে কনফিগার করা হয় "যদি ক্লায়েন্ট / ব্রাউজার example.com এর জন্য জিজ্ঞাসা করে তবে সেগুলি দিন।" তারা আইপি ঠিকানাগুলি বা ওয়াইল্ডকার্ডগুলির প্রতিক্রিয়া দেওয়ার জন্য সেট আপ করতে পারে (কিছু প্রতিক্রিয়া), তবে অনেক লোক কেবল উদাহরণগুলি অনুলিপি করে এবং অনেক পূর্ব-বিদ্যমান উদাহরণ ব্রাউজার দ্বারা সরবরাহিত ডোমেন নামের উপর ভিত্তি করে।
TOOGAM

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

21

HTTP 1.1 প্রোটোকল (পূর্ববর্তী HTTP 1.0 সংস্করণটি বেশ কিছু সময়ের জন্য অপ্রচলিত হয়েছে, তাই ব্রাউজারের সাম্প্রতিক সংস্করণটি ব্যবহার করা অসম্ভাব্য) host শিরোনাম চালু করা হয়েছিল। জন্য HTTP 1.1 এটি একটি প্রয়োজনীয় শিরোনাম লাইন যা একটি ব্রাউজার দ্বারা জারি করা আবশ্যক । ডোমেন নামটি সেই লাইনের ব্রাউজার দ্বারা অন্তর্ভুক্ত করা হয়েছে, উদাঃ। Host: example.com। সুতরাং ওয়েব সার্ভার যে ব্রাউজারটি যে লাইন থেকে অ্যাক্সেস করতে চায় তা ওয়েব সার্ভার জানে। যেহেতু কোনও ওয়েব সার্ভার কয়েক ডজন ওয়েবসাইটকে সমর্থন করতে পারে, তাই অনুরোধকৃত পৃষ্ঠাটি কোন ওয়েব সাইটে থাকে তা নির্ধারণ করতে সেই লাইনটি গুরুত্বপূর্ণ। উদাহরণস্বরূপ ব্রাউজারটি হোম পেজটিকে example.com এ একটি সাইটের জন্য অ্যাক্সেস করতে চায় বলে মনে করে, এটি সার্ভারে সংযোগ করার সময় সার্ভারে নিম্নলিখিত লাইনটিকে ইস্যু করে:

GET / HTTP/1.1

সেই লাইনটির জন্য রুট ডকুমেন্টটি পেতে ব্রাউজারের ইচ্ছাগুলি নির্দিষ্ট করে, যেমন, "/" ওয়েবসাইটের জন্য। আপনি অ্যাক্সেস করতে চেয়েছিলেন /somedir/testpage.html, GET /somedir/testpage.html "পেতে" লাইন হবে। লাইন নীচের লাইন অনুসরণ করা হবে:

Host: example.com

তাই যদি ওয়েব সার্ভার ওয়েবসাইট example.com সমর্থন করছে, someothersite.com, yetanothersite.org, ইত্যাদি, এটি জানে যে এটি example.com এর মূল পৃষ্ঠাটি ফেরত দিতে হবে। যদি এটি লাইন না পায়, অথবা এতে তালিকাভুক্ত একটি ডোমেন নাম না থাকে Host লাইন, এটি কোন ওয়েবসাইটের হোম পৃষ্ঠাটি ফেরত দেওয়া উচিত তা জানেন না। সুতরাং এটি একটি ত্রুটির বার্তা ফেরত পাঠাতে পারে, অথবা সার্ভারের জন্য "ডিফল্ট" সাইটের জন্য হোম পৃষ্ঠাটি ফেরত দিতে পারে।

আপনি ব্যবহার করে একই কমান্ড একটি ব্রাউজার সমস্যা ইস্যু করতে পারেন টেলনেট প্রোটোকল, উদাঃ, telnet example.com 80 একটি লিনাক্স শেল প্রম্পট বা একটি অ্যাপল ওএস এক্স থেকে প্রান্তিক উইন্ডো, ডিফল্ট HTTP পোর্ট সংযোগ, পোর্ট 80 - দেখুন PUTTY ব্যবহার করে একটি ওয়েবসাইট অ্যাক্সেস পরীক্ষা উইন্ডোজ সিস্টেমে PUTTY দিয়ে এমন পদক্ষেপের জন্য।


3
শুধু একটি নোট: হোস্টিং হেডারটি HTTP 1.0 এও ব্যবহার করা হয়েছিল, এটি ঠিক ছিল না প্রয়োজনীয় । HTTP 1.1 ক্ষেত্র বাধ্যতামূলক করা। বাস্তবে, ব্রাউজার হোস্ট হেডার (উপরে বর্ণিত সমস্ত কারণের জন্য) পাঠাতে না পারলে অনেক HTTP 1.0 সার্ভার কেবলমাত্র কাজ করে না, তাই বেশিরভাগ ব্রাউজার এটি যেভাবেই প্রেরণ করে।
Luaan

6

এই কারণে হয় Host: HTTP হেডার। এই একই আইপি ঠিকানা একাধিক সাইট হোস্টিং জন্য বেশ দরকারী। উদাহরণ স্বরূপ, http://www.k7dxs.net/ এবং http://www.philipgrimes.com/ উভয় একই আইপি ঠিকানা হয়। যাইহোক, কারণ Host: হেডার, তারা দুটি ভিন্ন সাইট প্রদর্শন করতে পারেন।

এইচটিটিপিএসের জন্য, @ টুথব্রাশ হিসাবে উল্লেখ করা হয়েছে, তারা টিএলএস সার্ভার নাম ইঙ্গিত ব্যবহার করে কারণ হোস্ট হেডার এনক্রিপ্ট করা অনুরোধের অংশ, এবং সার্ভারটি কোন শংসাপত্রটি ছাড়াই এটি সরবরাহ করে না তা জানে না।

মজা পরীক্ষা: ফায়ারফক্সের জন্য টিম্পার ডেটা পান (আমি ক্রোমের জন্য সমতুল্য খুঁজে পাচ্ছি না) এবং টিপ্পিং শুরু করি। খোলা http://slipstation.com/ এবং সম্পাদনা করুন Host: অনুরোধের হেডার হতে http://www.zombo.com/ । কিছু সম্ভাব্য যেখানে আপনি একটি সম্ভবত পরিচিত ওয়েবসাইট দেখতে পাবেন।


আসলে, যারা সাইট ব্যবহার সার্ভার নাম ইঙ্গিত । সার্ভারটি কোন শংসাপত্রটি ব্যবহার করতে জানে না সেহেতু কোনও সাইটটি HTNPS এর সাথে HTTPS এর উপর একই সার্ভারে হোস্ট করা থাকলে কোন সাইটটি প্রদর্শন করা যায় তা জানার কোন উপায় নেই।
Toothbrush

ওহ, আকর্ষণীয়। আমার পরীক্ষা এখনও কাজ করবে?
Duncan X Simpson

হ্যাঁ, যদি আপনি দুটি সাইট খুঁজে পান যা HTTP এ একই IP ঠিকানাতে হোস্ট করা হয়।
Toothbrush

কিন্তু HTTPS কি আমি জিজ্ঞাসা করা হয়।
Duncan X Simpson

না, এটা HTTPS উপর কাজ করা উচিত নয়। এটি যদি, ওয়েব সার্ভারে একটি নিরাপত্তা দুর্বলতা আছে।
Toothbrush

5

ওয়েব সার্ভার শুধুমাত্র একটি নির্দিষ্ট ডোমেইন বা সাবডোমেন সংযোগ গ্রহণ করতে কনফিগার করা যেতে পারে। এটি একাধিক ডোমেন হোস্টিং হতে পারে।

একটি সরাসরি আইপি ঠিকানা ব্যবহার করা হয় যখন ওয়েব সার্ভার কি কনফিগারযোগ্য হয়। অ্যাপাচের ক্ষেত্রে, এটি ডিফল্টভাবে সক্ষম হ'ল সক্রিয় হোস্টগুলি থেকে হোস্ট নামে প্রথম নামটি, যা আলফা সংখ্যাসূচকভাবে সাজানো হয়।

দ্রুত অনুসন্ধানের পরে এটি পাওয়া যায় অ্যাপাচি ডকুমেন্টেশনের সবচেয়ে প্রাসঙ্গিক অংশ:

https://httpd.apache.org/docs/current/vhosts/name-based.html

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