Odpowiedzi:
Pole nagłówka encji o długości treści wskazuje rozmiar ciała encji, w dziesiętnej liczbie OCTET, wysłanych do odbiorcy lub, w przypadku metody HEAD, rozmiar ciała encji, który zostałby wysłany, gdyby żądanie było GET.
Nie ma znaczenia, jaki jest typ zawartości.
Rozszerzenie w poście poniżej .
Jest to liczba bajtów danych w treści żądania lub odpowiedzi. Ciało to część występująca po pustej linii poniżej nagłówków.
Content-Length
Nagłówek jest numer oznaczający dokładnie bajt długości ciała HTTP. Treść HTTP rozpoczyna się natychmiast po pierwszym pustym wierszu, który znajduje się po wierszu początkowym i nagłówkach.
Zasadniczo Content-Length
nagłówek jest używany dla protokołu HTTP 1.1, aby strona odbierająca wiedziała, kiedy zakończyła się bieżąca odpowiedź * , dzięki czemu połączenie może zostać ponownie wykorzystane do kolejnego żądania .
* ... lub żądanie, w przypadku metod żądania, które mają treść, takich jak POST, PUT lub PATCH
Alternatywnie Content-Length
nagłówek można pominąć i użyć fragmentu Transfer-Encoding
nagłówka .
Jeśli brakuje zarówno nagłówka, jak Content-Length
i Transfer-Encoding
nagłówka, wówczas na końcu odpowiedzi połączenie musi zostać zamknięte.
Poniższy zasób jest przewodnikiem, który okazał się bardzo przydatny podczas nauki o HTTP:
Jeden oktet ma 8 bitów. Długość treści to liczba oktetów reprezentowanych przez treść wiadomości.
OCTET
tutaj ma bardzo konkretne znaczenie, co oznacza <dowolna 8-bitowa sekwencja danych>. Zobacz definicję na w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
Stąd :
Pole nagłówka encji o długości treści wskazuje rozmiar ciała encji, w dziesiętnej liczbie OCTET, wysłanych do odbiorcy lub, w przypadku metody HEAD, rozmiar ciała encji, który zostałby wysłany, gdyby żądanie było GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Przykładem jest
Content-Length: 3495
Aplikacje MUSZĄ używać tego pola do wskazania długości przesyłania treści wiadomości, chyba że jest to zabronione przez reguły w sekcji 4.4 .
Każda długość treści większa lub równa zero jest prawidłową wartością. W sekcji 4.4 opisano sposób określania długości treści wiadomości, jeśli nie podano długości treści.
Należy zauważyć, że znaczenie tego pola różni się znacznie od odpowiedniej definicji w MIME, gdzie jest to pole opcjonalne używane w typie treści „wiadomość / treść zewnętrzna”. W HTTP POWINNY być wysyłane, ilekroć długość wiadomości może zostać określona przed przesłaniem, chyba że jest to zabronione przez zasady w sekcji 4.4.
Moja interpretacja jest taka, że oznacza to długość „na drucie”, tj. Długość treści zakodowanej *
"Content-length": "3495"
Zdecydowanie najczęstszym zastosowaniem POST jest przesyłanie danych formularza HTML do skryptów CGI. W takim przypadku nagłówek Content-Type: ma zwykle postać application / x-www-form-urlencoded, a nagłówek Content-Length: podaje długość danych formularza zakodowanych w adresie URL (oto uwaga na temat kodowania adresu URL). Skrypt CGI odbiera treść komunikatu przez STDIN i dekoduje go. Oto typowe przesłanie formularza przy użyciu POST:
POST /path/script.cgi HTTP/1.0 From: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32
Zgodnie ze specyfikacją :
Pole nagłówka encji o długości treści wskazuje rozmiar ciała encji, w dziesiętnej liczbie OCTET, wysłanych do odbiorcy lub, w przypadku metody HEAD, rozmiar ciała encji, który zostałby wysłany, gdyby żądanie było GET.
Content-Length = "Content-Length" ":" 1*DIGIT
Przykładem jest
Content-Length: 3495
Aplikacje MUSZĄ używać tego pola do wskazania długości przesyłania treści wiadomości, chyba że jest to zabronione przez reguły w sekcji 4.4.
Każda długość treści większa lub równa zero jest prawidłową wartością. W sekcji 4.4 opisano sposób określania długości treści wiadomości, jeśli nie podano długości treści.
Należy zauważyć, że znaczenie tego pola różni się znacznie od odpowiedniej definicji w MIME, gdzie jest to pole opcjonalne używane w typie treści „wiadomość / treść zewnętrzna”. W HTTP POWINNY być wysyłane, ilekroć długość wiadomości może zostać określona przed przesłaniem, chyba że jest to zabronione przez zasady w sekcji 4.4.
Pole nagłówka encji o długości treści wskazuje rozmiar ciała encji, w dziesiętnej liczbie OCTET, wysłanych do odbiorcy lub, w przypadku metody HEAD, rozmiar ciała encji, który zostałby wysłany, gdyby żądanie było GET.
Content-Length = „Content-Length” ”:„ 1 * DIGIT
Przykładem jest
Długość treści: 1024
Aplikacje POWINNY używać tego pola do wskazania długości przesyłania treści wiadomości.
W PHP użyłbyś czegoś takiego.
header("Content-Length: ".filesize($filename));
W przypadku „Content-Type: application / x-www-form-urlencoded” zakodowane dane są wysyłane do wyznaczonego agenta przetwarzania, abyś mógł ustawić długość lub rozmiar danych, które zamierzasz opublikować.
Zastanów się, czy masz nagłówki, takie jak:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
Długość treści jest wielkością skompresowanej treści wiadomości, w „oktetach” (tj. W jednostkach 8 bitów, które są czasami „bajtami” dla wszystkich współczesnych komputerów).
Wielkość rzeczywistej treści wiadomości może być coś innego, być 150280 bajtów.
Liczba znaków może być znowu inna, być może 150231 znaków, ponieważ niektóre znaki Unicode używają wielu bajtów (uwaga UTF-8 jest standardowym kodowaniem).
Różne liczby zależą od tego, czy zależy Ci na tym, ile danych jest przesyłanych, ile danych jest przechowywanych lub ile symboli jest widocznych. Oczywiście nie ma gwarancji, że nagłówki te zostaną dostarczone.