EN | CS | Přihlásit | Registrovat

Nette\Web\HttpR­esponse

Třída zapouzdřuje a sjednocuje funkce pro obsluhu HTTP odpovědi serveru. Umožňuje změnit stavový kód odpovědi, určit typ obsahu a jeho kódování, měnit HTTP hlavičky a spravovat cookies.

$httpResponse = /*Nette\*/Environment::getHttpResponse();

// při použití bez třídy Environment
// $httpResponse = new /*Nette\Web\*/HttpResponse;

$httpResponse->setContentType('text/plain', 'UTF-8');

Manipulace s hlavičkami

Většinu metod v této třídě je nutné volat před odesláním jakéhokoliv výstupu.

Změna kódu odpovědi

Kód odpovědi mění metoda setCode.

// Změnit kód na 404 Not Found
$httpResponse->setCode(/*Nette\Web\*/IHttpResponse::S404_NOT_FOUND);

Kódy jsou před připraveny jako konstanty v rozhraní Nette\Web\IHttpRes­ponse:

Název konstanty Hodnota
S200_OK 200
S204_NO_CONTENT 204
S300_MULTIPLE_CHO­ICES 300
S301_MOVED_PER­MANENTLY 301
S302_FOUND 302
S303_SEE_OTHER 303
S303_POST_GET 303
S304_NOT_MODIFIED 304
S307_TEMPORARY_RE­DIRECT 307
S400_BAD_REQUEST 400
S401_UNAUTHORIZED 401
S403_FORBIDDEN 403
S404_NOT_FOUND 404
S410_GONE 410
S500_INTERNAL_SER­VER_ERROR 500
S501_NOT_IMPLE­MENTED 501
S503_SERVICE_U­NAVAILABLE 503

Změna typu obsahu

Metoda setContentType mění hlavičku Content-type:

$httpResponse->setContentType('text/plain', 'UTF-8');

Nastavení expirace dokumentu

Pro nastavení vypršení platnosti dokumentu použijete metodu expire. Jejím parametrem je buď počet vteřin, po kterých dokument expiruje, nebo timestamp, tedy čas vypršení cache.

// Cache na straně prohlížeče vyprší za hodinu
$httpResponse->expire(3600);

Nastavení ostatních HTTP hlaviček

Pro nastavení ostatních hlaviček je tu metoda addHeader.

$httpResponse->addHeader('Pragma', 'no-cache');

Chcete-li přepsat již nastavenou hlavičku, použijte metodu setHeader.

$httpResponse->setHeader('Pragma', 'no-cache');

Další metody

Pokud potřebujete zjistit zda je ještě možné odeslat další hlavičku (např. byl již odeslán nějaký výstup), můžete použít metodu isSent, ta vrací TRUE pokud byly hlavičky odeslány a nelze tedy už odeslat další.

Seznam hlaviček připravených k odeslání (nebo již odeslaných) získáte metodou getHeaders.

Cookies

Pro manipulaci s cookies slouží metody setCookie a deleteCookie.

// Nastaví cookie author na hodnotu xgd
$httpResponse->setCookie('author', 'xgd', time() + 24 * 60 * 60);

// Odstranění cookie
$httpResponse->deleteCookie('author');

Tyto dvě metody přijimájí ještě další parametry: $path (podadresář kde bude cookie dostupná), $domain a $secure.

Komprese

Chcete-li ušetřit objem přenesených dat mezi klientem a serverem, můžete zapnout gzip kompresi.

$httpResponse->enableCompression();

Viz také:


Login to submit a comment