SPEAKER 1: בסדר, בואו לקחת נראה כיצד פתרון צוות בפועל פועל, כך שאתה לקבל תחושה, ראשון מ איך שרת האינטרנט אמור לרוץ, ואיך בעצם אתה יכול לקבל את זה פועל במחשב שלך. אז לדמיין את זה כאן. אני כבר התקנתי בCS50 זיהוי zip pset6 נקודה, למפרט. אני כבר פתחתי את הרוכסן, ויש לי CDed לתוך ספריית pset6. אחד הדברים הראשונים שאתה הולך רוצה לעשות, במיוחד שלך אם כבר משתמש IDE CS50 לשחק יחד עם ההרצאות האחרונות, שבי אנחנו כבר באמצעות PHP ב CS50 IDE, במיוחד, באמצעות שרת האינטרנט שנקרא Apache, לפיה ניתן להתחיל ולהפסיק אותו עם הפקודה ש, Apache 50. ראשית, קדימה, הקלד "תחנת האפצ'י 50" רק כדי לוודא שאם היית הבא יחד בימים האחרונים, ואתה הפך באפצ'י, אתה מפנה אותו בדרך זו על ידי עצירת השרת. עכשיו, מה אני הולך לעשות בדיוק מה המפרט אומר לי לעשות. אני מתכוון ללכת לקו נטוי CS50 טילדה שרת נטוי pset6, ורק על Enter. תוכל להבחין כי אני צעקתי על עם קצת מידע שימוש, לפיה אני צריך להיות פועל התכנית כשרת עם p מקף אופציונאלי ולאחר מכן מספר יציאה, שבו אתה בעצם יכול להשאיר ריק כי על ידי ברירת מחדל, למפרט, שרת האינטרנט הולך תניח שאתה רוצה יציאה 8080. בינתיים, אתה אולי זוכר ש היציאה 8080 היא לא ממש סטנדרטית, ולא יציאה 80 היא מספר שדיברנו על להיות ברירת המחדל עבור HTTP. ובכן, מתברר שCS50 IDE פשוט מוגדר בצורה, כך שכאשר אתה עם דפדפן לנסות לבקר יציאה 80 מהעולם החיצוני, זה הולך למיין של קסם יציאה קדימה, או להפנות את עצמו, לבתוך 8080 יציאה של השרת שלך עצמו. אז הדבר האחרון שכאן היא הפקודה קו טיעון, בדרך למסלול. ועל ידי שאני רק כלומר, מה לעשות אני תיקייה רוצה לומר לשרת להשתמש כדי לשרת את קבצים? במילים אחרות, אם המשתמש מבקר ב לחתוך, מה שהוא או היא צריך לראות? ובכן, בואו נלך קדימה ו לרוץ בדיוק את זה שוב, זה זמן לציין שאני רוצה השורש של שרת האינטרנט שלי להיות הספרייה הציבורית, שמגיע עם בעיה להגדיר קוד הפצה שש. כשאני על Enter, תראה בצהוב כאן, תזכורת על מה תיקייה אני למעשה משתמש. במקרה זה, זה מחרוזת ארוכה, "ציבור pset6 סביבת העבודה של אובונטו הבית." וכי המילה האחרונה היא מה מפתח. ואז לבסוף, ככל הנראה, שלי שרת של החברה ההאזנה ביציאה 8080. מה אני הבא אני הולך לעשות הוא זוכר ש בתעודת זהות CS50 בפינה הימנית העליונה של המסך, אתה הולך לראות כתובת אתר שהוא ide50-username.cs50.io. ואכן, אם תלחץ על כי, אתה תהיה לקחת משם לכרטיסיית דפדפן אחרת, כי, במקרה זה, הוא הולך להראות לי את התוכן שורשי שרתי אינטרנט שלי. במילים אחרות, את הקבצים שאתה רואה כאן, נקודת HTML חתול, חתול הנקודה JPEG, נקודת favicon ICO, שלום הנקודה HTML, שלום PHP נקודה, ובדיקה, כל של אותו תוכן שהיית רואה עם LS הפנימי של הספרייה הציבורית שלי. ומה נחמד הוא שאם אני הולך קדימה ולחץ עכשיו על נקודת HTML חתול, אני רואה נקודת חתול HTML. ואם אני לוחץ על נקודת חתול JPEG, או נקודת שלום HTML, או אפילו להקליד את השם שלי דוד, ולאחר מכן לחץ על "להגיד שלום," תראה שכל קבצים לעבוד כי צוות פתרון, כמובן, הותקן בCS50 זיהוי הוא מתפקד במלואה. כך זה עובד בדיוק כמו שלך פתרון סופו של דבר צריך לעבוד. בינתיים, אם נחזור למסוף שלי חלון, שבו אני רץ את פקודת השרת, שים לב למה הקונסולה כבר אמרה. אני רואה כאן שהבקשה הראשונה ש קבלתי ממש היה מקבל קו נטוי חתול נקודת HTML, גרסת HTTP 1.1. ולאחר מכן, בירוק מה פתרון צוות עשה הוא זה שהראה לי הקו הראשון של פלט כי שרת האינטרנט מגיב עם. במילים אחרות, יש לנו כבר כתב את הקוד שנפתחת שמעטפה וירטואלית, מכיל שבקשת הגט. ואז אנחנו מגיבים ל משתמשים אבל, בו זמנית, להדפיס לפלט המסך כאן HTTP 1.1, 200 אישור כדי לאשר את מה שאנחנו מכניסים ב מעטפת ההחזרה, אם אפשר לומר כך, כי אנחנו שולחים בחזרה למשתמש. ואז מה קורה כאן כי בחלון המסוף, אנחנו רצים באינטרנט שרת, ולכן, זה האזנה לHTTP בקשות על יציאת TCP 8080. בינתיים, בדפדפן האינטרנט שלי, כאני לוחץ דרך כל של אותם קבצים, או אפילו קלט שלי שם דוד, ולאחר מכן לחץ על שלח, שהדפדפן שלי מדבר לשרת האינטרנט. ומה עושה את של שרת האינטרנט, לאחר מכן, שבחלון המסוף הוא מראה לי בדיוק הקו הראשון זה התקבל בוירטואלי מעטפה ובדיוק הקו הראשון זה להיות הגיב שללקוח האינטרנט.