Swoole从入门到入土(11)——HTTP服务器[Request]
http服务器的本质是应答式的服务器。我们只需关注onRequest事件中的request(请求)和response(响应)对象。让我们一起回顾一下onRequest事件:
$http->on("request", function ($request, $response) {
$response->header("Content-Type", "text/html");
$response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});
在这一节中,我们对请求对象展开讨论。
1、属性
Swoole\Http\Request->header: array:HTTP 请求的头部信息。类型为数组,所有 key 均为小写。
Swoole\Http\Request->server: array:HTTP 请求相关的服务器信息,相当于 PHP 的 $_SERVER 数组。包含了 HTTP 请求的方法,URL 路径,客户端 IP 等信息。

Swoole\Http\Request->get: array:HTTP 请求的 GET 参数,相当于 PHP 中的 $_GET。
注意:为防止 HASH 攻击,GET 参数最大不允许超过 128 个
Swoole\Http\Request->post: array:HTTP POST 参数,个数最大不超过 128 个。
注意:POST 与 Header 加起来的尺寸不得超过 package_max_length 的设置,否则会认为是恶意请求
Swoole\Http\Request->cookie: array:HTTP 请求携带的 COOKIE 信息,格式为键值对数组。
Swoole\Http\Request->files: array:上传文件信息。类型为以 form 名称为 key 的二维数组。与 PHP 的 $_FILES 相同。最大文件尺寸不得超过 package_max_length 设置的值。
注意:请勿使用 Swoole\Http\Server 处理大文件上传。
当 $request 对象销毁时,会自动删除上传的临时文……
Array
(
[name] => facepalm.jpg // 浏览器上传时传入的文件名称
[type] => image/jpeg // MIME类型
[tmp_name] => /tmp/swoole.upfile.n3FmFr // 上传的临时文件,文件名以/tmp/swoole.upfile开头
[size] => 15476 // 文件尺寸
[error] => 0
)
2、函数
Swoole\Http\Request->getContent(): string:获取原始的 POST 包体,用于非 application/x-www-form-urlencoded 格式的 HTTP POST 请求。返回原始 POST 数据,此函数等同于 PHP 的 fopen('php://input')
注意:Swoole 版本 >= v4.5.0 可用,在低版本可使用别名 rawContent (此别名将永久保留,即向下兼容)
有些情况下服务器不需要解析 HTTP POST 请求参数,通过 http_parse_post 配置,可以关闭 POST 数据解析。
Swoole\Http\Request->getData(): string:获取完整的原始 Http 请求报文。包括 Http Header 和 Http Body。
Swoole的http服务器非常精练,关于请求对象的属性与函数只有以上这些。下一节,我们将近入响应对象的讨论。
--------------------------- 我是可爱的分割线 ----------------------------
最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同学点击链接,联系我吧。
Swoole从入门到入土(11)——HTTP服务器[Request]的更多相关文章
- Oracle数据库基础入门《一》Oracle服务器的构成
Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...
- RocketMQ入门到入土(二)事务消息&顺序消息
接上一篇:RocketMQ入门到入土(一)新手也能看懂的原理和实战! 一.事务消息的由来 1.案例 引用官方的购物案例: 小明购买一个100元的东西,账户扣款100元的同时需要保证在下游的积分系统给小 ...
- Hexo结合Stun静态博客搭建从入门到入土
摘要 安装npm,安装hexo相关依赖,安装主题stun 修改hexo配置,修改stun配置,部署到github,gitee实现静态访问 给博客加上全局搜索,访问量统计 hexo博客编写模板 tips ...
- QT从入门到入土(三)——信号和槽机制
摘要 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号 (signal).这种发出是没有目的的,类似广播 ...
- Easyui入门视频教程 第11集---Window的使用
目录 Easyui入门视频教程 第11集---Window的使用 Easyui入门视频教程 第10集---Messager的使用 Easyui入门视频教程 第09集---登录完善 图标自定义 ...
- 基于 libevent 开发的 C++ 11 高性能网络服务器 evpp(360的作品)
evpp是一个基于libevent开发的现代化C++11高性能网络服务器,自带TCP/UDP/HTTP等协议的异步非阻塞式的服务器和客户端库. 特性: 现代版的C++11接口 非阻塞异步接口都是C++ ...
- QT从入门到入土(一)——Qt5.14.2安装教程和VS2019环境配置
引言 24岁的某天,承载着周围人的关心,一路南下.天晴心静,听着斑马,不免对未来有些彷徨.但是呢,人生总要走陌生的路,看陌生的风景,所幸可以听着不变的歌,关心自己的人就那么多.就像是对庸常生活的一次越 ...
- QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系
摘要 我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活.比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可 ...
- QT从入门到入土(四)——多线程(QtConcurrent::run())
引言 在前面对Qt多线程(QThread)做了详细的分析:QT从入门到入土(四)--多线程(QThread) - 唯有自己强大 - 博客园 (cnblogs.com) 但是最近在做项目时候,要将一个函 ...
- COM编程入门第二部分——深入COM服务器
本文为刚刚接触COM的程序员提供编程指南,解释COM服务器内幕以及如何用C++编写自己的接口.继上一篇COM编程入门之后,本文将讨论有关 COM服务器的内容,解释编写自己的COM接口和COM服务器所需 ...
随机推荐
- Shell-函数-function
- [转帖] 常见的Socket网络异常场景分析
https://www.cnblogs.com/codelogs/p/16001770.html 原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 在目前微服务的 ...
- 【转帖】TCP内核参数
https://www.cnblogs.com/chia/p/7799231.html tcp_syn_retries :INTEGER默认值是5对于一个新建连接,内核要发送多少个 SYN 连接请求才 ...
- K8S 使用loki 监控 应用日志的搭建办法
1. 背景 这几天一直在用k8s部署分SU的测试环境,开发反馈看日志比较麻烦. 昨天晚上在家里本来想搭建ELK 发现比较重, 又说有一个比较轻量级的 loki 可以实现使用grafana进行监控和查看 ...
- 日志框架简介-Slf4j+Logback入门实践 | 京东云技术团队
前言 随着互联网和大数据的迅猛发展,分布式日志系统和日志分析系统已广泛应用,几乎所有应用程序都使用各种日志框架记录程序运行信息.因此,作为工程师,了解主流的日志记录框架非常重要.虽然应用程序的运行结果 ...
- js中toFixed 并不是你想的那样进行四舍五入
toFixed 的简单介绍 toFixed() 方法可把 Number 类型的数字通过四舍五入为指定小数位的字符串.(将数字类型转化为字符串类型) 也就是说toFixed只能够处理数字类型的. 字符串 ...
- uni-app 顶部配置搜索框和左右图标
顶部的图标只支持本地图片哈,所以你要将阿里巴巴上的图标下载到本地, 然后只要XXX.ttf这个文件就行了 然后放在static这个文件中 在pages.json中fontSrc进行引入. text:使 ...
- 【JS 逆向百例】cnki 学术翻译 AES 加密分析
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途 ...
- [LeetCode刷题记录]113 路径总和 II
题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 难度 中等 题解 采用深度搜索优先,遍历每条从根节点到叶子节点的 ...
- 设计模式学习-使用go实现命令模式
命令模式 定义 优点 缺点 适用范围 代码实现 命令模式对比策略模式 参考 命令模式 定义 命令模式(Command):将一个请求封装成一个对象,从而是你可用不同的的请求对客户进行参数化:对请求排队或 ...