דף הבית » איך ל » האם שרתי אינטרנט מחזיקים אתר אחד בלבד?

    האם שרתי אינטרנט מחזיקים אתר אחד בלבד?

    כאשר אתה הראשון להתחיל ללמוד איך שמות דומיין, כתובות IP, שרתי אינטרנט, ואתרי אינטרנט כל להתאים ולעבוד ביחד, זה יכול להיות קצת מבלבל או מכריע בזמנים. איך כל זה מוכן לעבוד בצורה חלקה כל כך? פוסט SuperSser של היום Q & A יש את התשובות לשאלות הקורא סקרן.

    מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.

    באדיבות רוזמרי ווגטלי (פליקר).

    השאלה

    SuperUser הקורא user3407319 רוצה לדעת אם שרתי אינטרנט רק להחזיק אתר אחד כל אחד:

    בהתבסס על מה שאני מבין על DNS וקישור שם תחום עם כתובת ה- IP של שרת האינטרנט אתר מאוחסן, האם זה אומר שכל שרת אינטרנט יכול להחזיק רק אתר אחד? אם שרתי אינטרנט מחזיקים יותר מאתר אינטרנט אחד, אז איך כל זה מקבל נפתרה, כך שאני יכול לגשת לאתר שאני רוצה ללא בעיות או לערבב קופצים?

    האם שרתי אינטרנט מחזיקים אתר אחד בלבד, או שהם מחזיקים יותר?

    התשובה

    תורם SuperUser בוב יש את התשובה עבורנו:

    בעיקרון, הדפדפן כולל את שם התחום בבקשת ה- HTTP כך שרת האינטרנט יודע איזה תחום התבקש והוא יכול להגיב בהתאם.

    בקשות HTTP

    כך מתרחשת בקשת HTTP הרגילה שלך:

    1. המשתמש מספק כתובת אתר, בטופס http: // host: port / path.

    2. הדפדפן מחלץ את החלק המארח (דומיין) של כתובת האתר ומתרגם אותו לכתובת IP (אם יש צורך) בתהליך הידוע בשם רזולוציית שם. תרגום זה יכול להתרחש באמצעות DNS, אך הוא אינו חייב (לדוגמה, קובץ המארח המקומי במערכות הפעלה נפוצות עוקף DNS).

    3. הדפדפן פותח חיבור TCP ליציאה שצוינה, או ברירות מחדל ליציאה 80 בכתובת IP זו.

    4. הדפדפן שולח בקשת HTTP. עבור HTTP / 1.1, נראה כך:

    כותרת המארח היא סטנדרטית ונדרשת ב- HTTP / 1.1. זה לא צוין ב HTTP / 1.0 spec, אבל כמה שרתים לתמוך בו בכל מקרה.

    מכאן, שרת האינטרנט יש כמה פיסות מידע כי הוא יכול להשתמש כדי להחליט מה התגובה צריכה להיות. שים לב שניתן לשרת אינטרנט יחיד להיות קשורה למספר כתובות IP.

    • כתובת ה- IP המבוקשת, מהשקע TCP (כתובת ה- IP של הלקוח זמינה גם כן, אך לעתים רחוקות נעשה שימוש, ולפעמים לחסימה / סינון)
    • היציאה המבוקשת, מתוך שקע TCP
    • שם המארח המבוקש, כפי שצוין בכותרת המארח על ידי הדפדפן בבקשת ה- HTTP
    • הנתיב המבוקש
    • כל כותרות אחרות (קובצי Cookie וכו ')

    כפי שאתה נראה לב, ההתקנה המשותפת המשותפת ביותר בימים אלה מעמיד מספר אתרי אינטרנט על כתובת IP אחת: שילוב יציאת, משאיר רק את המארח כדי להבדיל בין אתרי אינטרנט.

    זה ידוע בשם מארח וירטואלי מבוסס שם Apache-land, בעוד Nginx קורא להם שמות שרת בלוקים שרת, ו- IIS מעדיף שרת וירטואלי.

    מה לגבי HTTPS?

    HTTPS שונה במקצת. הכל זהה עד הקמת חיבור TCP, אבל אחרי זה מנהרה TLS מוצפן יש להקים. המטרה היא לא לדלוף כל מידע על הבקשה.

    כדי לוודא ששרת האינטרנט הוא הבעלים של דומיין זה, על שרת האינטרנט לשלוח אישור חתום על ידי צד שלישי מהימן. הדפדפן ישווה את האישור עם הדומיין המבוקש.

    זה מציג בעיה. כיצד שרת האינטרנט יודע איזה אישור של מארח / אתר ישלח אם הוא צריך לעשות זאת לפני קבלת בקשת HTTP?

    באופן מסורתי, זה נפתר על ידי בעל כתובת IP ייעודית (או יציאה) עבור כל אתר המחייב HTTPS. ברור, זה הפך להיות בעייתי כמו שאנחנו אוזל כתובות IPv4.

    הזן SNI (מחוון שם שרת). הדפדפן עובר כעת את שם המארח במהלך המשא ומתן TLS, כך שרת האינטרנט יש מידע זה מוקדם מספיק כדי לשלוח את האישור הנכון. בצד שרת האינטרנט, תצורה דומה מאוד לאופן שבו מארחים וירטואליים של HTTP מוגדרים.

    החיסרון הוא שם המארח הוא עבר עכשיו כמו טקסט רגיל לפני ההצפנה, והוא למעשה דלף מידע. זה נחשב בדרך כלל מסחר מקובל למרות בהתחשב שם המארח נחשף בדרך כלל שאילתת DNS בכל מקרה.

    מה אם אתה מבקש אתר אינטרנט לפי כתובת IP בלבד?

    מה שרת האינטרנט עושה כאשר הוא אינו יודע איזה מארח ספציפי ביקשת תלוי ביישום שרת האינטרנט של התצורה. בדרך כלל, יש "ברירת מחדל", "לתפוס את הכל", או "ליפול בחזרה" אתר שצוין כי יספק מענה לכל הבקשות שאינן מציינות במפורש המארח.

    אתר ברירת מחדל זה יכול להיות אתר אינטרנט עצמאי משלו (לעתים קרובות מציג הודעת שגיאה), או שהוא יכול להיות כל אחד מהאתרים האחרים בשרת האינטרנט, בהתאם להעדפות של מנהל השרתים.


    יש לך משהו להוסיף להסבר? נשמע את ההערות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי מתמצא? בדוק את נושא הדיון המלא כאן.