yii2的请求(request)、响应与跳转(response)、缓存(session)常用操作

一、yii2 request操作
Yii::$app->request->get();//等价于:$_GET;
Yii::$app->request->post();//等价于:$_POST;
Yii::$app->request->get(‘id‘); //等价于:isset($_GET[‘id‘]) ? $_GET[‘id‘] : null;
Yii::$app->request->get(‘id’,1); //等价于:isset($_GET[‘id‘]) ? $_GET[‘id‘] : 1;
// 取得请求中的所有参数
Yii::$app->request->bodyParams;
//// 取得请求中的参数 "id"
Yii::$app->request->getBodyParam(‘id‘); 
//判断是否一个 AJAX 请求
Yii::$app->request->isAjax
//判断是否一个 GET 请求
Yii::$app->request->isGet
//判断是否一个 POST 请求
Yii::$app->request->isPost
//判断是否一个 PUT 请求
Yii::$app->request->isPut

// 返回 Accept header 值,其中Yii::$app->request->headers是一个 yii\web\HeaderCollection 对象
$accept = Yii::$app->request->headers->get(‘Accept‘);
// 判断是否头部是否有User-Agent 头
Yii::$app->request->has(‘User-Agent’);

获取客户端的host name
Yii::$app->request->userHost;
获取客户端的IP地址
Yii::$app->request->userIP;

二、yii2 response操作
////==响应头部:Yii::$app->response->headers;
// 增加一个 Pragma 头,已存在的Pragma 头不会被覆盖。
Yii::$app->response->headers->add(‘Pragma‘, ‘no-cache‘);

// 设置一个Pragma 头. 任何已存在的Pragma 头都会被丢弃
Yii::$app->response->headers->set(‘Pragma‘, ‘no-cache‘);

// 删除Pragma 头并返回删除的Pragma 头的值到数组
Yii::$app->response->headers->remove(‘Pragma‘);

////==响应主体:Yii::$app->response->content;
//设置相应主体的内容
Yii::$app->response->content = ‘hello world!‘;

//在发送响应给终端用户之前需要格式化
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
Yii::$app->response->data = [‘message‘ => ‘hello world‘];

因为响应格式默认为HTML, 只需要在操作方法中返回一个字符串, 
如果想使用其他响应格式,应在返回数据前先设置格式, 例如返回json串:
public function actionInfo()
{
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    return [
        ‘message‘ => ‘hello world‘,
        ‘code‘ => 100,
    ];
}

//浏览器跳转
return $this->redirect(‘http://example.com/new‘, 301);
//可直接调用redirect()再调用send()方法来确保没有其他内容追加到响应中。
return \Yii::$app->response->redirect(‘http://example.com/new‘, 301)->send();
//发送文件提供在浏览器上下载
return \Yii::$app->response->sendFile(‘path/to/file.txt‘);
//发送文件提供在浏览器上下载,并用send()方法确保没有其他内容追加到响应中。
return \Yii::$app->response->sendFile(‘path/to/file.txt‘)->send();

三、yii2 session操作
// 检查session是否开启 
Yii::$app->session->isActive;

// 开启session
Yii::$app->session->open();

// 关闭session
Yii::$app->session->close();

// 销毁session中所有已注册的数据
Yii::$app->session->destroy();

// 检查session变量是否已存在,以下用法是相同的:
if (Yii::$app->session->has(‘language‘)) ...
if (isset(Yii::$app->session[‘language‘])) ...
if (isset($_SESSION[‘language‘])) ...

// 获取session中的变量值,以下用法是相同的:
$language = Yii::$app->session->get(‘language‘);
$language =Yii::$app->session[‘language’];//??待验证
$language = isset($_SESSION[‘language‘]) ? $_SESSION[‘language‘] : null;

// 设置一个session变量,以下用法是相同的:
Yii::$app->session->set(‘language‘, ‘en-US‘);
Yii::$app->session[‘language‘] = ‘en-US‘;
$_SESSION[‘language‘] = ‘en-US‘;

// 删除一个session变量,以下用法是相同的:
Yii::$app->session->remove(‘language‘);
unset($Yii::$app->session[‘language‘]);
unset($_SESSION[‘language‘]);

// 遍历所有session变量,以下用法是相同的:
foreach (Yii::$app->session as $name => $value) ...
foreach ($_SESSION as $name => $value) ...

---------------------
作者:筑梦悠然
来源:CSDN
原文:https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/79997786
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/shantianle/p/10099070.html

时间: 2024-10-08 20:06:32

yii2的请求(request)、响应与跳转(response)、缓存(session)常用操作的相关文章

JSP中页面跳转response.sendRedirect()和request.getRequestDispatcher()的区别

Java Web开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户响应,用常有2种方式 1,通过response对象的sendRedirect方法重定向: response.sendRedirect("login.jsp"); 2,通过RequestDispatcher对象的forward方法: <!--请求转发--> RequestDispatcher rd = request.getRequestDispatcher("login.jsp

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用.为了能更好的理解这些对象,在此对JSP内置对象作一些归纳. 目录: JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式 JSP内置对象——out(待更新) JSP内置对象——request/response(待更新) JSP内置对象——session(待更新) JSP内置对象——application(待更新) JSP内置对象——其他

一次请求到响应的整个流程

一次请求到响应的整个流程 As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/usr/bin/env python #coding:utf-8     import socket     def handle_request(client):     buf = client.recv(1024)

1.2. (复习)HTTP/HTTPS的请求与响应

HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全. HTTP的端口号

HTTPS的请求与响应

HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全. HTTP的端口号

Python爬虫入门之二HTTP/HTTPS请求与响应

HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全. HTTP的端口号

Servlet(简介,请求参数,页面跳转,生命周期,创建,配置,ServletContext,线程)

1.Servlet简介 servlet是java servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序, 主要功能在于交互式浏览和修改数据,生成动态的web内容 服务端运行的小程序:MVC(Model view Controller) servlet运行于支持Java的应用服务器中.从现实上讲,Servlet可以响应任何类型的请求,但 绝大多数情况下servlet只用来扩展基于http协议的web服务器 servlet:可以接受客户端的任何请求 servlet编程需要使

爬虫-2.HTTP请求与响应

HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全. HTTP的端口号

http请求和响应的内容

一.HTTP请求的四个部分: 1.HTTP请求的方法或者动作,GET或者POST等 Request Method: POST 2.请求地址URL(你连URL地址都没有你请求什么) Request URL:https://contract-web.uat.yixincapital.com/contract2.0-web/yxContract/getContractSignDeptInfo.do 3.请求头,包含客户端环境信息,身份验证信息 客户端浏览器请求Header(HTTP request h