HTTP hlavičky jsou řetězce ve zprávě HTTP , které obsahují dvojtečkou oddělený pár název-hodnota . Formát záhlaví odpovídá obecnému formátu záhlaví textových zpráv sítě ARPA (viz RFC 822 ). Záhlaví musí být odděleno od těla zprávy alespoň jedním prázdným řádkem.
Všechny nadpisy jsou rozděleny do čtyř hlavních skupin:
Toto je pořadí, ve kterém se doporučuje odesílat hlavičky příjemci.
Plánuje se umístění hodnoty na několik řádků (zalomení řádku). Pro označení přerušení musí být na začátku dalšího řádku přítomen alespoň jeden prázdný znak.
Záhlaví se stejnými názvy parametrů, ale různými hodnotami, lze sloučit do jednoho pouze v případě, že hodnota pole je seznam oddělený čárkami. Ve všech ostatních případech se hodnoty vzdálenějších nadpisů musí překrývat s předchozími. Proto by proxy neměly měnit pořadí záhlaví ve zprávě. V tomto případě obvykle nezáleží na pořadí prvků seznamu.
Příklad s víceřádkovými hodnotami a identickými názvy záhlaví (poznamenejte si malá a velká písmena a mezery):
content-type: text/html; charset=windows-1251 Povolit: GET, HEAD Délka obsahu: 356 ALLOW: GET, OPTIONS Délka obsahu: 1984Správná kompaktní verze transformace a interpretace je:
Content-Type: text/html;charset=windows-1251 Povolit: GET,HEAD,OPTIONS Délka obsahu: 1984V tomto případě je nezákonné akceptovat hodnotu Content-Length 356. Při kombinování hodnot Allow, aby se neztratil sémantický význam, byla na konec prvního pole přidána čárka a nesmyslně duplikovaný prvek „GET“ byl odstraněn.
DateV záhlavích , Expires, Last-Modified, If-Modified-Since, je uvedeno pouze datum If-Unmodified-Since. Datum se může objevit v záhlaví If-Rangea Warning.
HTTP používá tři formáty:
RFC 7231 nařizuje příjemcům dat, aby se připravili na zpracování datových a časových razítek ve všech třech formátech a na generování datových a časových razítek pouze v preferovaném formátu.
Čas je vždy uveden pro časové pásmo GMT ( UTC+0 ). Rok se píše čtyřmi číslicemi. Den, hodina, minuta a sekunda jsou doplněny nulou na dva znaky. Pro názvy měsíce a dne v týdnu se používají třípísmenné standardní zkratky v angličtině.
Dny v týdnu od pondělí: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Měsíce od ledna do prosince: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
PHP používá funkci gmdate() pro převod místního času na GMT. Příklady generování dat pro HTTP hlavičky:
// Aktuální datum generování dokumentu: header ( "Datum: " . gmdate ( DateTime :: RFC850 )); // Datum úpravy zadaného souboru: $fp = 'data/my-foo.txt' ; // cesta k souboru záhlaví ( "Last-Modified: " . gmdate ( "D, d MYH:i:s" , filemtime ( $fp )) . " GMT" ); // Dokument se má změnit za hodinu: header ( "Expires: " . gmdate ( "D, d MYH:i:s" , čas () + 3600 ) . " GMT" ); // 3600 - počet sekund vzhledem k aktuálnímu okamžiku.Při práci s fragmenty obsahu se ve speciálních hlavičkách používají bajtové rozsahy . Můžete v nich zadat jeden fragment nebo několik fragmentů a oddělit je čárkami " ". Rozsahy platí v záhlaví a . V záhlaví jsou uvedeny pouze měrné jednotky. ,RangeContent-RangeAccept-Ranges
V bajtových rozsazích musí být na začátku uveden název měrných jednotek a za ním symbol " =". V tuto chvíli se kromě jednotek bytesnepoužívají žádné jiné. Za symbolem „ “ =jsou samotné rozsahy. -Každé z nich je dvojice přirozených čísel oddělená pomlčkou nebo nula a přirozené číslo. První prvek určuje počáteční bajt a druhý určuje koncový bajt. Číslování v rozsazích začíná od nuly.
Počáteční nebo koncový bajt nemusí být specifikován. Při absenci posledního bajtu se má za to, že mluvíme o fragmentu od počátečního bajtu po konec obsahu. Pokud neexistuje žádný začátek, pak se koncové číslo bajtu bere jako počet požadovaných bajtů od konce obsahu.
Pokud je první bajt větší než poslední, je rozsah považován za syntakticky neplatný . Pole záhlaví obsahující rozsahy se syntakticky neplatnými hodnotami jsou ignorována. Pokud je první bajt mimo rozsah pro zdroj, rozsah je ignorován. Pokud je poslední bajt mimo rozsah, rozsah je zkrácen na konec.
Blok bajtových rozsahů je považován za spustitelný, pokud obsahuje alespoň jeden dostupný rozsah. Pokud jsou všechny rozsahy nesprávné nebo jsou mimo rozsah zdroje, měl by server vrátit zprávu se stavem 416(Požadovaný rozsah není splnitelný).
Příklady (celý zdroj má 5000 bajtů):
Značkovací jazyk HTML vám umožňuje nastavit potřebné hodnoty hlaviček HTTP interně <HEAD>pomocí značky <META>. V tomto případě je název záhlaví zadán v atributu http-equiva hodnota - in content. Hodnota záhlaví je téměř vždy nastavena Content-Typese zadaným kódováním, aby se předešlo problémům se zobrazením textu prohlížečem. Není také zbytečné uvádět hodnotu záhlaví Content-Language:
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=windows-1251" > < meta http-equiv = "Content-Language" content = "cs" > ...http | |
---|---|
Obecné pojmy |
|
Metody | |
Tituly |
|
Stavové kódy |