Hirdetés

Új hozzászólás Aktív témák

  • dqdb

    Topikgazda

    válasz brd #13134 üzenetére

    Nos, a problémát az okozza, hogy Windows alatt a kiterjesztés azonosítja a fájl típusát, az HTTP kommunikációban pedig a content-type mező, és ezt a kettőt meg kell feleltetni egymásnak. Ez általában egyértelmű, mert
    1. a szerver jó content-type-ot ad vissza
    2. a szerver nem ad vissza content-type-ot, de az URL-ből kiterjesztés alapján a böngésző kitalálja a megfelelő content-type-ot

    Olyankor van probléma, amikor nem jó content-type-pal megy vissza az adat, és az URL alapján sem lehet okoskodni, ilyen a te eseted, amikor egy dll adja vissza az oldalt:
    1. korábban az Opera megörült, hogy van kiterjesztés, és abból hibásan arra a következtetésre jutott, hogy te egy dll-t szeretnél letölteni, pedig a helyzet nem ez volt
    2. most a módosítás után az Opera arra a következtetésre jut a query string láttán, hogy nem jó ötlet a kiterjesztés használata, így fogalma sincsen az egészről, ezért az ilyenkor legbiztosabb lépésnek tartott text/plain-t választja.

    Biztosan találkoztál már olyan oldalakkal, ahonnan letöltve download.php volt a mentésre felajánlott fájlnév. Ennek is hasonló oka van, pár HTTP fejlécet kellett volna beállítani, hogy a böngészőt tájékoztassák arról, hogy a download.php nem fájlnév, ő csak az adatot szolgáltatja, és egyúttal a pontos fájlnevet is megadják.

    A BinFix extension a fenti heurisztikát bővíti azzal, hogy a letöltött text/plain dokumentum tartalmából megpróbál következtetni arra, hogy az ténylegesen szöveg-e, vagy bináris adat. Mivel nálad HTML a végeredmény, ezért nem hoz megoldást. Annyit lehetne tenni, hogy a BinFix-hez hasonló megoldással meg kellene győzni az Operát arról, hogy az a tartalom valójában nem olyan típusú.

    Akkor ezen verzióig hibásan működött az Opera?
    Mostanában valamelyik buildnél írták, hogy az RFC ajánlásoknak megfelelően módosították a content type kezelését.

    Az összes többi (pontosabban IE, és Firefox, ahol néztem) böngészőben miért működik?
    Nekem az a gyanúm, hogy ezek a böngészők a BinFix-hez hasonlóan nekiállnak a text/plain adat parse-olásának, és az eredmény függvényében felüldefiniálják a content-type-ot.

    Penge_4: Akkor Linuxban miért tudok hda0 és hasonló nevű mappákat csinálni?
    Mert Linuxban teljes elérési úttal hivatkozol az eszközökre, azaz /dev/hda0 és /dev/null, Windows alatt a felsorolt nevek az adott eszközök fájlként elérhető nevei. Bővebben itt olvashatsz róla.

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

Új hozzászólás Aktív témák