Was ist der Unterschied zwischen dem Download pausierbarer und nicht pausierbarer Dateien?

Was ist der Unterschied zwischen dem Download pausierbarer und nicht pausierbarer Dateien?

Was ist technisch gesehen der Unterschied zwischen der Art des Hostings (auf dem Server) von

  • eine Datei, deren Download angehalten und wieder fortgesetzt werden kann, und
  • eine Datei, die auf einmal heruntergeladen werden muss?

Antwort1

Der Server müsste die Möglichkeit unterstützen, Teilinhalte bereitzustellen und Teilanfragen zu verarbeiten. Die meisten modernen Webserver können damit umgehen, sofern Sie nicht etwas verwenden, das Sie selbst entwickelt haben.

Weitere Informationen erhalten Sie hierApacheDokument und die relevanten RFCs. Aus dem verlinkten Dokument - ein Beispiel für eine Antwort.

HTTP/1.1 206 Partial Content
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES

--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 500-999/8000

...the first range...
--THIS_STRING_SEPARATES
Content-type: application/pdf
Content-range: bytes 7000-7999/8000

...the second range
--THIS_STRING_SEPARATES--

Antwort2

Ein häufiges Problem ist das Fehlen eines content-sizeoder content-rangeHeaders. Vielleicht hat der Autor vergessen, einen in seinem Download-Skript einzurichten?

Antwort3

Ein Download kann fortgesetzt werden, wenn der HTTP-Server Bereichsabrufanfragen unterstützt, wie in Abschnitt 14.35 derRFC 2616, die Wikipedia als „Byte-Serving" aus irgendeinem seltsamen Grund.

  1. Der Server sendet Accept-Ranges: byteseine Antwort auf eine HEAD- oder GET-Anforderung, um anzuzeigen, dass er Byte-Serving unterstützt.
  2. Der Client sendet eine GETAnfrage einschließlich Range: bytes=aaa-bbb, wobei der Startoffset aaaBytes nach dem Anfang der Datei beträgt und die Länge des Bereichs bbb - aaa + 1Bytes beträgt.
  3. Der Server sendet eine Statusantwort mit 206 (teilweiser Inhalt), einschließlich Content-range: bytes aaa-bbb/cccc, wobei aaa-bbbwie zuvor und ccccentweder die Länge der Datei in Bytes ist oder, *wenn der Server sie nicht bestimmen kann, gefolgt von einem Antworttext, der den angeforderten Bytebereich enthält. Wenn der Bereich außerhalb der Grenzen liegt, sendet der Server stattdessen eine Statusantwort mit 416 (angeforderter Bereich nicht erfüllbar).

Einige Videoplayer verwenden Bereichsanfragen, um die Suche in einem Video zu unterstützen. Der Ogg-Mediencontainer verwendetinterpolierte Bisektionssucheum diesen Anwendungsfall zu unterstützen.

Beliebte Webserver-Software kann so konfiguriert werden, dass sie Bereiche aus statischen Dateien bereitstellt, aber ein serverseitiges Skript, das den Download authentifiziert, muss möglicherweise selbst Bereiche verarbeiten. (Lesen Sie dazu im Handbuch Ihrer Skriptsprache nach.) Einige Betreiber öffentlich zugänglicher Download-Server blockieren Bereichsanforderungen absichtlich, da mehrere Download-Manager die Unterstützung für Inhaltsbereiche genutzt haben, um mehr als eine Anforderung an einen Server zu stellen und so Ressourcen zu beanspruchen, die zum Bereitstellen von Downloads für andere Benutzer verwendet werden könnten.

verwandte Informationen