אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » אינטרנט אקספלורר לא מצליח להוריד קבצים משרת מאובטח

אינטרנט אקספלורר לא מצליח להוריד קבצים משרת מאובטח

רן בר-זיק ינואר 29, 2012 8:25 am אין תגובות

סיפורה של תקלה מוזרה שנתקלתי בה באקספלורר והדרך לפתור אותה

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

רוב הטרוניות שיש על אינטרנט אקספלורר נובעות בדרך כלל מחוסר התאמתו לתקני האינטרנט, על כך שצריך לשבור את הראש על CSS עבורו, על כך שיש תקלות JavaScript מוזרות – במיוחד אם אתם לא משתמשים ב-jQuery וכו' וכו'. אך רבים מתעלמים מכך שהדפדפן המוזר (בגרסת 8 ומטה) מסוגל גם לתת שגיאות אקזוטיות יותר שגם מפתח מנוסה לא יאמין שהן מתקיימות. אני אדגים באמצעות סיפור אמיתי שהתרחש – בתקווה שתזכרו אותו ואם וכאשר תקלה דומה תקרה אצלכם, תוכלו לנסות ולפתור אותה.

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

הדבר הראשון שעשיתי הוא כמובן לחשוד שבאג JavaScript מוזר מונע את ההקלקה או תוקע את תהליך ההורדה, או איזה אלמנט CSS מתפרע 'מכסה' את הקישור ומונע הקלקה. הדברים האלו קורים לא מעט פעמים ואם היה לי שקל על פעם ששמעתי 'זה לא עובד באינטרנט אקספלורר', הייתי כבר מולטי מיליארדר. השתמשתי בכלי המפתחים של אינטרנט אקספלורר על מנת לרנדר את הדף כמו אינטרנט אקספלורר 8 וניסיתי ללחוץ על הורדת הקובץ – עבד!

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

לי מותקן אינטרנט אקספלורר 9 שלמרות שאני מבקש ממנו לרנדר את הדף כאינטרנט אקספלורר 8 – הוא עובד כמו מלך והדפדפן המקורי אינטרנט אקספלורר 8 שמותקן אצל י' (ובדקתי גם דפדפני אינטרנט אקספלורר 8 אחרים במחשבי שאר חברי הצוות) הורדת הקובץ נתקעת. הדפדפן הארור עושה סימנים שהוא מוריד את הקובץ – אך alas, הוא לא מתחיל בהורדה אלא רק בוהה בך בעיני עגל מטופשות וכחולות בצורת e.

זה השלב שגם מפתח אינטרנט מנוסה מתחיל להזיע – אך פתרון הבעיה נעוץ בעובדה שזה עובד באינטרנט אקספלורר 9 שמרנדר לפי 8 ולא עובד באינטרנט אקספלורר 8 – סימן שלא מדובר פה בבאג ב-client side אלא בבאג או פיצ'ר משונה במיוחד שנמצא באינטרנט אקספלורר 8 עצמו. וזה הדבר החשוב ביותר שאתם צריכים לקחת אתכם מהמאמר הזה – לא כל בעיית אינטרנט אקספלורר נובעת מהרינדור השגוי והעקום של הדף – לפעמים זה סתם באג צולע בתוכנה עצמה.

האפליקציה שלנו ישבה על שרת secure (כלומר הכתובת שלו מתחילה ב-https). בדיקה מהירה הראתה שאם אני מתחבר לשרת באמצעות http, ההורדה עובדת דווקא בסדר גמור. לאחר גיגול נמרץ ויריקות אינספור על מסך המחשב, הסתבר שמקור התקלה נובע מכך שאינטרנט אקספלורר לא מוכן לקבל בתנאים מסוימים קבצים שמגיעים משרת https ומגיעים ללא ה-header הבא:


Cache-Control: private;

לשנות header לקובץ זה קל (תלוי באפליקציה שלכם, אבל זה לא אמור להיות מאד קשה), אם יש לכם דרופל זה אפילו עוד יותר קל:


function hook_file_download($filepath) {
        drupal_set_header('WHATEVER HEADER YOU WANT');
}

[אגב, בדרופל לא צריך לעשות את זה, כיוון שהם נתקלו בבאג ובמידה והשרת שעליו מאוחסן דרופל הוא מאובטח, דרופל יורה את ה-header הזה באופן אוטומטי בכל הורדת קובץ, במקרה שלנו הוא לא עשה את זה בגלל ארכיטקטורה מאד מסוימת, אבל זה סיפור אחר שאני לא יכול לספר כאן]

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

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
אינטרנט אקספלורר

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד