NexxDigital - počítače a operačné systémy

Je úžasné, aká malá chyba môže úplne zničiť váš web WordPress. Hovoríme, samozrejme, o známom upozornení na chybu WordPress. Upozornenie: Nie je možné upraviť informácie v hlavičke - hlavičky už boli odoslané prostredníctvom pluggable.php. Ak ste jedným z tých, ktorí čelili tejto chybe, potom ste na správnom mieste. V tomto budeme diskutovať predovšetkým o dôvode výskytu tejto chyby a pozrieme sa na riešenia, ktoré problém nakoniec vyriešia.

Pred začatím sa uistite, že máte nasledujúce:

  • Prístup k ovládaciemu panelu vášho hostingu alebo FTP prístup

Ako sa vyskytujú informácie o hlavičke nie je možné upraviť - hlavičky, ktoré už boli omylom odoslané

Pozrime sa na príklad tejto chyby, aby sme lepšie pochopili dôvody. Chyba sa zvyčajne zobrazuje v tejto forme:

Upozornenie: Nie je možné upraviť informácie hlavičky - hlavičky už odoslané používateľom (výstup začal na /public_html/wp-content/plugins/my-plugin/my-function.php:#) v /public_html/wp-includes/pluggable.php v riadku #

Ako vidíte, chyba uvádza dva súbory. Prvý súbor (v našom prípade: moja-funkcia.php sídli v /public_html//wp-content/plugins/my-plugin/) na čele podozrivých. Toto je náš vlastný kód, ktorý je určený na zmenu základných funkcií poskytovaných WordPress. Funkcionalita jadra je v súbore pluggable.php(Základný súbor WordPress, nezmenený pre ľubovoľný inštalácie WordPress). Inými slovami, problém je v prvom súbore, ktorý bráni správnemu spusteniu druhého súboru.

Hlavnou príčinou chyby je extra medzery v prvom súbore. Sú to medzery v hornej alebo dolnej časti súboru, zbytočné medzery kdekoľvek v súbore alebo dokonca medzery v značkách PHP. . Mimochodom, vzhľadom na skutočnosť, že programátori môžu (a zvyčajne to robia) omylom vložiť do svojho kódu medzery navyše, sa táto chyba vyskytuje častejšie, než by ste čakali. Riadok # uvedený v chybovom hlásení odkazuje na miesto problému – pomôže vám to vyriešiť problém rýchlejšie a bez problémov.

Oprava nemôže upraviť informácie hlavičky – hlavičky už odoslal

Teraz, keď viete, čo chybu spôsobuje, môžete prejsť k jej oprave. Ukážeme vám dve možnosti na odstránenie problému, ktoré môžete vyskúšať jednotlivo alebo postupne, ak jednotlivo nepomohlo.

Možnosť 1 - Úprava chybného súboru

Prvé riešenie chyby Upozornenie: Nie je možné upraviť informácie v hlavičke– manuálna oprava súboru s chybou. V samotnom chybovom hlásení už máte informácie potrebné na nájdenie problému (nezabudnite, že toto je prvý súbor v správe). Všetko, čo je potrebné, je otvoriť tento súbor cez FTP pomocou klienta ako FileZilla alebo cez správcu súborov.

V podstate všetko, o čo sa tu musíte postarať, je odstrániť nadbytočné medzery/prázdne riadky v súbore. Dobrým miestom na začiatok by bol riadok # uvedený v chybovej správe. Od tohto bodu môžete pokračovať v analýze zvyšku súboru a hľadať ďalšie nepotrebné medzery alebo prázdne riadky až do úplného konca dokumentu.

Uistite sa, že ste správne napísali počiatočné a koncové značky PHP. Pred alebo za značkou nesmie byť medzera , rovnako ako štítok ?> . Posledný riadok kódu tiež nesmie končiť medzerou alebo novým riadkom navyše.

Na snímke obrazovky nižšie môžete vidieť súbor wp-config.php, ktorý má pred prvým tagom PHP medzery.

CLUE: V mnohých textové editory nepotrebné miesta môžete odstrániť automaticky. Ak chcete napríklad odstrániť nadbytočné medzery v editore Atom, vyberte celý kód a prejdite na P balíčky -> Biele znaky -> Odstrániť koncové medzery.

Možnosť 2 - Vymeňte chybný súbor

Samozrejme, úprava množstva súborov s chybami môže byť náročná. Súbory môžu súvisieť s doplnkom alebo témou, ktorú ste práve nainštalovali na svoj web, alebo môžu dokonca ísť o základné súbory WordPress.

Ak je chyba skutočne spôsobená doplnkom alebo témou, všetko, čo musíte urobiť, je preinštalovať ho. Táto akcia pomáha vo väčšine prípadov. Na druhej strane, ak chybu spôsobuje hlavný súbor WordPress, najlepšie riešenie vezmite si čistú kópiu WordPress a nahraďte chybný súbor vo svojej inštalácii správnou verziou. Tým sa zabezpečí, že chybný súbor bude opravený počiatočný stav, zatiaľ čo zvyšok inštalácie vašej stránky WordPress zostane bezpečný a v poriadku. Teraz stačí znova načítať stránku a uistiť sa, že chyba je opravená.

Na záver

Či už ste vložili úryvok kódu do súboru, pridali nový doplnok/tému alebo kód napísali ručne, existuje riziko, že v súbore budú ďalšie medzery. Tieto zdanlivo nevinné miesta môžu byť chybou WordPress Upozornenie: Nie je možné upraviť informácie v hlavičke – hlavičky už odoslal.

V tejto príručke sme sa zaoberali tým, ako opraviť takéto chyby, a váš web teraz opäť funguje podľa očakávania. Viac sprievodcov WordPress nájdete tu.

Pochopenie hlavičiek HTTP a polí hlavičiek HTTP

HTTP hlavičky poskytnúť dôležité informácie potrebné na odoslanie transakcie HTTP cez http protokol.

Všeobecný formát hlavičky HTTP obsahuje v poli hlavičky dvojice názov – hodnota oddelené dvojbodkou. Každý z párov názov-hodnota končí znakom návratu vozíka (CR) a posunu riadka (LF). Prázdne polia na koniec každej hlavičky označujú koniec hlavičky.

Bežný formát hlavičky, za ktorým nasledujú aplikácie, vyzerá takto:

Typy hlavičiek HTTP

Existujú štyri typy hlavičiek správ HTTP. Oni sú:

  • Všeobecná hlavička
  • Hlavička žiadosti
  • hlavička odpovede
  • Hlavička entity

Všeobecná hlavička

Polia General Header majú spoločnú použiteľnosť v správach požiadaviek a odpovedí. Polia hlavičky sa vzťahujú len na prenášanú správu a nevzťahujú sa na prenášanú entitu.

Štruktúra všeobecnej hlavičky vyzerá takto:

Kontrola vyrovnávacej pamäte pole špecifikuje direktívy, ktoré musí dodržiavať každý mechanizmus ukladania do vyrovnávacej pamäte v systéme požiadaviek a odpovedí.

spojenie pole umožňuje odosielateľovi špecifikovať voľby požadované pre pripojenie. Hlavička pripojenia má nasledujúci formát:

Dátum pole predstavuje dátum a čas počas inicializácie správy. Formát dátumu zadaný v HTTP vyzerá takto:

pragma pole pomáha zahrnúť implementačnú špecifickú smernicu uplatniteľnú na každého príjemcu v systéme žiadostí a odpovedí.

Trailer hodnota poľa určuje, či je sada polí hlavičky v upútavky správy kódovaná kódovaním prenosu kúskov.

Kódovanie prenosu pole označuje, či sa na telo správy vzťahuje nejaký typ transformácie.

Inovovať umožňuje klientom špecifikovať ďalšie podporované komunikačné protokoly. Umožňuje tiež serveru prepínať protokoly s dodatočnými protokolmi.

Cez polia sú povinné polia používané servermi proxy a bránami, ktoré označujú prechodné protokoly. Označuje tiež príjemcu požiadavky medzi užívateľským agentom a serverom a odpoveď medzi serverom a klientom.

POZOR pole nesie ďalšie informácie o stave správy a transformáciách správ, ktoré niesu odráža v správe.

Hlavičky upozornení sa zvyčajne odosielajú s odpoveďami.

Pole hlavičky požiadavky umožňuje klientom dodatočne odovzdať informácie o požiadavkách a informácie o klientovi serveru.

Štruktúra hlavičky požiadavky vyzerá takto:

súhlasiť pole určuje typy médií, ktoré sú prijateľné pre odozvu.

"*" sa používa na zoskupenie typov médií v rozsahu

"*/*" označuje všetky typy médií

"type/*" označuje všetky podtypy typu

Prijať znakovú sadu pole označuje prijateľnú znakovú sadu odpovede. Umožňuje klientom porozumieť špeciálnym znakovým sadám a signalizovať tak serveru, aby reprezentoval dokument v týchto znakových sadách.

Prijmite kódovanie pole je podobné ako Accept, obmedzuje kódovanie prijateľného obsahu.

Accept-Language pole je podobné ako Prijať, obmedzuje preferovanú množinu prirodzených jazykov.

Autorizácia pole je pre užívateľských agentov, ktorí sa chcú autentifikovať na serveri.

Očakávajte pole označuje správanie servera požadované klientom.

Od pole obsahuje e-mailovú adresu užívateľa, ktorý ovláda žiadajúceho user-agenta.

Hostiteľ pole špecifikuje internetového hostiteľa a požadované číslo portu zdroja z URI užívateľa.

Ak Match pole sa používa na vytváranie podmienených metód.

If-Modified-Since pole sa používa na vytvorenie podmienenej metódy. Ak sa požadovaný variant v určenom čase nezmení, entita sa zo servera nevráti.

If-None-Match umožňuje efektívnu aktualizáciu informácií cache s minimálnou transakčnou réžiou.

Ak Rozsah umožňuje klientom získať časť chýbajúcej entity alebo inak, o to môžu klienti požiadať poslať celá nová entita.

If-Unmodified-Since umožňuje serveru vykonať požadovanú operáciu, ak nebola zmenená od času uvedeného v tomto poli.

Maximálny počet dopredu poskytuje mechanizmy s metódami TRACE a OPTIONS na obmedzenie proxy serverov alebo brán na preposielanie požiadaviek.

Autorizácia proxy pole umožňuje klientovi identifikovať zabezpečený proxy.

Rozsah pole špecifikuje entity HTTP v správach HTTP reprezentovaných ako postupnosť bajtov. Požiadavka na získanie HTTP vyžaduje jeden alebo viac podrozsahov entít pomocou metód GET.

Sprostredkovateľ pole umožňuje klientom zadať URI adresy zdroja, z ktorého sa nájde URI požiadavky.

TE pole označuje kódovanie prenosu rozšírenia, ktoré môže prijať v odpovedi. Okrem toho uvádza, či bude akceptovať polia prívesu v kódovaní prenosu kúskov.

Používateľský agent obsahuje informácie o požadujúcom user-agentovi.

Hlavička odpovede HTTP

Pole hlavičky odpovede umožňuje serveru odovzdať ďalšie informácie prostredníctvom odpovedí, ktoré nie sú jednoduché odpovede stavového riadku.

Štruktúra hlavičky odpovede vyzerá takto:

Prijať rozsahy pole umožňuje serverom indikovať prijatie požiadaviek na rozsah zdrojov.

Vek pole označuje odosielateľa približný čas od odpovede servera.

Etag pole poskytuje aktuálnu hodnotu značky entity pre požiadavku.

umiestnenie pole presmeruje príjemcov na iné miesta ako Request-URI na dokončenie identifikácie nového zdroja.

Autentifikácia proxy pole je povinné zahrnutie odpovede na overenie proxy servera.

Opakovať-po pole sa používa ako odpoveď, keď je služba nedostupná na označenie dĺžky obdobia, počas ktorého služba zostane klientovi nedostupná.

server pole obsahuje informácie o softvéri, ktorý server používa na spracovanie požiadaviek.

Vari pole označuje pole požiadavky, ktoré určuje, či je cache spôsobilá použiť odpoveď na požiadavku bez opätovného overenia odpovede.

WWW-Autentifikácia polia sa používajú, keď je správa s odpoveďou neoprávnená.

Polia hlavičky entity definujú metainformácie o tele entity alebo požadovanom zdroji. Formát hlavičky entity vyzerá takto:

povoliť zoznam polí množinu metód podporovaných zdrojmi identifikovanými Request-URI.

kódovanie obsahu pole sa používa ako modifikátor typu média.

Obsah – jazyk pole popisuje prirodzený jazyk pre klientov entity.

dĺžka obsahu pole označuje veľkosť entity vyjadrenej v desiatkovom čísle.

umiestnenie obsahu pole poskytuje umiestnenie zdroja pre entitu, keď je prístupná z iného umiestnenia ako Requested-URI.

Obsah-MD5 poskytuje kontrolu integrity správy (MIC) pomocou súhrnu MD5 v tele entity.

rozsah obsahu pole určuje, kde by sa malo použiť čiastočné telo celého tela entity.

Druh obsahu pole označuje, či sa typ média tela entity odosiela príjemcovi alebo sa na odosielanie požiadaviek používa metóda GET.

Platnosť vyprší pole poskytuje dátum/čas, po ktorom sa odpoveď stane neaktuálnou.

Naposledy zmenené pole označuje dátum a čas poslednej úpravy variantu.

Poradie, v ktorom sa názov poľa zobrazí v hlavičke pri prijatí, je nepodstatné. Bežne sa ako prvé umiestňujú všeobecné hlavičky, za nimi nasleduje hlavička požiadavky alebo odpovede s hlavičkou entity na konci.

Upozornenie o autorských právach: Prosím, nekopírujte ani neprekladajte tento článok bez predchádzajúceho písomného súhlasu stránky

HTTP Debugger je analyzátor HTTP bez servera proxy pre vývojárov, ktorý poskytuje možnosť zachytávať a analyzovať hlavičky HTTP, súbory cookie, parametre POST, obsah HTTP a hlavičky CORS z ľubovoľného prehliadača alebo desktopovej aplikácie. Úžasné používateľské rozhranie a veľmi jednoduché použitie. Nie proxy, žiadne problémy so sieťou!

Vložil dňa Št, 05.04.2017 - 12:55

Popis konkrétneho problému

Po kliknutí na tlačidlo sa zobrazí chyba:

Upozornenie: Nie je možné upraviť informácie v hlavičke - hlavičky už odoslané používateľom (výstup začal na C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php:10) v C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php na riadku 12

Kód je podobný kódu v tomto vlákne:

Experimentálny web

Vyberte skript na stiahnutie



Obslužný program skriptu:



Kedy sa to stane

Typ chyby (upozornenia):

Upozornenie: Nie je možné upraviť informácie v hlavičke - hlavičky už odoslal

Vyskytuje sa, ak ste už urobili niečo, čo vyžaduje nastavenie hlavičiek prehliadača a teraz ich chcete prepísať novými. Napríklad, ak ste už zobrazili text, potom php odkryje hlavičky (najmä hlavičku umiestnenie-- ktorá ukazuje, či zostať na požadovanej stránke, alebo či potrebujete prejsť na inú stránku a dostať odpoveď na požiadavku, ktorá tam už je), aby ste klientskemu prehliadaču (vo svojej odpovedi) ukázali, ako sa má správať.

Koreň problému

S najväčšou pravdepodobnosťou je problém vo vašom prípade, že už dávate obsah (html tagy, ktoré sú zmiešané v súbore so skriptom) predtým príkazy:

echo header($redirect);

Pamätajte, že funkciu header() je možné volať iba v prípade, že klient zatiaľ neboli odoslané žiadne údaje. To znamená, že by mal byť vo výstupe na prvom mieste, pred jeho volaním by nemali byť žiadne značky HTML, prázdne riadky atď. Je celkom bežné, že sa pri čítaní kódu vyskytne chyba so súborovými funkciami, ako je include alebo require, v tomto kóde sú medzery alebo prázdne riadky, ktoré sú vytlačené pred volaním header(). Rovnaké problémy sa môžu vyskytnúť pri použití jedného súboru PHP/HTML.

To znamená, že je potrebné uložiť obslužný program skriptu z html - koniec koncov, v skutočnosti sám nič nevypisuje, ale jednoducho ho prenáša na inú adresu - toto je prvé.

header($redirect);

echo header($redirect);

Experimentujte

Keďže echo() v skutočnosti píše do Telo odpovede http, a nie v hlavičkách a hlavička vracia void (to znamená, že nevracia hodnoty), ako je uvedené vyššie, potom nemá zmysel používať echo(), ale
Odporúčam však urobiť experiment:

  1. odstrániť html
  2. neodstraňujte ozvenu

Keďže v skutočnosti voláte header() pred echo() (keďže header() je argumentom pre echo()), a preto sa vracia -- súčasne skontrolujte, či funkcia vracia hodnotu null -- či sa bude interpretovať ako prázdny reťazec alebo (čo skôr) echo ani nezačne fungovať, pretože už dôjde k presmerovaniu.

Vráťme sa k dôvodu

Tie. pred volaním header() by sa nemal zobrazovať žiadny obsah(čo je napísané v popise funkcie: http://php.net/manual/ru/function.header...)

  • 1) ani s ozvenou
  • 2) nie pomocou bežného vysypania html-textu do prehliadača.

V našom prípade zrejme echo nič neovplyvňuje, ale html v handleri naozaj áno.

problém bol vyriešený

Odstránené na vašu radu. HTML tagy. Teraz sa presmerovanie uskutoční správne, skript obsluhy vyzerá takto:

Funkcia echo naozaj neovplyvňuje prácu, t.j. môžete to nechať ako S. Holzner:

Pri navrhovaní kódu pre presmerovanie by ste mali venovať pozornosť aj prípone súboru, do ktorého sa prechod uskutočňuje: s navrhovanou syntaxou musí byť špecifikovaná v argumente hlavičky.

  • Ak chcete uverejňovať komentáre, prihláste sa

Ale môžete to urobiť

Môžete však nechať fungovať aj predchádzajúci obslužný program

Presmerovanie používateľa

ak nastavíte možnosť v súbore php.ini

Output_buffering = 4096

  • Ak chcete uverejňovať komentáre, prihláste sa

Opätovné posielanie hlavičiek je zakázané, HTTP protokol takto nefunguje! Ale čo robiť potom? Ak po výstupe na stránku musíte tiež spustiť reláciu a vložiť súbor cookie? - Pamätajte na vyrovnávaciu pamäť výstupu.

To znamená, že keď je nastavená nenulová veľkosť vyrovnávacej pamäte, potom až do jej zaplnenia je stále možné manipulovať s hlavičkami. Pri nulovej veľkosti vyrovnávacej pamäte sa po výstupe obsahu okamžite vráti predchádzalo odovzdávanie hlavičiek HTTP odpovedí klientovi.

A ukázalo sa, že chceme zmeniť hlavičky, ktoré už „uleteli“ cez sieť ku klientovi (to znamená, že ich už nie je možné opraviť – najmä hlavičku umiestnenie, ktorý naznačuje, či zostať na požadovanej stránke, alebo požiadať o inú - odpoveď skriptu "redirector" (v našom prípade ide o obslužný program formulára) len hovorí, že musíme požiadať o ďalšiu stránku), na čo nás php upozorní .

Ale: Samozrejme, takto (nie veľmi správne, presnejšie) sa problém vyriešiť nedá.

_____________
matfak vgu a zvyšok klasiky =)

  • Ak chcete uverejňovať komentáre, prihláste sa

