odpovede html veci. Popis objektu Response

Povedzme, že potrebujeme získať dáta zo stránky, ktorých ručný zber je vzhľadom na objem nepraktický alebo nemožný. V takom prípade môžeme proces automatizovať pomocou nástrojov popísaných nižšie.

žiada knižnicu

Knižnica Python na vytváranie požiadaviek na server a spracovanie odpovedí. Základ skriptu analýzy a naša hlavná zbraň. Pomocou tejto knižnice získame obsah stránky vo forme html na ďalšiu analýzu.

požiadavky na import odpoveď = požiadavky . get ("https://ya.ru" ) # get-request print (response . text ) # obsah tlačenej stránky payload = ( "key1" : "value1" , "key2" : "value2" ) response = requesty . get("http://httpbin.org/get" , params = užitočné zaťaženie) # žiadosť s parametrami hlavičky = ( "user-agent" : "moja-aplikácia/0.0.1" ) odpoveď = požiadavky . get(url , hlavičky = hlavičky ) # žiadosť so špecifickými hlavičkami html

API

Rozhranie pre programovanie aplikácií – rozhranie pre programovanie aplikácií, ktoré vlastník webovej aplikácie poskytuje iným vývojárom. Nedostatok API, ktoré dokáže uspokojiť naše potreby, je prvou vecou, ​​ktorú je potrebné uistiť sa predtým, ako sa ponáhľate s analýzou zdroj stránky a napíšte preň analyzátor. Mnoho populárnych stránok má svoje vlastné API a dokumentáciu, ktorá vysvetľuje, ako ho používať. Môžeme použiť api týmto spôsobom - vytvoríme http požiadavku podľa dokumentácie a dostaneme odpoveď pomocou požiadaviek.

BS4

Beautifulsoup4 je knižnica na analýzu html a xml dokumentov. Umožňuje priamy prístup k obsahu akýchkoľvek značiek v html.

from bs4 import BeautifulSoup soup = BeautifulSoup (raw_html , "html.parser" ) print (sup . find ("p" , class_ = "some-class" ) . text ) # vytlačte obsah značky "p" triedou "nejaká trieda"

Selenium WebDriver

Údaje na stránke je možné generovať dynamicky pomocou javascriptu. V tomto prípade žiadosti + bs4 nebudú môcť analyzovať tieto údaje. Faktom je, že bs4 analyzuje zdrojový kód stránky bez spustenia js. Na spustenie kódu js a získanie stránky identickej s tou, ktorú vidíme v prehliadači, môžete použiť webový ovládač selén - ide o sadu ovládačov pre rôzne prehliadače, dodávanú s knižnicami na prácu s týmito ovládačmi.

A čo ak existuje oprávnenie?

session = requests.Session() data = ("login_username":"login", "login_password":"password") url = "http://site.com/login.php" response = session.post(url, data =údaje)

Ale čo keď stránka zakáže pre veľa žiadostí?

  • Nastaviť oneskorenie medzi žiadosťami:

odpoveď = requests.get(url, timeout=(10, 0.01)) # timeout spojenia, timeout čítania (v sekundách)

  • Predstierajte, že ste prehliadač, ktorý používa selénový webový ovládač alebo odovzdá obsah hlavičky user-agent a požiada:

user_agent = ("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) " "Gecko/20100101 Firefox/50.0") request = requests.get(url, headers=("User-Agent":user_agent))

  • Použi proxy:

Opísaný objekt je veľmi užitočný a výkonný nástroj. Tento objekt má niekoľko metód, ich popis je uvedený nižšie:

zbierky:

Metódy:

Vlastnosti:

Response.Cookies zbierka

Kolekcia cookies nastavuje hodnoty pre cookies. Ak zadané súbory cookie neexistujú, vytvorí ich. Ak súbor cookie existuje, nadobudne novú hodnotu a stará sa zničí.

Response.Cookies(cookie) [(kľúč) | . atribúty ] = hodnota

