

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Meminta pengalihan dan API REST
<a name="RESTRedirect"></a>

**Topics**
+ [Pengalihan dan agen pengguna HTTP](#RESTRedirectHTTPUserAgents)
+ [Mengalihkan dan 100-Lanjutkan](#RESTRedirect100Continue)
+ [Contoh pengalihan](#RESTRedirectExample)

Bagian ini menjelaskan cara menangani pengalihan HTTP menggunakan API REST Amazon S3. Untuk informasi umum tentang pengalihan Amazon S3, lihat [Membuat permintaan](MakingRequests.md) dalam Referensi API Amazon Simple Storage Service. 

## Pengalihan dan agen pengguna HTTP
<a name="RESTRedirectHTTPUserAgents"></a>

Program yang menggunakan API REST Amazon S3 harus menangani pengalihan baik pada lapisan aplikasi atau lapisan HTTP. Banyak pustaka klien dan agen pengguna HTTP dapat dikonfigurasi agar menangani pengalihan secara otomatis dengan tepat; tetapi, banyak klien lain yang memiliki implementasi pengalihan yang tidak tepat atau tidak lengkap. 

 Sebelum Anda mengandalkan pustaka untuk memenuhi persyaratan pengalihan, lakukan uji kasus berikut: 
+ Verifikasi bahwa semua header permintaan HTTP disertakan dengan benar dalam permintaan pengalihan (permintaan kedua setelah menerima pengalihan) termasuk standar HTTP seperti Otorisasi dan Tanggal.
+ Verifikasi pengalihan non-DAPATKAN, seperti LETAKKAN dan HAPUS, bekerja dengan benar.
+ Verifikasi permintaan LETAKKAN yang besar mengikuti pengalihan dengan benar.
+ Verifikasi permintaan LETAKKAN mengikuti arah yang benar jika respons 100-lanjutkan memerlukan waktu lama untuk sampai.

 Agen pengguna HTTP yang secara ketat mematuhi RFC 2616 mungkin memerlukan konfirmasi eksplisit sebelum mengikuti pengalihan jika metode permintaan HTTP bukan DAPATKAN atau HEAD. Mengikuti pengalihan yang dibuat oleh Amazon S3 secara otomatis umumnya aman, karena sistem hanya akan mengeluarkan pengalihan ke host dalam domain amazonaws.com dan efek permintaan yang dialihkan akan sama dengan permintaan asli. 

## Mengalihkan dan 100-Lanjutkan
<a name="RESTRedirect100Continue"></a>

Untuk menyederhanakan penanganan pengalihan, meningkatkan efisiensi, dan menghindari biaya yang terkait dengan pengiriman isi permintaan pengalihan dua kali, konfigurasikan aplikasi Anda untuk menggunakan 100-lanjutkan untuk operasi LETAKKAN. Ketika aplikasi Anda menggunakan 100-lanjutkan, aplikasi tidak mengirim isi permintaan sampai menerima pengakuan. Jika pesan ditolak berdasarkan header, isi pesan tidak akan terkirim. Untuk informasi selengkapnya tentang 100-lanjutkan, kunjungi [RFC 2616 Bagian 8.2.3](http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3) 

**catatan**  
Menurut RFC 2616, saat menggunakan `Expect: Continue` dengan server HTTP yang tidak dikenal, Anda tidak boleh menunggu selama periode yang tidak terbatas sebelum mengirimkan isi permintaan. Hal ini karena beberapa server HTTP tidak mengetahui adanya 100-lanjutkan. Namun, Amazon S3 mengetahui jika permintaan Anda memuat `Expect: Continue` dan akan merespons dengan status 100-lanjutkan sementara atau kode status akhir. Selain itu, tidak akan terjadi kesalahan pengalihan setelah menerima 100 izin lanjutkan sementara. Ini akan membantu Anda menghindari menerima respons pengalihan saat Anda masih menulis isi permintaan. 

## Contoh pengalihan
<a name="RESTRedirectExample"></a>

Bagian ini memberikan contoh interaksi server-klien menggunakan pengalihan HTTP dan 100-lanjutkan. 

Berikut ini adalah contoh LETAKKAN ke bucket `quotes.s3.amazonaws.com`.

```
1. PUT /nelson.txt HTTP/1.1
2. Host: quotes.s3.amazonaws.com
3. Date: Mon, 15 Oct 2007 22:18:46 +0000
4. 
5. Content-Length: 6
6. Expect: 100-continue
```

Amazon S3 memberikan informasi berikut:

```
 1. HTTP/1.1 307 Temporary Redirect
 2. Location: http://quotes.s3-4c25d83b.amazonaws.com/nelson.txt?rk=8d47490b
 3. Content-Type: application/xml
 4. Transfer-Encoding: chunked
 5. Date: Mon, 15 Oct 2007 22:18:46 GMT
 6. 
 7. Server: AmazonS3
 8. 
 9. <?xml version="1.0" encoding="UTF-8"?>
10. <Error>
11.   <Code>TemporaryRedirect</Code>
12.   <Message>Please re-send this request to the
13.   specified temporary endpoint. Continue to use the
14.   original request endpoint for future requests.
15.   </Message>
16.   <Endpoint>quotes.s3-4c25d83b.amazonaws.com</Endpoint>
17.   <Bucket>quotes</Bucket>
18. </Error>
```

Klien mengikuti respons pengalihan dan mengeluarkan permintaan baru ke titik akhir sementara `quotes.s3-4c25d83b.amazonaws.com`.

```
1. PUT /nelson.txt?rk=8d47490b HTTP/1.1
2. Host: quotes.s3-4c25d83b.amazonaws.com
3. Date: Mon, 15 Oct 2007 22:18:46 +0000
4. 
5. Content-Length: 6
6. Expect: 100-continue
```

Amazon S3 mengembalikan 100-lanjutkan yang menunjukkan bahwa klien harus melanjutkan dengan mengirim isi permintaan.

```
1. HTTP/1.1 100 Continue
```

Klien mengirimkan isi permintaan.

```
1. ha ha\n
```

Amazon S3 mengembalikan respons akhir.

```
1. HTTP/1.1 200 OK
2. Date: Mon, 15 Oct 2007 22:18:48 GMT
3. 
4. ETag: "a2c8d6b872054293afd41061e93bc289"
5. Content-Length: 0
6. Server: AmazonS3
```