Toto chybové hlásenie sa často zobrazuje programátorom, ktorí začínajú s PHP. Pochopenie, prečo sa táto chyba vyskytuje, vám pomôže nájsť riešenie.

PHP robí veľa práce pri generovaní webových stránok za vás, bez toho, aby ste sa pýtali. Webová stránka má dve časti: hlavičku a telo.

Táto bežná chyba PHP sa vyskytuje, keď programátor urobí chyby pri manipulácii alebo vytváraní hlavičiek. Tu je príklad:

Upozornenie: Nie je možné upraviť informácie v hlavičke – hlavičky už odoslané používateľom (výstup začal na /home/usr1/public_html/sent.php:42) v /home/usr1/public_html/includes/theme-header.php na riadku 12

Vo všeobecnosti si nemusíte robiť starosti s hlavičkou, pretože sa generuje automaticky a obsahuje informácie o stránke, serveri a súbore cookie. Informácie v hlavičke sú dôležité, ale zvyčajne ich používateľ nevidí. Tu je niekoľko príkladov:

Dátum: Po, 10. júl 2006 18:51:59 GMT Server: Apache/2.2.0 (Unix) mod_ssl/2.2.0 OpenSSL/0.9.7g Kódovanie obsahu: gzip Typ obsahu: text/html