Možnosti:

  • cookie- Názov súboru cookie
  • kľúč- Voliteľný parameter. Ak je zadaný, potom cookie je adresár (vnorený) a kľúč je množina hodnôt.
  • atribúty- Špecifikované informácie o samotných súboroch cookie. Tento parameter môže byť jeden z nasledujúcich:
  • význam- Označuje hodnotu, ktorá sa má priradiť daný kľúč alebo atribút.
názovPopis
doménaIba záznam. Ak je to uvedené, súbory cookie sa odosielajú iba na požiadanie z danej domény.
Platnosť vypršíIba záznam. Dátum vypršania platnosti súboru cookie. Tento dátum musí byť nastavený, aby sa súbor cookie zapísal klientovi HDD po skončení relácie. Ak tento atribút nie je nastavený, potom sa dátum vypršania platnosti súboru cookie považuje za aktuálny dátum. Platnosť cookies vyprší ihneď po skončení relácie.
má kľúčIba čítanie. Označuje, či súbor cookie obsahuje daný kľúč.
CestaIba záznam. Ak je zadaný, súbor cookie sa odovzdá iba na požiadanie z tejto cesty. Ak parameter nie je nastavený, použije sa cesta k aplikácii.
zabezpečiťIba záznam. Označuje, či bude súbor cookie chránený alebo nie.

komentár:

Ak je súbor cookie s kľúčom vytvorený tak, ako je to znázornené v nasledujúcom skripte,

<% Response.Cookies("mycookie")("type1") = "сахар" Response.Cookies("mycookie")("type2") = "печенье" %>

potom sa odošle nasledujúca hlavička:

Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=cookies

Ak priradíte hodnotu súboru mycookie bez použitia kľúčov, potom táto akcia zničí kľúče type1 a type2. Napr.:<% Response.Cookies("myCookie") = "шоколадный зефир" %>

V predchádzajúcom príklade budú kľúče type1 a type2 zničené a ich hodnoty budú stratené. Mycookie bude teraz obsahovať hodnotnú čokoládovú marshmallow.

Existenciu konkrétneho kľúča môžete skontrolovať aj nasledujúcim spôsobom:

<% = Response.Cookies("myCookie").HasKeys %>

Ak je zobrazené TRUE, potom takýto kľúč existuje, v prípade FALSE - nie.

Metóda Response.Write

Response.Write variable_or_value

Možnosti:

  • premenná_alebo_hodnota- Údaje, ktoré sa majú zobraziť na obrazovke prehliadača prostredníctvom HTML. Tento parameter môže byť akéhokoľvek typu podporovaného VisualBasic Scripting Edition. To znamená, že údaje môžu byť typu: dátum, reťazec, znak, číselné hodnoty. Význam daný parameter nemôže obsahovať kombinácie %>. Namiesto toho môžete použiť ekvivalentnú kombináciu %\>. Webový server preloží túto sekvenciu na požadovanú pri spustení skriptu.

Nasledujúci príklad ukazuje, ako metóda Response.write funguje pri tlači správy pre klienta.

Len ti poviem:<%Response.write "Привет всем!!!"%>A tvoje meno<%Response.write(Request.Form("name"))%>

Nasledujúci príklad pridá značku HTML na webovú stránku. Keďže táto metóda nemôže obsahovať kombináciu %>, použijeme sekvenciu %\>. Takže príklad skriptu:

<% Response.write "

" %>

Výstupom bude riadok:

Response.Redirect Method

Response.Redirect URL (URL – Uniform Resource Descriptor)

Možnosti:

  • URL- Parameter je všeobecný deskriptor prostriedku. Označuje, kedy má byť prehliadač presmerovaný.

komentár:

Akýkoľvek výskyt túto metódu medzi značkami A webové stránky budú ignorované. Túto metódu je možné použiť iba v hlavičke HTML stránky. Táto metóda odovzdá hlavičku prehliadaču, ak chýba parameter URL tento objekt v nasledujúcej forme:

Adresa URL umiestnenia objektu HTTP/1.0 302

Metóda Response.End

Koniec odpovede

komentár:

Ak bola vlastnosť Response.Buffer nastavená na hodnotu TRUE, potom volanie metódy Response.End vyprázdni vyrovnávaciu pamäť, čím sa dáta z nej vytlačia klientovi. Ak nechcete používateľovi zobrazovať údaje, musíte zavolať nasledujúcu metódu:

<% Response.Clear Response.End %>

Metóda Response.AddHeader

Metóda AddHeader pridáva hlavičku HTML so špecifickými hodnotami. Táto metóda vždy pridá novú hlavičku do odpovede do klientskeho prehliadača. Táto metóda nenahrádza existujúcu hlavičku novou. Pridaný názov nie je možné odstrániť.

Táto metóda sa používa len pre „pokročilé“ úlohy.

Response.AddHeader názov_premennej, hodnota

Možnosti:

  • názov_premennej- Názov nových možností hlavičky HTML.
  • význam- Hodnota, ktorá sa má nastaviť, aby sa zapamätala v hlavičke.

Poznámky:

Aby metóda fungovala správne, názov_premennej nesmie obsahovať znak podčiarknutia (_). Sada ServerVariables interpretuje podčiarknutie ako pomlčku v hlavičke. Napríklad nasledujúci skript prinúti server nájsť parameter z hlavičky HTML s názvom MY-HEADER.

<% Requset.ServerVariables("HTTP_MY_HEADER") %>

Keďže protokol HTTP vyžaduje, aby všetky parametre hlavičky boli odovzdané pred začiatkom tela HTML stránky, musíte vo svojom skripte zavolať metódu AddHeader pred začiatkom popisu. .... Je tu jedna výnimka. Ak je hodnota vlastnosti Buffer nastavená na true (true), potom môžete AddHeader napísať v ľubovoľnom bode skriptu, ale pred prvým volaním metódy Flush. V opačnom prípade vyvolá volanie metódy AddHeader chybu.

Nasledujúce dva súbory .asp demonštrujú posledný bod.

<% Response.AddHeader "Внимание!", "Текст сообщения об ошибке"%> váš text na stránke

V tomto príklade sa stránka neukladá do vyrovnávacej pamäte. Skript funguje, ale AddHeader sa volá skôr, ako server vytvorí HTML výstup pre klienta.

<% Response.Buffer = true %> tu sú informácie o vašej stránke...<%Response.AddHeader "Внимание!", "сообщение об ошибке"%> <%Response.Flush%> <%Response.Write("некий текст")%>

V druhom príklade je stránka uložená do vyrovnávacej pamäte a v dôsledku toho server neodošle text klientovi, kým sa neskončí samotný skript alebo kým nenarazí na metódu Flush. Túto metódu môžete použiť na odoslanie viacerých kópií niektorého parametra hlavičky s rôznymi hodnotami, ako pri hlavičke WWW-Authenticate.

Metóda Response.AppendToLog

Metóda AppendToLog pripojí riadok na koniec súboru denníka webového servera. Túto metódu môžete volať toľkokrát, koľkokrát potrebujete. Pri každom volaní metódy sa zadaný reťazec zapíše do súboru správy servera.

Hodnota Response.AppendToLog

Možnosti:

  • význam- Text, ktorý sa má pridať do súboru správy webového servera. Tento reťazec nemôže obsahovať znak čiarky (,). Celková dĺžka pridaného riadku by navyše nemala presiahnuť 80 znakov.

Poznámky:

Ak chcete použiť túto funkciu, musíte mať povolenú možnosť Dopyt na URI na paneli „Rozšírené vlastnosti protokolovania“ pre tento webový server v IIS.

Metóda Response.BinaryWrite

Metóda BinaryWrite vám umožňuje zapísať špecifikované informácie do aktuálneho výstupu HTTP bez akejkoľvek konverzie znakov. Táto metóda je užitočná na zobrazenie nereťazcových informácií, ako sú binárne údaje požadované aplikáciou.

Dáta Response.BinaryWrite

Možnosti:

  • údajov- Údaje určené pre výstup HTTP.

Ak máte objekt, ktorý vytvára bajtové pole, môžete použiť nasledujúce volanie tejto metódy na odovzdanie tohto poľa nejakej aplikácii spustenej na klientskom počítači.

<% Set BinGen = Server.CreateObject(My.BinaryGenerator) Pict = BinGen.MakePicture Response.BinaryWrite Pict %>

Response.Clear Method

Metóda Clear vymaže všetok výstup HTML vo vyrovnávacej pamäti. Táto metóda však nevymaže informácie hlavičky z vyrovnávacej pamäte. Túto metódu môžete použiť na správu chýb. Táto metóda však povedie k chybe, ak vlastnosť Response.Buffer nie je pravdivá.

Vlastnosť Response.CacheControl

Táto vlastnosť prepíše predvolenú hodnotu. Keď nastavíte vlastnosť na Public, proxy server môže uložiť výstup generovaný ASP do vyrovnávacej pamäte.

Response.CacheControl [= hlavička riadenia vyrovnávacej pamäte]

Možnosti:

  • Hlavička ovládania vyrovnávacej pamäte- Táto možnosť ovládania titulu môže byť buď verejná alebo súkromná.

Vlastnosť Response.CharSet

Vlastnosť CharSet vám umožňuje pridať názov tabuľky kódov znakov (napríklad WINDOWS-1251) do hlavičky HTML, reťazec typu obsahu (typ obsahu).

Response.CharSet codetable_name

Možnosti:

  • codetable_name- Reťazec, ktorý špecifikuje tabuľku kódov pre danú HTML stránku. Názov tejto kódovej tabuľky sa pridá do hlavičky súboru HTML pod parametrom „typ obsahu“.

Pre stránku ASP, ktorá nepoužíva vlastnosť Response.Charset, parameter "content-type" v hlavičke bude:

content-type:text/html

Ak súbor ASP obsahuje príkaz

<%Response.Charset("Windows-1251")%>

potom v hlavičke bude pole typu obsahu vyzerať takto

content-type:text/html; charset=Windows-1251

komentár:

Táto funkcia vloží do hlavičky ľubovoľný reťazec a nekontroluje, či je správny.

Ak stránka obsahuje niekoľko značiek Response.Charset, potom každá nasledujúca značka nahradí hodnotu svojou vlastnou.

Vlastnosť Response.ContentType

Vlastnosť ContentType vám umožňuje určiť typ (typ) obsahu súboru HTML. Ak sa táto vlastnosť nepoužíva, predvolená hodnota je text/html.

Response.ContentType [=typ_obsahu]

Možnosti:

  • Typ obsahu- Reťazec popisujúci typ obsahu HTML. Tento reťazec má zvyčajne tvar "typ/podtyp", kde typ je hlavná kategória obsahu a podtyp určuje typ obsahu. Na získanie úplný zoznam podporované typy – pozrite si dokumentáciu vášho prehliadača alebo špecifikáciu HHTP.

Nasledujúci príklad ilustruje nastavenie typu obsahu na Channel Definition Format (Push Channels).

<% Response.ContentType = "application/x-cdf" %>

Druhý príklad demonštruje nastavenie vlastnosti na najbežnejšie známe hodnoty.

<% Response.ContentType = "text/HTML" %> <% Response.ContentType = "image/GIF" %> <% Response.ContentType = "image/JPEG" %>

Response.Expires property

Vlastnosť Expires určuje čas do HTML stránku uložený prehliadačom sa považuje za neskončenú (doba uchovávania). Ak používateľ požaduje stránku uloženú vo vyrovnávacej pamäti z prehliadača, ktorej platnosť ešte nevypršala, prehliadač ju vráti priamo zo svojej vyrovnávacej pamäte.

Response.Expires [=číslo]

