Internet-Software, Browser, FTP, SSH 4.650 Themen, 38.247 Beiträge

Download über 'erlaubte' Zeitgrenzen hinweg...

Mdl / 9 Antworten / Flachansicht Nickles

Manchmal ist man auf einer Seite, auf der man eine Datei, z.B. Video, bis zu einem bestimmten Zeitpunkt downloaden kann.

Und wirklich: Versucht man darauf nach diesem Zeitpunkt zuzugreifen, klappt dies nicht mehr. (Vermutlich wird sie automatisch verschoben).

Wenn der Download aber länger dauert und dann mittendrin dieser Zeitpunkt erreicht wird, funktioniert der Download i.d.R. trotzdem bis zum Ende der Datei (, ein neu gestarteter aber nicht mehr).

Wie funktioniert denn das intern?

Hat das downloadende Programm (Browser oder auch Kommandozeilenprg (z.B. wget) dann auch Zugriff auf die neue Adresse, mit der die Datei auch später noch downgeloadet werden kann?

Wenn ich dasselbe rein lokal auf dem PC simuliere (d.h. ein Prg. greift lesend auf eine Datei zu, wird ein verschieben/umbenennen/löschen  i.d.R. ja nicht erlaubt). Auf dem Server aber vermutlich schon. Warum greift das downloadende Prg. denn dann nicht 'ins Leere'?

Gruß,
Mdl

bei Antwort benachrichtigen
Borlander Mdl „Wie ich mir das Senden/Empfangen vorstelle? Nun ja, nachdem sich die beiden verständigt haben, dass sie eine bestimmte ...“
Optionen

Also wenn Dich das ganze näher interessiert, dann lohnt sich sicherlich mal ein Blick auf die Protokolle HTTP und TCP/IP die dabei beteiligt sind, sowie auch auf das ISO/OSI-Schichtenmodell.

nachdem sich die beiden verständigt haben, dass sie eine bestimmte Datei senden/empfangen

Eine großartige Verständigung gibt es an dieser Stelle gar nicht. Der Client (Browser) sendet einen HTTP-Request an den Server und definiert dabei über den URL-Pfad welcher Ressource er abrufen will. Im Erfolgsfall (HTTP Status-Code 200) beginn der Server direkt mit dem Senden der Inhalt, oder liefert eine Fehlermeldung zurück.

schickt der Server die Datei blockweise an den Client. Jedesmal, wenn der einen Block empfangen hat, bestätigt er den Empfang (evtl. mit Zurücksenden einer Checksumme, sodass der Server sieht, dass der Inhalt korrekt war) und dann wird der nächste Block gesendet.

Der Webserver schreibt einfach nur einen Datenstrom raus. An der Stelle könnte man tatsächlich unterbrechen, wenn man es als erforderlich ansieht. Um die paketorientierte Datenübertragung incl. Fehlerkorrektur kümmert sich eine darunter liegende Schicht (TCP), von der der Webserver im Zweifelsfall nichts mitbekommt und normalerweise auch nichts mitbekommen muss. Nach jedem Paket auf die Bestätigung zu warten würde die Übertragung  übrigens extrem ausbremsen.

Wenn dem so ist, kann doch der Server auch jederzeit das Schicken der Blöcke einstellen.

Das sollte man allerdings keinesfalls von irgendwelchen teuren Prüfungen abhängig machen.

Wenn ich auf die Dateien zugreifen will, die ich in meinem Webspace gespeichert habe, z.B. dir1\abc.txt dann greif ich via URL www.xxxxx.com/..../dir1/abc.txt darauf zu.

Das ist der gängige Fall, wenn Du einfach statische Inhalts ausliefern willst. Häufig will man aber z.B. Inhalte aus einer Datenbank bereitstellen, oder z.B. von zeit oder Login abhängig machen.

Btw: Wie kann ich das machen? Insbesondere wenn ich meine Site www.xxxxx.com nicht in dieser URL verwenden will?

Mod_Rewrite, Serverseitiges Scripting, ein Anwendungsserver, oder notfalls auch die komplette Eigenimplementation. So ganz genau habe ich nun allerdings noch nicht verstanden was Du eigentlich vorhast.

Gruß
Borlander

bei Antwort benachrichtigen