Niekedy chcú programátori zmeniť niektoré hodnoty hlavičky. Napríklad, ak PHP generuje výstup XML, Content-Type sa musí zmeniť, aby to indikovalo. Ďalším bežným príkladom je presmerovanie prehliadača používateľa na inú webovú stránku pomocou prvku hlavičky Location, ako je popísané v tomto článku.

Hlavička musí byť v odpovedi z webového servera na prvom mieste a od tela je oddelená jedným prázdnym riadkom. Dôvodom tejto chyby je, že určitá časť tela webovej stránky už bola odoslaná používateľovi pred pokusom o nastavenie hodnoty hlavičky. Pretože PHP vám veľa vecí uľahčuje, problém sa môže skrývať na zvyčajnom mieste. Tu je niekoľko pokynov na nájdenie problému:

  1. Nájdite inštrukciu header(), ktorá spôsobuje problém. Chyba musí byť na tomto riadku alebo pred ním.
  2. Pred touto inštrukciou hlavičky vyhľadajte všetky pokyny, ktoré by mohli smerovať výstup k používateľovi. Ak nájdete jeden alebo viac, zmeňte kód tak, aby sa pred ne presunul výraz hlavičky. Komplexné podmienené príkazy môžu skomplikovať problém, ale môžu tiež pomôcť vyriešiť problém. Prípadne môžete použiť podmienený výraz v hornej časti PHP skript, ktorý čo najskôr určí hodnotu hlavičky a nastaví ju tam.
  3. Uistite sa, že mimo začiatočných a koncových značiek PHP nie sú žiadne medzery. Zatiaľ čo prázdny riadok pred štartovacou značkou
  4. Ak súbor uložíte v kódovaní UTF-8, uistite sa, že súbor je uložený bez podpisu (bez kusovníka). Podpis je bajt pridaný na začiatok súboru a ak je skript PHP uložený v tomto formáte, potom bude tento bajt vnímaný ako súčasť výstupu tela stránky, čo by nemalo byť povolené, aby sme sa vyhli problému, ktorý zvažujú.

