HTTP - headere er strenge i en HTTP -meddelelse, der indeholder et kolonsepareret navn-værdi-par . Formatet på overskrifterne følger det generelle format for ARPA -tekstnetværksmeddelelsesoverskrifter (se RFC 822 ). Overskrifter skal adskilles fra meddelelsesteksten med mindst én tom linje.
Alle overskrifter er opdelt i fire hovedgrupper:
Dette er den rækkefølge, det anbefales at sende overskrifterne i til modtageren.
Det er planlagt at placere værdien på flere linjer (linjeskift). For at angive en pause skal der være mindst ét mellemrumstegn i begyndelsen af næste linje.
Overskrifter med de samme parameternavne, men forskellige værdier, kan kun kombineres til én, hvis feltværdien er en kommasepareret liste. I alle andre tilfælde skal værdierne af de fjernere overskrifter overlappe de foregående. Derfor bør proxyer ikke ændre rækkefølgen af overskrifter i en meddelelse. I dette tilfælde er rækkefølgen af elementerne på listen normalt ligegyldig.
Et eksempel med værdier med flere linjer og identiske overskriftsnavne (bemærk store og små bogstaver og mellemrum):
indholdstype: tekst/html; charset=windows-1251 Tillad: FÅ, HOVED Indholdslængde: 356 TILLAD: FÅ, MULIGHEDER Indholdslængde: 1984Den korrekte kompakte version af transformationen og fortolkningen er:
Indholdstype: text/html;charset=windows-1251 Tillad: GET,HEAD,OPTIONS Indholdslængde: 1984I dette tilfælde er det ulovligt at acceptere en indholdslængde-værdi på 356. Ved kombination af Tillad-værdierne, for ikke at miste semantisk betydning, blev der tilføjet et komma til slutningen af det første felt og det meningsløst duplikerede "GET"-element blev fjernet.
Kun datoen er angivet i overskrifterne Date, Expires, Last-Modified, If-Modified-Since, If-Unmodified-Since. Datoen kan vises i overskrifter If-Rangeog Warning.
HTTP bruger tre formater:
RFC 7231 instruerer modtagere af data om at være forberedt på at behandle dato- og tidsstempler i alle tre formater og kun at generere dato- og tidsstempler i deres foretrukne format.
Tidspunktet er altid angivet for GMT -tidszonen ( UTC+0 ). Årstal er skrevet med fire cifre. Dag, time, minut og sekund er nulpolstret til to tegn. Standardforkortelser på tre bogstaver på engelsk bruges til navnene på måneden og ugedagen.
Ugedage fra mandag: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Måneder fra januar til december: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
PHP bruger funktionen gmdate() til at konvertere lokal tid til GMT. Eksempler på generering af datoer for HTTP-headere:
// Aktuel dokumentgenereringsdato: header ( "Dato: " . gmdate ( DateTime :: RFC850 )); // Ændringsdato for den angivne fil: $fp = 'data/my-foo.txt' ; // sti til header -fil ( "Sidst ændret: " . gmdate ( "D, d MYH:i:s" , filemtime ( $fp )) . " GMT" ); // Dokumentet formodes at ændre sig om en time: header ( "Udløber: " . gmdate ( "D, d MYH:i:s" , tid () + 3600 ) . " GMT" ); // 3600 - antallet af sekunder i forhold til det aktuelle øjeblik.Når du arbejder med indholdsfragmenter , bruges byte-intervaller i specielle overskrifter . Du kan angive enten et fragment eller flere fragmenter i dem, adskille dem med kommaer " ". Områder gælder i overskrifter og . Overskriften viser kun måleenhederne. ,RangeContent-RangeAccept-Ranges
I byte-områder skal navnet på måleenhederne angives i begyndelsen, efterfulgt af symbolet " =". På nuværende tidspunkt, bortset fra enheder, bytesanvendes ingen andre. Bag “ ” symbolet =er selve intervallerne. Hver af dem er et bindestreg-separeret -par naturlige tal, eller nul og et naturligt tal. Det første element angiver startbyten, og det andet angiver slutbyten. Nummerering i intervaller starter fra nul.
Start- eller slutbyten er muligvis ikke angivet. I mangel af den sidste byte anses det for, at vi taler om et fragment fra startbyten til slutningen af indholdet. Hvis der ikke er nogen start, tages slutbytenummeret som antallet af bytes, der anmodes om fra slutningen af indholdet.
Hvis den første byte er større end den sidste, betragtes området som syntaktisk ugyldigt . Overskriftsfelter, der indeholder områder med syntaktisk ugyldige værdier, ignoreres. Hvis den første byte er uden for omfanget af ressourcen, ignoreres området. Hvis den sidste byte er uden for grænserne, afkortes området til slutningen.
En blok af byteområder betragtes som eksekverbar, hvis den indeholder mindst et tilgængeligt område. Hvis alle områderne er forkerte eller uden for ressourcens omfang, skal serveren returnere en meddelelse med status 416(anmodet område kan ikke opfyldes).
Eksempler (hele ressourcen er 5000 bytes):
HTML -markeringssproget giver dig mulighed for at indstille de nødvendige HTTP-headerværdier internt <HEAD>ved hjælp af tagget <META>. I dette tilfælde er headernavnet angivet i attributten http-equivog værdien -in content. Overskriftsværdien indstilles næsten altid Content-Typemed den angivne kodning for at undgå problemer med visning af tekst i browseren. Det er heller ikke overflødigt at angive overskriftsværdien Content-Language:
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=windows-1251" > < meta http-equiv = "Content-Language" content = "da" > ...HTTP | |
---|---|
Generelle begreber |
|
Metoder | |
Titler |
|
Statuskoder |