זמני המתנה וניסיונות חוזרים
שיעור 45 מתוך 47 בקורס עבודה עם רשתות דרך הטרמינל של Coddy.
כברירת מחדל, curl ממתין זמן רב מאוד. בסקריפט זה באג: מארח אחד שאינו נגיש, והמשימה נתקעת עד שמישהו שם לב.
curl -s --max-time 5 --connect-timeout 2 URL--connect-timeout מגביל כמה זמן יוקדש ליצירת החיבור. --max-time מגביל את משך הפעולה כולה. חריגה מאחד מהזמנים האלה מחזירה קוד יציאה 28.
ניסיון חוזר דורש יותר זהירות מכפי שנדמה. בטוח לחזור על בקשת GET או PUT שנכשלה, משום ששתיהן אידמפוטנטיות. חזרה על בקשת POST עלולה ליצור רשומה שנייה, ופסק זמן הוא המקרה הגרוע ביותר עבורה: לעולם לא ידעת אם הבקשה הראשונה עובדה.
לכן קריאות חוזרות אינן בעייתיות, אבל חשוב לחשוב לפני שמנסים שוב פעולות כתיבה. כשאין ברירה, בקשו מהשרת דרך להפוך אותן לבטוחות, למשל באמצעות מפתח אידמפוטנטיות.
אתגר
בינוניהגבילו את משך הזמן של בקשה שלעולם לא תיענה.
שלחו בקשה לכתובת http://10.255.255.1/, כתובת שבולעת תעבורה בשקט, וותרו לאחר 2 שניות, והדפיסו gave up: ואחריו את קוד היציאה של curl.
הפלט הצפוי:
gave up: 28בלי הגבלת זמן, הבקשה הייתה נתקעת במשך הרבה יותר מדקה.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה עבודה עם רשתות דרך הטרמינל
6היכרות מעמיקה עם curl
צפייה בכותרותשמירת תגובותכותרות מותאמות אישיתסטטוס ותזמוןקודי יציאה של curlסיכום: דגלים של curl9אימות וניפוי שגיאות
מפתחות API ו-Bearerסוכן המשתמשזמני המתנה וניסיונות חוזריםקריאת הודעת כשלסיכום: ניפוי שגיאותתרגלו בעצמכם: Terminal אונליין