Možnosti:

  • číslo- Množstvo času v minútach, kým sa stránka považuje za „oneskorenú“. Nastavenie tejto hodnoty na 0 spôsobuje táto strana sa okamžite stane „po splatnosti“.

komentár:

Ak je táto vlastnosť nastavená na stránke viac ako raz, použije sa najmenšia hodnota.

Vlastnosť Response.ExpiresAbsolute

Vlastnosť ExpiresAbsolute určuje čas a dátum, po ktorom sa stránka HTML uložená v prehliadači považuje za skončenú. Ak používateľ požaduje stránku uloženú vo vyrovnávacej pamäti z prehliadača, ktorej platnosť ešte nevypršala, prehliadač ju vráti priamo zo svojej vyrovnávacej pamäte. Ak je zadaný čas (a je zadaný dátum), „doba uchovávania“ stránky uplynie o polnoci daného dňa. Ak nie je zadaný čas ani dátum, hodnota sa priradí podľa dňa a času spustenia skriptu.

Response.ExpiresAbsolute [= [dátum] [čas]]

Možnosti:

  • dátum- Označuje dátum vypršania „doby uchovávania“. Formát dátumu musí zodpovedať štandardu RFC-1123.
  • čas- Označuje čas, kedy na stránke uplynie „doba uchovávania“. Táto hodnota sa pred odoslaním hlavičky klientovi skonvertuje do formátu GMT (Greenwich Mean Time).

komentár:

Ak je táto vlastnosť definovaná viac ako raz na stránku, potom sa predpokladá, že čas vypršania „doby uchovávania“ bude najskorší zo všetkých špecifikovaných hodnôt.

<% Response.ExpiresAbsolute = #May 31,1998 13:30:15# %>

Vlastnosť Response.IsClientConnected

Táto vlastnosť je len na čítanie, čo znamená, že tejto vlastnosti nemožno priradiť žiadne hodnoty. Táto vlastnosť označuje, či je klient pripojený alebo ešte nie je pripojený k serveru, ako je definované v poslednej časti Response.Write.

Response.IsClientConnected()

komentár:

Táto vlastnosť vám umožňuje určiť, kedy je používateľ pripojený a kedy je odpojený od servera. Napríklad doba medzi odpoveďou servera a požiadavkou klienta dáva istotu, že klient je stále pripojený a že má zmysel pokračovať vo vykonávaní skriptu.

<% "посмотрим, подключен ли пользователь If Not Response.IsClientConnected Then "получаем номер сессии и закрываем сессию Shutdownid = Session.SessionID "подготовка к закрытию сессии Shutdown(Shutdownid) End If %>

Vlastnosť Response.Pics

Táto vlastnosť vám umožňuje pridať hodnotu poľa pics-label do hlavičky odpovede.

Response.PICS(PICSLabel)

možnosti

  • Štítok s obrázkami- Reťazec, ktorý bol skonvertovaný do formátu PICS - štítok. Hodnota špecifikovaná v tomto parametri sa pridá do hlavičky odpovede v poli PICS.

Pre súbor ASP vrátane:

<% Response.PICS("(PICS-1.1 štítky na " & chr(34) & "1997.01.05T08:15-0500" až "1999.12.31T23:59-0000" hodnotenia (v 0 s 010 n 0))%>

Vygeneruje sa ďalšia hlavička

Označenie PICS: (PICS-1.1 štítky na "1997.01.05T08:15-0500" do "1999.12.31.T23:59-0000" hodnotenie (v 0 s 0 1 0 n 0))

komentár:

Táto vlastnosť umožňuje vložiť do hlavičky ľubovoľné riadky bez ohľadu na to, či sú riadky platné.

Ak stránka obsahuje veľa značiek obsahujúcich Response.PICS, potom každá ďalšia nahradí hodnotu predchádzajúcej.

Vlastnosť Response.Status

Táto vlastnosť vám umožňuje zadať stavový reťazec vrátený serverom. Hodnoty stavu sú definované v špecifikácii HTTP.

Response.Status = popis stavu

