Ordliste

Filer, nedlastinger og overføring

Det meste av det som føles vilkårlig med filer på en iPhone følger av én regel om isolasjon, og det meste av det som gjør nedlastinger pålitelige følger av én funksjon i HTTP. Dette er begge, pluss måtene filer kommer fra én enhet til en annen.

Sandkasse

Regelen om at hver app bare kan se sin egen lagring. Det er hvorfor én app ikke kan åpne en annens nedlastinger, og hvorfor «filen ligger ved siden av videoen» ikke er en ting som finnes på iOS.

Hver app får en privat katalog og ingen sikt til noen andres. Filer flytter mellom apper bare gjennom bevisste handlinger — et deleark, en dokumentvelger, et drag — hver av dem en beslutning personen tok heller enn en app som hjalp seg selv.

Kostnaden lander på små steder. Skrivebordspillere finner film.srt ved siden av film.mkv automatisk; på iOS finnes det ikke noe «ved siden av», så en undertekstfil må overleveres med vilje og appen må være det som husker paringen.

Se også: App-gruppeSikkerhetsbundet bokmerke

App-gruppe

En delt container to apper fra samme utvikler begge kan åpne — den eneste godkjente sprekken i sandkassen. Det er hvordan en share-utvidelse overleverer en fil til appen den hører til.

En share-utvidelse er et separat program fra appen den ser ut til å være del av, med sin egen sandkasse og et svært kort liv. Den kan ikke skrive inn i hovedappens lagring.

Så den skriver inn i en container begge har lov til å se, og appen tømmer den containeren neste gang den åpnes. Ingenting krysser en utviklergrense, og ingenting krysser uten et eksplisitt trykk.

Se også: Sandkasse

Sikkerhetsbundet bokmerke

security-scoped bookmark

Et token som husker tillatelse til en mappe utenfor sandkassen — en ekstern disk, en mappe i iCloud — slik at appen kan åpne den igjen senere uten å spørre på nytt.

Når du velger et sted gjennom systemets filvelger, gjelder tillatelsen for det øyeblikket. Et bokmerke bevarer den på tvers av oppstarter, og appen må eksplisitt starte og stoppe bruken av tilgangen det representerer.

Det er det som gjør det mulig å bla i en ekstern SSD uten å kopiere noe inn, og det er begrenset til nøyaktig det du valgte — et bokmerke til én mappe gir ingenting om naboen dens.

Se også: Sandkasse

Range-forespørsel

Å be en server om en spesifikk bit av en fil — byte 5 000 000 til 5 999 999 — i stedet for hele. Det er det som gjør en nedlasting gjenopptakbar og det som lar flere tilkoblinger hente én fil samtidig.

En server som støtter ranges svarer med 206 Partial Content og biten som ble bedt om. Én som ikke gjør det svarer 200 og sender alt fra begynnelsen, som er forskjellen mellom å fortsette en nedlasting og å starte den på nytt.

Alt interessant med en nedlastingsmotor hviler på denne ene HTTP-funksjonen. Uten den finnes det ingen fortsettelse etter en brutt tilkobling, ingen fortsettelse etter en omstart, og ingen måte å bruke mer enn én tilkobling.

Se også: Gjenopptakbar nedlastingParallelle tilkoblinger

Gjenopptakbar nedlasting

En overføring som fortsetter nøyaktig der den stoppet heller enn å starte på nytt, ved å registrere hvor mange bytes som er skrevet og be om resten.

Kravet er at tallet som registreres aldri er optimistisk. En byte telt som skrevet men fortsatt sittende i en buffer blir et hull i filen når appen drepes — og et hull midt i en video er en korrupsjon som bare viser seg en time inn i seingen.

Som er hvorfor tellingen må følge skrivingen til disk heller enn lesingen fra nettverket, og hvorfor hver overlevering mellom forgrunn- og bakgrunnsoverføring må være enige om ett tall.

Se også: Range-forespørselBakgrunnsoverføring

Parallelle tilkoblinger

flerforbindelse, chunked nedlasting

