Primárně je to určitě na aplikaci. Na druhou stranu - OS by se neměl spoléhat na to, že aplikace jsou napsané správně (nejsou), a tudíž by se měl snažit dopady špatně napsaných aplikací minimalizovat (kde to jde). A zrovna v tomhle případě OS tu chybu v aplikaci umocňuje...
Nepadnul tady asi jediný spolehlivý způsob jak se proti tomu bránit - kontrola SSL certifikátu. Při připojení by aplikace měla například zkontrolovat jestli je certifikát "od nás" a pokud ne, tak zamítnout komunikaci a dát o tom uživateli vědět, že se jej třeba někdo snaží na této wifině napadnout.
V tomhle je OS nevinně, je to na vývojářích aplikací.
"is cacheable" = "is suitable for caching" = "může být cachováno"
oproti tomu "má být cachováno" by bylo "should/shall/has to be cached"
To "This response is cacheable unless indicated otherwise" ale znamená, že to má být cachováno, pokud není explicitně řečeno, že to má být jinak. Takže význam není "může být", ale "má být, pokud není stanoveno jinak".
Specifikace říká "This response is cacheable unless indicated otherwise". Tedy že přesměrování může být "uloženo trvale", nikoliv že musí být uloženo trvale. Bezpečnější implementace (bez trvalé cache) tedy specifikaci nijak neodporuje.
Na druhou stranu souhlasím, že trvalá cache je logičtější a uživatelsky přítulnější. Od teď už se ale taky ví, že je nebezpečná - a to by mělo mít přednost. Nedávám Applu za vinu, že na to nepřišli sami (nikdo nemůže dopmyslet všechno), ale určitě by teď výchozí chování měli změnit.
Ano, systémová komponenta reaguje na "301 Moved Permanently" jak se očekává - přesměrovává trvale. Co s tím? Ignorovat specifikaci HTTP protokolu?
"The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise."
Bude to zřejmě zčásti i problém IOSu - aplikace HTTP komunikaci neimplementují samy, a to zapamatování si přesměrování bude zřejmě výchozí nastavení někde uvnitř HTTP modulu v IOSu.
Jedna to není problém iOSu,ale aplikací na iOSu. A druhá věc je, že nad konkrétním serverem kontrolu nemám, právě proto dochází k přesměrování na jiný.