ההבדל בין CGI ו- Servlet ההבדל בין

Anonim

CGI לעומת Servlet

CGI (ממשק Gateway משותף) הוא הניסיון הראשון מאוד לספק למשתמשים תוכן דינמי. זה מאפשר למשתמשים לבצע תוכנית שוכן בשרת לעבד נתונים ואפילו לגשת למסדי נתונים כדי לייצר את התוכן הרלוונטי. מאז אלה הן תוכניות, הם כתובים במערכת ההפעלה המקומית ולאחר מכן מאוחסנים בספרייה מסוימת. Servlet הוא יישום של Java שמטרתו לספק את אותו שירות כמו CGI עושה, אבל במקום תוכניות הידור במערכת ההפעלה המקומית, זה compiles לתוך Java bytecode אשר לאחר מכן להפעיל את מכונה וירטואלית ג 'אווה. למרות תוכניות Java יכול להיות הידור לתוך קוד הילידים, הם עדיין מעדיפים לקמפל ב- Java bytecode.

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

-> ->

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

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

סיכום:

1. CGI הם בדרך כלל הרצה כי הם ילידי למערכת ההפעלה של השרת, למרות Servlets ניתן גם הידור למערכת ההפעלה המקומית זה יכול להיות הידור ל Java bytecode אשר לאחר מכן לרוץ על JVM

2. תוכניות CGI הם פלטפורמה תלויה בעוד Servlets הם עצמאיים פלטפורמה

3. תוכניות CGI לרוץ כמו תהליכים נפרדים במחשב בעוד Servlets לרוץ על JVM

4. CGI יכול להיות פגיע יותר להתקפות מאשר servlets

5. CGI יכול לעבד סקריפטים ישירות בזמן שהוא צריך להיות מתורגם ומורכב לפני שניתן להפעיל אותו כמו servlet