možnosti

  • state_description- Reťazec, ktorý obsahuje trojmiestne číslo označujúce stavový kód a tiež stručný popis tohto kódu. Napríklad 310 Presunúť natrvalo.

Nasledujúci príklad ukazuje nastavenie stavu:

<% Response.Status = "401 Unauthorized" %>

komentár:

Túto vlastnosť použite na úpravu reťazca vráteného serverom.

Ak chcete získať inštanciu tejto triedy, použite volanie metódy wa()->getResponse(), napríklad:

Wa()->getResponse()->getHeader("Typ obsahu")

Metódy

verejná funkcia pridať CSS ($url, $app_id = false)

Pridá adresu URL do zoznamu súborov CSS. Všetky pridané adresy URL súborov CSS je možné získať v šablóne Smarty pomocou metódy ($wa->css()).

možnosti

  • $url

    Relatívna adresa URL súboru CSS. Ak je zadaná hodnota parametra $app_id, potom adresa URL súboru musí byť uvedená relatívne k adrese URL adresára so súbormi príslušnej aplikácie. V opačnom prípade by relatívna adresa URL mala byť relatívna k inštalačnému adresáru rámca.

  • $app_id

    ID aplikácie.

Príklad

wa()->getResponse()->addCss("css/myapp.css", "moja aplikácia");

verejná funkcia pridať Google Analytics ($str)

Pridá útržok kódu JavaScript pre službu Google Analytics. Kód Google Analytics (vrátane kódu pridaného touto metódou) je zahrnutý do šablóny HTML stránky pomocou metódy ($wa->headJs()).

možnosti

  • $str

    Fragment kódu JavaScript.

verejná funkcia addHeader ($name, $value, $replace = true)

Pridá hlavičku, ktorá bude odoslaná serverom ako odpoveď na požiadavku používateľa. Všetky takto pridané hlavičky budú odoslané užívateľovi pri spustení .

možnosti

  • $name

    Názov titulu.

  • $value

    Hodnota titulu.

  • $nahradiť

    Príznak označujúci, že predtým nastavená hodnota pre zadanú hlavičku by sa mala nahradiť.

Príklad

wa()->getResponse()->addHeader("Typ obsahu", "application/json");

verejná funkcia addJs ($url, $app_id = false)

Pridá adresu URL do zoznamu súborov JavaScript. Všetky pridané adresy URL JavaScriptu je možné získať v šablóne Smarty pomocou metódy ($wa->js()).

možnosti

  • $url

    Adresa URL súboru JavaScript. Ak je zadaná hodnota parametra $app_id, potom adresa URL súboru musí byť uvedená relatívne k adrese URL adresára so súbormi príslušnej aplikácie. V opačnom prípade by relatívna adresa URL mala byť relatívna k inštalačnému adresáru rámca.

  • $app_id

    ID aplikácie.

Príklad

wa()->getResponse()->addJs("js/myapp.js", "myapp");

verejná funkcia getCss ($html = true, $strict = nepravda)

Vráti zoznam predtým pridaných odkazov na súbory CSS.

možnosti

  • $html

    Príznak označujúci potrebu vrátiť kód HTML na pripojenie súborov CSS. Ak je zadaná hodnota false, metóda vráti pole adries URL takýchto súborov.

  • $prísne

    Príznak, ktorý označuje, že formát XHTML sa použije namiesto HTML, keď je $html nastavené na true .

Príklad

wa()->getResponse()->getCss();

verejná funkcia getHeader ($name = null)

Vráti hodnotu hlavičky odpovede.

možnosti

  • $name

    ID hlavičky, ktorej hodnota sa má vrátiť. Ak nie je zadaný, metóda vráti celé aktuálne pole hlavičiek.

Príklad

wa()->getResponse()->addHeader("Typ obsahu", "application/json"); wa()->getResponse()->getHeader("Typ obsahu");

Výsledok

application/json

verejná funkcia getJs ($html = pravda)

Vráti zoznam odkazov na súbor odpovedí JavaScript.

