A HTTP - fejlécek egy HTTP -üzenetben lévő karakterláncok, amelyek kettősponttal elválasztott név-érték párost tartalmaznak . A fejlécek formátuma követi az ARPA szöveges hálózati üzenetfejlécek általános formátumát (lásd RFC 822 ). A fejléceket legalább egy üres sorral el kell választani az üzenet törzsétől.
Minden címsor négy fő csoportra oszlik:
Ebben a sorrendben ajánlott a fejléceket elküldeni a címzettnek.
Az értéket több sorra tervezik elhelyezni (sortörés). A törés jelzéséhez legalább egy szóköz karakternek jelen kell lennie a következő sor elején.
Az azonos paraméternevű, de eltérő értékű fejlécek csak akkor kombinálhatók egybe, ha a mező értéke vesszővel elválasztott lista. Minden más esetben a távolabbi címsorok értékeinek át kell fedniük az előzőeket. Ezért a proxyknak nem szabad megváltoztatniuk a fejlécek sorrendjét az üzenetekben. Ilyenkor általában nem számít a lista elemeinek sorrendje.
Példa többsoros értékekkel és azonos fejlécnevekkel (megjegyzendő kis- és nagybetűk és szóközök):
tartalomtípus: szöveg/html; charset=windows-1251 Engedélyezés: GET, HEAD Tartalom hossza: 356 ENGEDÉLYEZÉS: GET, OPCIÓK Tartalom hossza: 1984Az átalakítás és értelmezés helyes kompakt változata:
Tartalom típusa: text/html;charset=windows-1251 Engedélyezés: GET, HEAD, OPTIONS Tartalom hossza: 1984Ebben az esetben tilos a 356-os Content-Length értéket elfogadni. Az Allow értékek kombinálásakor, hogy ne veszítse el a szemantikai jelentését, az első mező végére vessző került, és az értelmetlenül megkettőzött "GET" elem eltávolítva.
DateA , Expires, Last-Modified, If-Modified-Since, fejlécekben csak a dátum szerepel If-Unmodified-Since. A dátum megjelenhet a fejlécekben If-Rangeés a Warning.
A HTTP három formátumot használ:
Az RFC 7231 arra utasítja az adatok címzettjeit, hogy készüljenek fel a dátum- és időbélyegzők feldolgozására mindhárom formátumban, és csak az általuk preferált formátumban hozzanak létre dátum- és időbélyegzőket.
Az idő mindig a GMT időzónára ( UTC+0 ) van megadva. Az évszám négy számjeggyel van írva. A nap, az óra, a perc és a másodperc két karakterre nullázva van kitöltve. Az angol nyelvben hárombetűs szabványos rövidítéseket használnak a hónap és a hét napjának megnevezésére.
A hét hétfőtől kezdődő napjai: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Hónapok januártól decemberig: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
A PHP a gmdate() függvényt használja a helyi idő GMT-re konvertálásához. Példák dátumok generálására HTTP-fejlécekhez:
// Aktuális dokumentum generálás dátuma: fejléc ( "Dátum: " . gmdate ( DateTime :: RFC850 )); // A megadott fájl módosításának dátuma: $fp = 'data/my-foo.txt' ; // fejlécfájl elérési útja ( "Utoljára módosított: " . gmdate ( "D, d MYH:i:s" , filemtime ( $fp )) . " GMT" ); // A dokumentumnak egy órán belül meg kell változnia: header ( "Lejár: " . gmdate ( "D, d MYH:i:s" , time () + 3600 ) . " GMT" ); // 3600 - az aktuális pillanathoz viszonyított másodpercek száma.Ha tartalomtöredékekkel dolgozik , a bájttartományokat speciális fejlécekben használjuk . Megadhat bennük egy vagy több töredéket, vesszővel elválasztva őket " ". A tartományok a fejlécekben és a . A fejléc csak a mértékegységeket tartalmazza. ,RangeContent-RangeAccept-Ranges
A bájt tartományokban a mértékegységek nevét kell az elején feltüntetni, majd a " =" szimbólumot. Jelenleg az egységeken kívül bytesmás nincs használatban. A „ ” szimbólum mögött =maguk a tartományok találhatók. Mindegyik természetes szám kötőjellel elválasztott -párja , vagy nulla és természetes szám. Az első elem a kezdő bájtot, a második pedig a záró bájtot határozza meg. A tartományok számozása nullától kezdődik.
Előfordulhat, hogy a kezdő vagy a záró bájt nem adható meg. Az utolsó bájt hiányában úgy tekintjük, hogy a tartalom kezdő bájtjától a végéig tartó töredékről beszélünk. Ha nincs eleje, akkor a tartalom végétől kért bájtok száma a vége bájtszám.
Ha az első bájt nagyobb, mint az utolsó, akkor a tartomány szintaktikailag érvénytelennek minősül . A szintaktikailag érvénytelen értékű tartományokat tartalmazó fejlécmezőket figyelmen kívül hagyja. Ha az első bájt kívül esik az erőforrás hatókörén, akkor a tartomány figyelmen kívül marad. Ha az utolsó bájt a határon kívül van, akkor a tartomány a végére csonkolódik.
A bájttartományokból álló blokk akkor tekinthető végrehajthatónak, ha tartalmaz legalább egy elérhető tartományt. Ha az összes tartomány helytelen vagy kívül esik az erőforrás hatókörén, akkor a szervernek üzenetet kell küldenie az állapottal 416(A kért tartomány nem teljesíthető).
Példák (a teljes erőforrás 5000 bájt):
A HTML jelölőnyelv lehetővé teszi a szükséges HTTP-fejlécértékek belső beállítását <HEAD>a címke használatával <META>. Ebben az esetben a fejléc neve az attribútumban http-equiv, az érték pedig - in content. A fejléc értékét szinte mindig Content-Typea megadott kódolással állítjuk be, hogy elkerüljük a szöveg böngésző általi megjelenítésével kapcsolatos problémákat. A fejléc értékének feltüntetése sem felesleges Content-Language:
< html > < head > < meta http-equiv = "Content-Type" content = "text/html;charset=windows-1251" > < meta http-equiv = "Content-Language" content = "hu" > ...HTTP | |
---|---|
Általános fogalmak |
|
Mód | |
Címek |
|
Állapotkódok |