Obsah
Nette\Web\HttpResponse
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\IHttpResponse:
| Název konstanty | Hodnota |
|---|---|
| S200_OK | 200 |
| S204_NO_CONTENT | 204 |
| S300_MULTIPLE_CHOICES | 300 |
| S301_MOVED_PERMANENTLY | 301 |
| S302_FOUND | 302 |
| S303_SEE_OTHER | 303 |
| S303_POST_GET | 303 |
| S304_NOT_MODIFIED | 304 |
| S307_TEMPORARY_REDIRECT | 307 |
| S400_BAD_REQUEST | 400 |
| S401_UNAUTHORIZED | 401 |
| S403_FORBIDDEN | 403 |
| S404_NOT_FOUND | 404 |
| S410_GONE | 410 |
| S500_INTERNAL_SERVER_ERROR | 500 |
| S501_NOT_IMPLEMENTED | 501 |
| S503_SERVICE_UNAVAILABLE | 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é:



