Keresés

Hirdetés

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

  • pc360

    addikt

    válasz makoss #26687 üzenetére

    Az nCore-nál hülyén vannak megoldva a dolgok. Egy szar oldal miatt nem a böngésző a hibás.

    Válogatott, rendszeresen frissített programok ► neszetools.hu

  • dqdb

    Topikgazda

    válasz makoss #26687 üzenetére

    TL;DR ebben a történetben két hülye van, és nincsen rá megoldás:
    1. az nCore, mert teljesen feleslegesen POST alapú formmal oldotta meg a keresést, és
    2. a régi Opera, mert az implementációja sérti a HTTP/1.1 szabványt.

    És akkor jöjjön részletesebben ... kétféle megoldás létezik formok adatának beküldésére: vagy a címmezőben mennek át ? után (GET), ez jellemzően kevés mező/rövid szöveg esetében alkalmazzák, vagy a kérés törzsében megy át (POST), ezt jellemzően rengeteg mező/hosszabb szövegek esetén alkalmazzák. Az könnyen belátható, hogy az nCore az előző kategóriába esne, azonban érthetetlen* módon mégis az utóbbi megoldást választották úgy, hogy az esetükben a GET-es megoldásnak még a cache-elhetőség miatt elvi előnye is lenne.

    És akkor lássuk, mit mond erről a HTTP/1.1 szabvány:

    "Responses to this method are not cacheable, unless the response includes appropriate Cache-Control or Expires header fields."

    Ez eléggé egyértelmű megfogalmazás, alapvetően nem lehet cache-elni a választ, kivéve, ha a megnevezett két mező értéke erre utasít. Lássuk, az nCore mit ad vissza ebben a két mezőben:

    Cache-Control: no-store, no-cache, must-revalidate
    Expires: Thu, 19 Nov 1981 08:52:00 GMT

    Látható, hogy a két mezőben a nehogy cache-eld a választ kifejezés négy szinonimáját adják át, így a szabványkövető böngészők egy dolgot tehetnek, az általad linkelt képen láthatóhoz hasonló üzenetet jelenítenek meg. Ez alól az Opera 12 az egyetlen kivétel, de az is azért, mert magasról tesz a szabványra.

    A dologra hatféle megoldás létezik:
    1. az nCore átállítja POST-ról GET-re a formot, ha már az oldaluk kezeli a GET-es kéréseket (kipróbáltam az oldal forrásszövegébe belenyúlással)
    2. az nCore módosítja a POST-ra adott választ, és a Cache-Control + Expires mezőkbe olyan értékeket ad vissza, amelyek lehetővé teszik a cache-elést
    3. valaki ír egy olyan bővítményt, amelyben egy content script lecseréli a POST-ot GET-re (figyelem, ekkor az nCore oldalán látható, hogy te módosítottad az oldaluk működését)
    4. valaki ír egy olyan bővítményt Opera/Chrome esetében a chrome.webRequest API-ra építve, ami a két problémás mezőt módosítja a válaszban
    5. új fülre nyitod a keresési eredményeket, hogy ne kelljen visszafelé navigálni
    6. mérgelődsz tovább

    A következő nem nevezhető megoldásnak:
    1. a már régóta nem támogatott Opera 12.18 használata 2017-ben

    * az egyetlen érthető magyarázat az lenne, hogy így egy egyszerű naplóban nem szerepelne, hogy pontosan mire kerestél rá, csak az, hogy kerestél az oldalukon. Ezt a magyarázatot azonban jelentősen gyengíti az a tény, hogy a letöltés már nem POST alapú, hanem GET-es, így az ellenben szépen látszik a naplóban, hogy mit töltöttél le, szóval az érthetetlen szó továbbra is áll

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

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