Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagaimana CloudFront memproses permintaan parSIAL untuk objek (rentang GET)
Untuk objek besar, penampil (browser web atau klien lain) dapat membuat beberapa GET permintaan dan menggunakan header Range permintaan untuk mengunduh objek di bagian yang lebih kecil. Permintaan untuk rentang byte, terkadang disebut Range GET meminta, meningkatkan efisiensi unduhan sebagian, dan pemulihan dari transfer yang gagal sebagian.
Ketika CloudFront menerima Range GET permintaan, ia memeriksa cache di lokasi tepi yang menerima permintaan. Jika cache di lokasi tepi itu sudah berisi seluruh objek atau bagian objek yang diminta, CloudFront segera melayani rentang yang diminta dari cache.
Jika cache tidak berisi rentang yang diminta, CloudFront meneruskan permintaan ke asal. (Untuk mengoptimalkan kinerja, CloudFront dapat meminta rentang yang lebih besar daripada yang diminta klien diRange GET.) Apa yang terjadi selanjutnya tergantung pada apakah asal mendukung permintaan Range GET:
-
Jika asal mendukung
Range GETpermintaan - Ini mengembalikan rentang yang diminta. CloudFront melayani rentang yang diminta dan juga menyimpannya untuk permintaan di masa mendatang. (Amazon S3 mendukungRange GETpermintaan, seperti halnya banyak server HTTP.) -
Jika asal tidak mendukung
Range GETpermintaan — Ini mengembalikan seluruh objek. CloudFront melayani permintaan saat ini dengan mengirimkan seluruh objek sambil juga men-cache untuk permintaan di masa mendatang. Setelah CloudFront menyimpan seluruh objek dalam cache tepi, ia menanggapiRange GETpermintaan baru dengan melayani rentang yang diminta.
Dalam kedua kasus, CloudFront mulai melayani rentang atau objek yang diminta kepada pengguna akhir segera setelah byte pertama tiba dari asal.
catatan
Jika penampil membuat Range GET permintaan dan asal kembaliTransfer-Encoding: chunked, CloudFront mengembalikan seluruh objek ke penampil alih-alih rentang yang diminta.
CloudFront umumnya mengikuti spesifikasi RFC untuk Range header. Namun, jika Range header Anda tidak mematuhi persyaratan berikut, CloudFront mengembalikan kode status HTTP 200 dengan objek lengkap alih-alih kode status 206 dengan rentang yang ditentukan:
-
Rentang harus terdaftar dalam urutan naik. Misalnya,
100-200,300-400valid,300-400,100-200tidak valid. -
Rentang tersebut tidak boleh tumpang tindih. Misalnya,
100-200,150-250tidak valid. -
Semua spesifikasi rentang harus valid. Misalnya, Anda tidak dapat menentukan nilai negatif sebagai bagian dari rentang.
Untuk informasi selengkapnya tentang header Range permintaan, lihat Permintaan Rentang
Gunakan permintaan rentang untuk menyimpan objek besar
Ketika caching diaktifkan, CloudFront tidak mengambil atau menyimpan objek yang lebih besar dari 50 GB. Ketika asal menunjukkan bahwa objek lebih besar dari ukuran ini (di header Content-Length respons), CloudFront menutup koneksi ke asal dan mengembalikan kesalahan ke penampil. (Dengan caching dinonaktifkan, CloudFront dapat mengambil objek yang lebih besar dari ukuran ini dari asal dan meneruskannya ke penampil. Namun, CloudFront tidak menyimpan objek.)
Namun, dengan permintaan rentang, Anda dapat menggunakan CloudFront untuk menyimpan objek yang lebih besar dari ukuran file cache maksimum.
contoh Contoh
-
Pertimbangkan asal dengan objek 100 GB. Dengan caching diaktifkan, CloudFront tidak mengambil atau menyimpan objek sebesar ini. Namun, penampil dapat mengirim beberapa permintaan rentang untuk mengambil objek ini dalam beberapa bagian, dengan masing-masing bagian lebih kecil dari 50 GB.
-
Penampil dapat meminta objek dalam bagian 20 GB dengan mengirim permintaan dengan header
Range: bytes=0-21474836480untuk mengambil bagian pertama, permintaan lain dengan headerRange: bytes=21474836481-42949672960untuk mengambil bagian berikutnya, dan seterusnya. -
Ketika penampil telah menerima semua bagian, ia dapat menggabungkannya untuk membangun objek 100 GB asli.
-
Dalam hal ini, CloudFront menyimpan masing-masing bagian objek 20 GB dan dapat menanggapi permintaan berikutnya untuk bagian yang sama dari cache.
Untuk permintaan rentang untuk objek terkompresi, permintaan rentang byte didasarkan pada ukuran terkompresi, dan bukan ukuran asli objek. Untuk informasi selengkapnya tentang mengompresi file, lihatSajikan file terkompresi.