2016-04-10 19 views
0

Yalnızca GET Kovası yanıtının İçerik Uzunluğu üstbilgisini atlayıp atladığını öğrenmek istedim. Bunu test ettim ve GET Bucket op. Yanıtında Content-Length başlığının olmadığını gördüm.GET Kova yanıtı + AWS S3 + İçerik Uzunluğu başlığı

Yanıt okuma Uygulama yanıtı İçerik Uzunluğu üstbilgisini içermiyorsa, yanıtın gövdesinin nerede bittiğini nasıl anlar?

Talebi-Tepki Parçacığı:

GET /?max-keys=1000&prefix&delimiter=%2F HTTP/1.1 
    Date: Sat, 09 Apr 2016 18:27:23 GMT 
    x-amz-request-payer: requester 
    Authorization: AWS AKIAIP3KAUILC4GG7A2A:UG3bGvIjayrxrkxEX1mfrvETy/M= 
    Connection: Keep-Alive 
    User-Agent: Cyberduck/4.9.19632 (Mac OS X/10.10.5) (x86_64) 

    HTTP/1.1 200 OK 
    x-amz-id-2: yg76HSq5j0mi0oR6dXF8ZfGq722kHBWiMQmNvXPqiLxr1S4nGj5GVn1RVrPQrOUfNynxxaMSYEY= 
    x-amz-request-id: B4468E68E10B6AEF 
    Date: Sat, 09 Apr 2016 18:27:25 GMT 
    x-amz-bucket-region: us-east-1 
    Content-Type: application/xml 
    Server: AmazonS3 
    Connection: close 

    <?xml version="1.0" encoding="UTF-8"?> 
    <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">......</ListBucketResult> 

teşekkürler!

cevap

0

İçerik Uzunluğu üstbilgisi yanıt olarak isteğe bağlıdır. Ve sunsa bile gerçek içerik uzunluğunu yansıtmayabilir. Gzip yanıtını düşün. Soruya cevap vermek için: Hiçbir Content-Length alınmadığında, sunucu bağlantıyı kapatana kadar istemci okumaya devam eder. Java'da, -1 döndürene kadar InputStream.read() numaralı telefonu aramaya devam edin.

Is the Content-Length header required for a HTTP/1.0 response?

+0

Cevabınız için teşekkürler Yangfan. Bununla birlikte, eğer müşteri bağlantı kapanana kadar okumayı sürdürürse, ele alınan mevcut talep ve bir sonraki talebin başlığı için vücut arasında nasıl bir ayrım yapabilecektir? Ayrıca, AWS inanıyorum HTTP/1.1 kullanımını emreder. – Rakshith

+0

Yukarıdaki aynı bağlantıda GET komutlarının Pipeline edilmesine atıfta bulunuyordum. Sadece bu noktaya açıklık getirmek istedim. – Rakshith

İlgili konular