php - Laravel 请求“hasHeader”不区分大小写吗?
问题描述
我正在编写一个中间件来根据是否存在标头来更改响应:
class MiddlewareName
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if($request->hasHeader('referrer')){
// Do stuff
}
return $next($request);
}
}
查看 Laravel 8.x 中方法的源代码hasHeader
,最终在 trait 中引出了这个方法InteractsWithInput
:
protected function retrieveItem($source, $key, $default)
{
if (is_null($key)) {
return $this->$source->all();
}
return $this->$source->get($key, $default);
}
我无法进一步了解源代码是否将标头转换为小写,或者它是否在沿线某处进行了规范化。
Laravel 是否将它们转换为小写?
考虑到 HTTP 标准对标头不区分大小写,$request->hasHeader('Content-Type')
如果客户端将标头发送为 ,类似的东西仍然有效content-type
吗?
解决方案
HTTP 标头不区分大小写,并且 Laravel hasHeader() 正在进行,这里没有任何严格的检查。
推荐阅读
- python - 物体检测:是照片中的物体,python
- react-native - 运行“npx react-native run-android”时出现问题。如何解决?
- c# - 如何在控制台应用程序中与 ConfigureAwait(true) 进行有效交互?
- python - 在 Python 中将字符串行转换为有效的 json 格式
- java - 如何更改查找共享库的位置?
- javascript - 在正则表达式中结合 2 个条件
- c# - C# winform 复选框仍然选中
- database - 与 MongoDB 的 BSON 更新相比,Postgres jsonb_set 的性能如何?
- javascript - 上下文/弹出菜单在黄金布局的拆分器上被剪切
- flutter - 下载 ZIP,解压缩并显示图像文件,但未从文档目录加载?