možnosti

  • $html

    Voliteľný príznak označujúci potrebu vrátiť kód HTML na pripojenie súborov JavaScript. V opačnom prípade metóda vráti aktuálne pole adries URL súborov.

Príklad

wa()->getResponse()->getJs();

verejná funkcia getMeta ($name = null)

Vráti obsah META údajov: názov stránky ("názov"), kľúčové slová META tagov ("kľúčové slová"), popis ("popis").

možnosti

  • $name

    ID dátového prvku META, ktorého hodnota sa má vrátiť. Ak nie je zadaný, metóda vráti celé aktuálne pole META údajov.

Príklad

wa()->getResponse()->getMeta("kľúčové slová");

verejná funkcia getStatus()

Vráti predtým nastavený stav odpovede servera.

Príklad

wa()->getResponse()->setStatus(200); wa()->getResponse()->getStatus();

Výsledok

200

verejná funkcia getTitle()

Vráti názov (TITLE) stránky.

Príklad

wa()->getResponse()->setTitle("Môj online obchod"); wa()->getResponse()->getTitle();

Výsledok

Môj internetový obchod

verejná funkcia presmerovať ($url, $code = null)

Presmeruje používateľa na zadanú adresu URL.

možnosti

  • $url

    Adresa URL, na ktorú má byť používateľ presmerovaný.

  • $code

    Kód odpovede servera, ktorý by mal sprevádzať presmerovanie.

Príklad

wa()->getResponse()->redirect("http://otherdomain.ru/", 301);

verejná funkcia sendHeaders()

Odošle predtým nastavené hlavičky.

Príklad

wa()->getResponse()->addHeader("Typ obsahu", "application/json"); wa()->getResponse()->sendHeaders();

verejná funkcia setCookie ($name, $value, $expire = null, $path = null, $domain = "", $secure = false, $http_only = false)

Nastaví hodnotu položky cookie pomocou funkcie PHP setcookie.

možnosti

  • $name

    ID záznamu.

  • $value

    Hodnota položky.

  • $expire

    Čas expirácie.

  • $cesta

    Cesta k "podadresáru" URI, v ktorom je platná hodnota položky.

  • $domain

    Názov domény, pre ktorý je platná hodnota položky.

  • $secure

    Príznak označujúci, že zápis je dostupný iba vtedy, ak je hodnota prenášaná prostredníctvom protokolu HTTPS.

  • $http_only

    Príznak, ktorý indikuje, že hodnota záznamu je dostupná len cez HTTP protokol a nie je prístupná pomocou klientskych skriptov (JavaScript).

Príklad

wa()->getResponse()->setCookie("code", $code, time() + 30 * 86400, null, "", false, true);

verejná funkcia setMeta ($name, $value = null)

Nastavuje hodnotu údajov META. Táto hodnota je dostupná v šablónach Smarty pomocou metódy ($wa->meta()).

možnosti

  • $name

    Identifikátor dátového prvku META: názov stránky ("názov"), kľúčové slová značky META ("kľúčové slová") a popis ("popis").

  • $value

    Hodnota prvku.

Príklad

wa()->getResponse()->setMeta("kľúčové slová", $kľúčové slová);

verejná funkcia setStatus ($code)

Nastavuje stav odpovede servera.

možnosti

  • $code

    Stavový kód

Príklad

wa()->getResponse()->setStatus(404);

verejná funkcia setTitle ($title)

Nastaví názov (TITLE) stránky. Obsah nadpisu je dostupný v šablónach Smarty pomocou metódy ($wa->title()).

Po prijatí a interpretácii správy s požiadavkou server odpovie správou HTTP odpovede:

  • Stavový riadok
  • Nula alebo viac polí hlavičky (General|Response|Entity), za ktorými nasleduje CRLF
  • Prázdny riadok (t. j. riadok, ktorý pred CRLF nemá nič) označujúci koniec polí hlavičky
  • Voliteľne telo správy
  • Nasledujúce časti vysvetľujú každú z entít použitých v správe odpovede HTTP.

    Stavový riadok správy

    Stavový riadok pozostáva z verzie protokolu, za ktorou nasleduje číselný stavový kód a súvisiaca textová fráza. Prvky sú oddelené medzerami SP.

