Συνέχιση λήψεων μέσω Squid
Ελέγξτε τις αποκρίσεις Range και την ταυτότητα του αντικειμένου πριν συνεχίσετε, ξεχωρίζοντας την προανάκτηση του Squid από τη βασική υποστήριξη εύρους.
Χρησιμοποιήστε συνέχιση μόνο όταν το download.part ανήκει στην ίδια αναπαράσταση αντικειμένου που θα ζητήσετε τώρα. Το όνομα αρχείου δεν αρκεί: η προέλευση μπορεί να έχει αλλάξει το περιεχόμενο από την πρώτη προσπάθεια.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binΑντικαταστήστε και τα δύο τελικά σημεία με υπηρεσίες που επιτρέπεται να χρησιμοποιείτε. Για σύγκριση δημόσιου αρχείου όπου επιτρέπονται δημόσιοι proxy, επιλέξτε σημείο HTTP από τη λίστα HTTP proxy. Το -C - χρησιμοποιεί το μέγεθος του υπάρχοντος αρχείου ως σημείο συνέχισης. Εξετάστε την απόκριση προορισμού αντί να θεωρείτε κάθε σώμα που επιστρέφεται ως τα byte που λείπουν:
| Απόκριση | Ερμηνεία |
|---|---|
| 206 με Content-Range | Ελέγξτε ότι το επιστρεφόμενο εύρος είναι η αναμενόμενη συνέχεια. |
| 200 | Ο διακομιστής μπορεί να αγνόησε το Range και να έστειλε ολόκληρη την αναπαράσταση. |
| 416 | Το ζητούμενο εύρος δεν μπορεί να ικανοποιηθεί· μην προσθέτετε τη σελίδα σφάλματος στο αρχείο. |
Οι επικυρωτές και το If-Range μπορούν να βοηθήσουν στην αποφυγή ένωσης διαφορετικών εκδόσεων ενός μεταβαλλόμενου πόρου. Ακολουθήστε τους κανόνες αναπαράστασης της εφαρμογής πριν εμπιστευτείτε το ολοκληρωμένο αρχείο.
Στο Squid 6.13 το range_offset_limit καθορίζει πότε ανακτά ένα αντικείμενο από την αρχή για προσωρινή αποθήκευση, όχι αν ο πελάτης μπορεί να ζητήσει εύρος:
range_offset_limit 0Ένα μηδενικό όριο αποφεύγει πρόσθετη ανάκτηση του αρχικού τμήματος μόνο για γέμισμα της κρυφής μνήμης. Η προώθηση χρήσιμου εύρους χωρίς αποθήκευση του αντικειμένου μπορεί ακόμη να επιτύχει. Στο συνηθισμένο HTTPS CONNECT, η ανταλλαγή Range είναι μέσα στο TLS προορισμού· διαβάστε αυτή την απόκριση αντί να θεωρείτε την ορατή πολιτική κρυφής μνήμης αντικειμένων του Squid έλεγχο του εσωτερικού αιτήματος.