summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
Diffstat (limited to 'framework')
-rw-r--r--framework/Web/THttpRequest.php8
-rw-r--r--framework/Web/THttpResponse.php8
2 files changed, 15 insertions, 1 deletions
diff --git a/framework/Web/THttpRequest.php b/framework/Web/THttpRequest.php
index aec71262..23ab26ec 100644
--- a/framework/Web/THttpRequest.php
+++ b/framework/Web/THttpRequest.php
@@ -345,6 +345,14 @@ class THttpRequest extends TApplicationComponent implements IteratorAggregate,Ar
}
/**
+ * @return string the requested http procolol. Blank string if not defined.
+ */
+ public function getHttpProtocolVersion ()
+ {
+ return isset($_SERVER['SERVER_PROTOCOL'])?$_SERVER['SERVER_PROTOCOL']:'';
+ }
+
+ /**
* @return string part of that request URL after the host info (including pathinfo and query string)
*/
public function getRequestUri()
diff --git a/framework/Web/THttpResponse.php b/framework/Web/THttpResponse.php
index af751828..64c9eaba 100644
--- a/framework/Web/THttpResponse.php
+++ b/framework/Web/THttpResponse.php
@@ -257,8 +257,11 @@ class THttpResponse extends TModule implements ITextWriter
/**
* Set the HTTP status code for the response.
+ * The code and its reason will be sent to client using the currently requested http protocol version (see {@link THttpRequest::getHttpProtocolVersion})
+ * Keep in mind that HTTP/1.0 clients might not understand all status codes from HTTP/1.1
*
* @param integer HTTP status code
+ * @param string HTTP status reason, defaults to standard HTTP reasons
*/
public function setStatusCode($status, $reason=null)
{
@@ -432,7 +435,10 @@ class THttpResponse extends TModule implements ITextWriter
*/
protected function sendHttpHeader ()
{
- header("HTTP/1.1 {$this->_status} {$this->_reason}", true, $this->_status);
+ if (($version=$this->getRequest()->getHttpProtocolVersion())==='')
+ header (' ', true, $this->_status);
+ else
+ header($version.' '.$this->_status.' '.$this->_reason, true, $this->_status);
}
/**