/** * @return Bundle\ServerBundle\RequestInterface */ public function readRequest() { if (null !== $this->request) { return $this->request; } $this->lastAction = time(); $message = $this->read(); $message = trim($message); if (empty($message)) { $this->disconnect(); return false; } try { // parse HTTP message $request = new Request($message); } catch (\InvalidArgumentException $e) { // @TODO add 400 (Bad Request) response $this->disconnect(); return false; } // Connection: Keep-Alive check $httpVersion = $request->getHttpVersion(); $connection = strtolower($request->getHeader('Connection')); if (Request::HTTP_11 == $httpVersion && 'close' != $connection || Request::HTTP_10 == $httpVersion && 'keep-alive' == $connection) { $this->keepAlive = true; } return $this->request = $request; }
/** * @param string $httpVersion * * @throws \InvalidArgumentException If the HTTP version is not valid */ public function setHttpVersion($httpVersion) { if (!in_array($httpVersion, Request::getHttpVersions())) { throw new \InvalidArgumentException(sprintf('HTTP "%s" version is not valid', $httpVersion)); } $this->httpVersion = $httpVersion; }