2010-07-21 22 views
19

Czy można ustawić nagłówek długości treści, a także korzystać z kodowania przeniesienia fragmentacji? i czy to rozwiązuje problem polegający na niewiedzeniu długości odpowiedzi po stronie klienta podczas korzystania z porcji?Kodowane kodowanie i nagłówek długości treści

Scenariusz, o którym myślę, to duży plik do przesłania i nie ma problemu z określeniem jego rozmiaru, ale jest zbyt duży, aby można go było całkowicie buforować. (Jeśli nie korzystasz z porcji, cała odpowiedź musi najpierw zostać zbuforowana, prawda?)

dzięki.

+3

Jeśli możesz wymienić jakiekolwiek referencje RFC lub coś w tym stylu, byłoby wspaniale. – p00ya00

Odpowiedz

22

1) Nie: "Komunikaty NIE MOGĄ zawierać zarówno pola nagłówka Content-Length, jak i nie-identyfikującego kodowania transferu.Jeśli wiadomość zawiera kodowanie transferu inne niż identyczne, długość treści MUSI być zignorowana. " (RFC 2616, Section 4.4)

2) I nie, ty można używać Content-Length i strumienia; protokół nie ogranicza tego, jak działa twoja implementacja.

+0

Mam nadzieję, że kodowane przesyłanie kodowania jest przykładem strumienia; wspomniałeś tutaj, nie? może również obejmować żądania zasięgu. czy mam rację? –

7

Zawsze możesz wysłać nagłówek określający rozmiar pliku. Coś jak response.addHeader("File-Size","size of the file");
I zignoruj ​​nagłówek Content-Length.

Implementacja klienta musi zostać zmodyfikowana, aby odczytać tę wartość, ale hej możesz osiągnąć obie rzeczy, które chcesz :)

+0

Proste rozwiązania są najlepsze :-) – EZDsIt

+1

Konwencja polega na użyciu przedrostka 'X-' na dowolnym niestandardowym nagłówku. Serwer proxy HTTP może również zdecydować o usunięciu niestandardowego nagłówka innego niż X. – MSalters

+0

Dzięki MSalters, właśnie odwołano się do podobnej wytycznej gdzie indziej, doceń to. – Gyan

Powiązane problemy