Stavový riadok = HTTP verzia SP Stavový kód SP Reason-Fhrase CRLF

Verzia HTTP

Server podporujúci HTTP verziu 1.1 vráti nasledujúce informácie o verzii:

Verzia HTTP=HTTP/1.1

stavový kód

Prvok Status-Code je 3-miestne celé číslo, kde prvá číslica Status-Code definuje triedu odpovede a posledné dve číslice nemajú žiadnu kategorizačnú úlohu. Pre prvú číslicu je 5 hodnôt:

S.N. Kód a popis
1 1xx: Informatívne

Znamená to, že žiadosť bola prijatá a proces pokračuje.

2 2xx: Úspech

Znamená to, že akcia bola úspešne prijatá, pochopená a prijatá.

3 3xx: Presmerovanie

Znamená to, že na dokončenie žiadosti je potrebné vykonať ďalšie kroky.

4 4xx: Chyba klienta

Znamená to, že požiadavka obsahuje nesprávnu syntax alebo ju nemožno splniť.

5 5xx: Chyba servera

Znamená to, že server nesplnil zjavne platnú požiadavku.

Stavové kódy HTTP sú rozšíriteľné a od aplikácií HTTP sa nevyžaduje, aby rozumeli významu všetkých zaregistrovaných stavových kódov. Zoznam všetkých stavových kódov je uvedený v samostatnej kapitole pre vašu referenciu.

Polia hlavičky odpovede

General-header a Entity-header budeme študovať v samostatnej kapitole, keď sa naučíme polia HTTP hlavičky. Teraz sa pozrime, čo sú polia hlavičky odpovede.

Polia hlavičky odpovede umožňujú serveru odovzdať dodatočné informácie o odpovedi, ktoré nemožno umiestniť do stavového riadka. Tieto polia hlavičky poskytujú informácie o serveri a o ďalšom prístupe k zdroju identifikovanému pomocou URI požiadavky.

  • Autentifikácia proxy

  • WWW-Autentifikácia

Môžete zaviesť svoje vlastné polia v prípade, že sa chystáte napísať vlastného webového klienta a servera.

Príklady správy s odpoveďou

Teraz to spojme, aby sme vytvorili odpoveď HTTP na požiadavku na načítanie ahoj.htm stránku z webového servera spusteného na lokalite

HTTP/1.1 200 OK Dátum: Po, 27. júl 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Posledná úprava: Streda, 22. júl 2009 19:15:56 GMT Obsah-Dĺžka: 88 Obsah- Typ: text/html Pripojenie: Uzavreté

Ahoj svet!



Nasledujúci príklad zobrazuje správu s odpoveďou HTTP, ktorá zobrazuje chybový stav, keď webový server nemôže nájsť požadovanú stránku:

HTTP/1.1 404 Not Found Date: Ne, 18. október 2012 10:36:20 GMT Server: Apache/2.2.14 (Win32) Content-Length: 230 Connection: Closed Content-Type: text/html; charset=iso-8859-1 404 nenájdené

nenájdené

Požadovaná adresa URL /t.html sa na tomto serveri nenašla.



Nasleduje príklad správy s odpoveďou HTTP, ktorá zobrazuje chybový stav, keď webový server narazí na nesprávnu verziu HTTP v danej požiadavke HTTP:

HTTP/1.1 400 Bad Request Date: Ne, 18. október 2012 10:36:20 GMT Server: Apache/2.2.14 (Win32) Content-Length: 230 Content-Type: text/html; charset=iso-8859-1 400 Zlá požiadavka

Zlá požiadavka

Váš prehliadač odoslal požiadavku, ktorej tento server nerozumel.

Riadok požiadavky obsahoval neplatné znaky za reťazcom protokolu.





Načítava...
Hore