DDoS Community

yisrael rosen
yisrael rosen

Posted on

הגיק היומי:SSG מנוע לבניית אתר סטטי

באופן כללי יש שתי דרכים לבנות אתר

  1. דפי HTML+CSS+JS סטטיים
  2. אתר דינמי שיוצר את הדף מתוך הקוד בכל בקשה

במשך השנים מי שרצה להקים בלוג פשוט השתמש באתר דינמי (כמו וורדפרס) כי לבנות אותו לבד מדפי HTML זה קצת כאב ראש.

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

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

חוץ מיעילות כמובן זה מוסיף גם לאבטחה
כי לתוקף יש גישה רק לקבצים סטטיים ולא יכול להזריק קוד וכו'


לקריאה נוספת:
https://jamstack.org/generators
https://www.cloudflare.com/learning/performance/static-site-generator

Discussion (3)

Collapse
nnol profile image
Noam Nol

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

בניגוד לזה, server side rendering (ssr) מבצע בשרת רינדור ראשוני של ה html לפני שהוא שולח.

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

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

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

Collapse
y_rosen profile image
yisrael rosen Author

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

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

הנה לדוגמה האתר של letsencrypt
יש בו רק קובץ js קטן, כל השאר זה HTML+CSS
אין סיבה לאחסן כזה אתר בוורדפרס
ולבנות את כל הדפים לבד עם HTML+CSS זה קצת מיותר.

Collapse
y_rosen profile image
yisrael rosen Author

הנה עוד כמה אתרים שמשתמשים במנוע SSG
כמובן שלפעמים צריך לשלב API דינמי, למשל למנוע חיפוש באתר.
kubernetes.io
vote.gov
docs.datadoghq.com
blog.getbootstrap.com