V tomto článku sa pozrieme na to, na čo slúžia hlavičky, bez toho, aby sme zachádzali do podrobností, ktorá z nich je za čo zodpovedná. Popis úloh najbežnejších nadpisov bude uvedený v nasledujúcich článkoch.

Všetky články zo série:

  • Čo sú hlavičky HTTP. Všeobecná teória.

HTTP znamená HyperText Transfer Protocol (Hypertext Transfer Protocol). Protokol je súbor pravidiel, podľa ktorých komunikujú rôzne zariadenia. Vznikla v 90. rokoch minulého storočia. Teraz sa používa na internete takmer všade. Všetko, čo vidíte v okne prehliadača, bolo prijaté prostredníctvom tohto protokolu. Hlavičky http sú asi hlavná vec v komunikácii medzi zariadeniami. Poskytujú základné informácie o spojení, ktoré sa vytvára, ao informáciách prenášaných cez toto spojenie.
Pozrime sa na komunikačnú schému oboch zariadení. Nech sú tieto zariadenia váš počítač a nejaký server na internete:

Ako vidíte, prehliadač odoslal požiadavku http. Môže to vyzerať nejako takto:

GET /other-19 HTTP/1.1
Hostiteľ: www.scriptsite.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Prijať: text/html,application/xhtml+xml,application/xml;q=0,9,*/*;q=0,8
Akceptovaný jazyk: ru,en-us;q=0,7,en;q=0,3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0,7,*;q=0,7
Keep Alive: 300
Spojenie: keep-alive

V tomto prípade je prvý riadok reťazec dotazu, všetky ostatné riadky sú hlavičky http, ktoré nesú dodatočné informácie o požiadavke, o klientovi, ktorý tieto informácie požaduje, ao mnohých ďalších veciach.
Ako odpoveď na našu požiadavku môže server odoslať nasledujúce hlavičky:

Server: Apache/2.0.61 (Unix) mod_ssl/2.0.61 OpenSSL/0.9.8k mod_dp20/0.99.2 PHP/5.2.5 mod_python/3.3.1 Python/2.5.1 mod_ruby/1.2.6 Ruby/1.8. (2007-09-24)

X-Powered-By: PHP/5.2.5

Set-Cookie: PHPSESSID=ft47gokfee6amv3eda3k1p93s3; cesta=/

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Keep Alive: časový limit=10, max=1024

Spojenie: Keep Alive

Transfer-Encoding: chunked

Typ obsahu: text/html

Prvý riadok je stavový riadok. Zvyšok riadkov sú hlavičky. V schéme sa ukázalo, že sa načítava aj obsah stránky. Tento obsah sa však zvyčajne nezobrazuje v doplnkoch, ktoré zobrazujú hlavičky. A obsah stránky je len špeciálny prípad. Podľa protokolu sa stránka nemusí prenášať. Namiesto toho je možné preniesť obrázok, zvukový súbor a video. A všetky majú veľmi odlišné tituly.

Ako zobraziť hlavičky http?

Ak chcete zobraziť hlavičky http, odporúčam nasledujúce doplnky pre prehliadač Firefox:

Ak používate prehliadač Chrome, všetky informácie môžete zobraziť kliknutím na tlačidlo nastavení - nástroje - nástroje pre vývojárov. siete.
Používateľom prehliadača Opera nemôžem poradiť, pretože s týmto prehliadačom nie som kamarát. Po nainštalovaní doplnkov a ich spustení skúste stránku obnoviť. Okamžite uvidíte obrovské zoznamy požiadaviek a odpovedí, prostredníctvom ktorých váš prehliadač komunikoval so serverom.

Http hlavičky a prístup k nim v php

Ak ste vývojár PHP, môžete pristupovať k hlavičkám požiadaviek pomocou funkcie getallheaders(). Aby ste pochopili, ako to funguje, spustite nasledujúci kód:

A dostaneme výtlačok poľa hlavičiek.

Ale častejšie sa k nim pristupuje cez globálnu premennú $_SERVER. Takmer každá hlavička http má v tejto premennej podobný názov prvku, ktorý je tvorený princípom HTTP_header_name. Takže pre toho istého 'User_Agent' existuje premenná $_SERVER['HTTP_USER_AGENT'];

Ak chcete získať hlavičky, ktoré sa server chystá odoslať používateľovi, použite funkciu headers_list(). Chýbajúce povinné hlavičky server spravidla skladá už na konci práce všetkých skriptov. Toto pole teda bude obsahovať hlavičky, buď tie, ktoré server vytvoril pred spustením vykonávania skriptu (a nebudú sa meniť), alebo tie, ktoré nastavíme manuálne. Môžete ich nastaviť manuálne pomocou funkcie header("text hlavičky");
Spustíme nasledujúci kód:

Uvidíme výtlačok hlavičiek pripravených na odoslanie v čase volania funkcie:

Prvá hlavička bola nastavená automaticky a nesie názov servera, na ktorom je skript spustený. Druhý je ručne inštalovaný u nás. Ak by prehliadač potreboval hlavičku „Fruit“, zobral by ju z http odpovede servera a použil by ju. Ale keďže to náš prehliadač nepotrebuje, jednoducho ignoruje riadok, ktorému nerozumie.

http štruktúra požiadavky

Naša požiadavka vyzerá takto:

Prvý riadok v ňom, ako už bolo spomenuté, je reťazec dotazu. Pozostáva z troch častí:

  • metóda(metóda) - označuje, aký druh požiadavky. Najbežnejšie metódy sú: GET, POST, HEAD. O nich sa bude diskutovať v nasledujúcom odseku.
  • cesta(cesta) – Toto je zvyčajne časť adresy URL, ktorá nasleduje za doménou. Ak napríklad do panela s adresou zadáte http://www.scriptsite.ru/about/, hodnota cesty bude /about/.
  • protokol(protokol) – protokol, ktorý sa má použiť. Zvyčajne pozostáva z „HTTP“ a verzie protokolu. Moderné prehliadače zvyčajne používajú verziu 1.1

Ďalej sú hlavičky vo forme reťazcov vo formáte "Názov: hodnota".
Mimochodom, v tejto požiadavke sa ako jedna z hlavičiek prenášajú aj údaje o súboroch cookie. Väčšina týchto riadkov je voliteľná. Dopyt je možné zredukovať na dva riadky:

GET /článok/zobraziť/4/ HTTP/1.1

Hostiteľ: scriptsite.ru

Metódy žiadosti

GET

Požiadavka získať sa zvyčajne používa na vyžiadanie dokumentu, pričom sa zadávajú niektoré parametre.
Toto je hlavná metóda používaná na získanie html stránok, obrázkov, súborov CSS a JavaScript atď.
Vzhľadom na to, že parametre môžu byť akékoľvek a server nemá žiadne obmedzenia na ich spracovanie, často sa na prenos informácií používa metóda pre žiadosti o údaje. Napríklad budeme mať takýto formulár

V tomto prípade budú tieto parametre viditeľné v paneli s adresou prehliadača.

POST

Post je metóda používaná na odosielanie údajov na server. Hoci môžete odosielať údaje na server pomocou metódy GET cez panel s adresou prehliadača, vo väčšine prípadov je vhodnejšie použiť POST. Posielanie veľkého množstva dát cez GET je nepraktické. Okrem toho má GET určité obmedzenia, ktoré neumožňujú napríklad publikovať tento článok na mojej stránke cez jeden riadok prehliadača. žiadosti POST najčastejšie používané na odosielanie webových formulárov. Upravme formulár z predchádzajúceho príkladu tak, že mu dáme metódu POST.



Ak si všimnete chybu, vyberte časť textu a stlačte Ctrl + Enter
ZDIEĽAM:
NexxDigital - počítače a operačné systémy