HTTP - otsikot ovat HTTP -sanoman merkkijonoja, jotka sisältävät kaksoispisteellä erotetun nimi-arvo-parin . Otsikoiden muoto noudattaa ARPA -tekstiverkkoviestien otsikoiden yleistä muotoa (katso RFC 822 ). Otsikot on erotettava viestin rungosta vähintään yhdellä tyhjällä rivillä.
Kaikki otsikot on jaettu neljään pääryhmään:
Tässä järjestyksessä otsikot kannattaa lähettää vastaanottajalle.
Arvo on tarkoitus sijoittaa useille riveille (rivinvaihto). Taukomerkintä edellyttää vähintään yhden välilyönnin olevan seuraavan rivin alussa.
Otsikoita, joilla on samat parametrien nimet mutta eri arvot, voidaan yhdistää yhdeksi vain, jos kentän arvo on pilkuilla eroteltu luettelo. Kaikissa muissa tapauksissa kauempana olevien otsikoiden arvojen on oltava päällekkäisiä aiempien otsikoiden kanssa. Siksi välityspalvelimet eivät saa muuttaa viestin otsikoiden järjestystä. Tässä tapauksessa luettelon elementtien järjestyksellä ei yleensä ole väliä.
Esimerkki, jossa on monirivisiä arvoja ja identtisiä otsikon nimiä (huomautuksen kirjainkoko ja välilyönnit):
sisältötyyppi: teksti/html; charset=windows-1251 Salli: HANKI, PÄÄ Sisällön pituus: 356 SALLI: HANKI, VAIHTOEHDOT Sisällön pituus: 1984Oikea kompakti versio muunnoksesta ja tulkinnasta on:
Sisältötyyppi: text/html;charset=windows-1251 Salli: GET, HEAD, OPTIONS Sisällön pituus: 1984Tässä tapauksessa on laitonta hyväksyä Content-Length-arvoa 356. Salli-arvoja yhdistettäessä ensimmäisen kentän loppuun lisättiin pilkku ja järjettömästi monistettu "GET"-elementti, jotta se ei menetä semanttista merkitystä. poistettiin.
Vain päivämäärä ilmoitetaan otsikoissa Date, Expires, Last-Modified, If-Modified-Since, If-Unmodified-Since. Päivämäärä voi näkyä otsikoissa If-Rangeja Warning.
HTTP käyttää kolmea muotoa:
RFC 7231 ohjeistaa tietojen vastaanottajia valmistautumaan käsittelemään päivämäärä- ja aikaleimoja kaikissa kolmessa muodossa ja luomaan päivämäärä- ja aikaleimoja vain haluamassaan muodossa.
Kellonaika on aina määritetty GMT - aikavyöhykkeelle ( UTC+0 ). Vuosi on kirjoitettu neljällä numerolla. Päivä, tunti, minuutti ja sekunti on nollattu kahdeksi merkiksi. Englanninkielisiä kolmikirjaimia vakiolyhenteitä käytetään kuukauden ja viikonpäivän nimissä.
Viikonpäivät maanantaista alkaen: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Kuukaudet tammikuusta joulukuuhun: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
PHP käyttää gmdate()-funktiota paikallisen ajan muuntamiseen GMT:ksi. Esimerkkejä päivämäärän luomisesta HTTP-otsikoille:
// Nykyisen asiakirjan luomispäivämäärä: header ( "Päiväys: " . gmdate ( DateTime :: RFC850 )); // Määritetyn tiedoston muokkauspäivämäärä: $fp = 'data/my-foo.txt' ; // polku otsikkotiedostoon ( "Last-Modified: " . gmdate ( "D, d MYH:i:s" , filemtime ( $fp )) . " GMT" ); // Asiakirjan oletetaan muuttuvan tunnissa: header ( "Vanhenee: " . gmdate ( "D, d MYH:i:s" , aika () + 3600 ) . " GMT" ); // 3600 - sekuntien määrä suhteessa nykyiseen hetkeen.Sisältöfragmenttien kanssa työskenneltäessä tavualueita käytetään erityisissä otsikoissa . Voit määrittää niihin joko yhden tai useita fragmentteja erottamalla ne pilkuilla " ". Alueet koskevat otsikoita ja . Otsikossa on vain mittayksiköt. ,RangeContent-RangeAccept-Ranges
Tavualueilla mittayksiköiden nimet on ilmoitettava alussa ja sen jälkeen symboli " =". Tällä hetkellä yksiköitä lukuun ottamatta bytesmuita ei ole käytössä. Symbolin " " takana =ovat itse alueet. Jokainen niistä on yhdysviivalla erotettu luonnollisten lukujen- pari tai nolla ja luonnollinen luku. Ensimmäinen elementti määrittää aloitustavun ja toinen lopputavun. Alueiden numerointi alkaa nollasta.
Alku- tai lopputavua ei ehkä ole määritetty. Viimeisen tavun puuttuessa katsotaan, että puhumme fragmentista aloitustavusta sisällön loppuun. Jos alkua ei ole, lopputavun numeroksi otetaan sisällön lopusta pyydetty tavumäärä.
Jos ensimmäinen tavu on suurempi kuin viimeinen, alue katsotaan syntaktisesti virheelliseksi . Otsikkokentät, jotka sisältävät syntaktisesti virheellisiä arvoja sisältäviä alueita, ohitetaan. Jos ensimmäinen tavu on resurssin soveltamisalan ulkopuolella, alue ohitetaan. Jos viimeinen tavu on rajojen ulkopuolella, alue katkaistaan loppuun.
Tavualueiden lohko katsotaan suoritettavaksi, jos se sisältää vähintään yhden käytettävissä olevan alueen. Jos kaikki alueet ovat virheellisiä tai resurssin soveltamisalan ulkopuolella, palvelimen tulee palauttaa sanoma, jonka tila on 416(Pyydetty alue ei täytä).
Esimerkkejä (koko resurssi on 5000 tavua):
HTML - kuvauskielen avulla voit asettaa tarvittavat HTTP-otsikkoarvot sisäisesti <HEAD>tagin avulla <META>. Tässä tapauksessa otsikon nimi määritetään attribuutissa http-equivja arvo - in content. Otsikkoarvo asetetaan lähes aina määritetyllä Content-Typekoodauksella, jotta vältytään selaimen tekstin näyttämisessä. Ei myöskään ole tarpeetonta ilmoittaa otsikon arvoa Content-Language:
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=windows-1251" > < meta http-equiv = "Content-Language" content = "fi" > ...http | |
---|---|
Yleiset käsitteet |
|
menetelmät | |
Otsikot |
|
Tilakoodit |