Å dele én fil i ranges og hente flere samtidig. Det hjelper når en enkelt tilkobling begrenses, og gjør ingenting i det hele tatt når flaskehalsen er din egen linje.

En server som begrenser hver tilkoblings hastighet kan ofte overtales til å levere mer totalt på tvers av flere. Det er der flerforbindelsesnedlasting tjener sitt rykte.

Det er ikke magi og det misforstås ofte. Hvis forbindelsen din allerede er mettet, deler flere tilkoblinger den samme kapasiteten i mindre biter og legger til overhead. Noen servere nekter også eller struper flere forespørsler fra én adresse.

Se også: Range-forespørselGjenopptakbar nedlasting

Bakgrunnsoverføring

En nedlasting overlevert til operativsystemet slik at den fortsetter etter at appen er lukket. Systemet bestemmer timing, som er byttehandelen for at den fortsetter i det hele tatt.

En iOS-app slutter å kjøre kort etter at du forlater den. En overføring gitt til systemets bakgrunnstjeneste overlever det, og overlever at appen drepes, og fortsetter etter en omstart.

Det den gir opp er kontroll. Systemet batcher disse overføringene etter sitt eget syn på strøm og nettverksforhold, så en bakgrunnsnedlasting kan pause og fortsette på måter en in-app-en ikke ville — og den blir ferdig.

Se også: Gjenopptakbar nedlastingSandkasse

WebDAV

En utvidelse til HTTP som gjør en webserver om til en filserver: liste, les, skriv, flytt, slett. Det er det Nextcloud og ownCloud snakker, og det de fleste NAS-bokser tilbyr.

Fordi det er HTTP under, fungerer WebDAV gjennom samme infrastruktur som alt annet på nettet — ingen spesielle porter, ingen spesiell klientprotokoll — som er hvorfor den overlevde mens mer elaborerte filprotokoller ikke gjorde det.

For noen som heller ikke vil legge filer i et selskaps sky, er det det praktiske alternativet: din egen server, dine egne påloggingsdetaljer, vanlige standarder.

Se også: Skylagring

Skylagring

Filer holdt på noen andres server, nådd gjennom det selskapets API — Dropbox, OneDrive, Box, pCloud. Hver har sitt eget grensesnitt, som er hvorfor apper støtter dem én om gangen.

Det finnes ingen universell skyprotokoll. Hver leverandør designet sitt eget API og sin egen påloggingsflyt, så å legge til en leverandør i en app er ekte arbeid heller enn en konfigurasjonspost.

Pålogging er normalt OAuth, som betyr at appen aldri ser passordet: leverandøren autentiserer personen og gir tilbake et token som kan tilbakekalles fra leverandørens egne innstillinger når som helst.

Se også: WebDAV

WebRTC

En standard for å koble to enheter direkte, uten en server mellom dem når tilkoblingen finnes. Det er det enhet-til-enhet-overføring bruker for å flytte en fil over rommet.

En liten signaleringsserver introduserer de to enhetene for hverandre — det er det sekssifrede koden er til for — og trekker seg deretter tilbake. Filen reiser direkte mellom enhetene og lagres ikke noe sted imellom.

På samme nettverk er det så raskt som det nettverket tillater. På tvers av internett avhenger det av om begge sider kan nås direkte, som er der tilkoblinger av og til feiler av grunner ingen av enhetene kan se.

Se også: Lokal HTTP-server

Lokal HTTP-server

En app som svarer på webforespørsler på ditt eget nettverk, slik at en nettleser på datamaskinen din kan åpne en side servert av telefonen din. Det er hvordan Wi-Fi-overføring fungerer, uten kabel og uten konto.

Telefonen viser en adresse; datamaskinen åpner den; siden den får serveres av telefonen selv. Filer flytter direkte over det lokale nettverket og forlater det aldri.

Siden alle på samme nettverk kan nå den adressen, trenger den en lås — en kode å taste inn, tillatelser gitt per operasjon, og destruktive slått av med mindre de bevisst slås på.

Se også: WebRTC

De andre emnene