RESTful API:需要用户代理字符串吗?

2024-02-16

我的团队有一个带有 RESTful API 的网站。我们正在对其进行负载测试,因此我们构建了一个小型控制台应用程序来处理请求。此控制台应用程序不会设置用户代理字符串,这会导致我们的 API 出现错误,因为它是我们数据库中的必填字段。

那么,如果请求中未包含用户代理,我是否应该使 API 更加强大并简单地使用默认字符串(即“未知”)?或者,在这种情况下我应该返回 400 Bad Request 响应吗?我知道两者皆有可能,但我正在寻找standard方法来做到这一点。


自从User-Agent标头并不绝对需要出现在 HTTP 请求中(规格说 https://www.rfc-editor.org/rfc/rfc2616#section-14.43标题SHOULD在那里,而不是MUST),如果你的 API 能够处理它不存在的情况,它会更加健壮。

也就是说,您的测试应用程序通过测试可能会有好处User-Agent“测试应用程序”或其他东西的标识符,这样您就可以在数据库中跟踪它,或者限制或分析您的测试流量。

我会警告你不要使用User-Agent但作为客户端应用程序的明确标识符,因为它很容易被欺骗。听起来你并没有这样做,但我想我应该提一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RESTful API:需要用户代理字符串吗? 的相关文章

随机推荐

  • Java 和 C# 正则表达式兼容吗?

    这两种语言都声称使用 Perl 风格的正则表达式 如果我用一种语言测试正则表达式的有效性 它在另一种语言中是否有效 正则表达式语法有何不同 这里的用例是一个 C NET UI 与最终的 Java 后端实现对话 该实现将使用正则表达式来匹配数
  • symfony2 按属性对对象集合进行排序

    我有这个实体 class Categoria ORM Id ORM Column type integer ORM GeneratedValue protected id ORM Column type string length 100
  • 尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)”

    问题如下 我有一个登录活动 在 Android Studio 中 几天前运行良好 我不记得更改过任何内容 但是当我上次运行此应用程序时 应用程序在我单击登录按钮后立即关闭 最后一件事是关于 AsyncTask 预执行的祝酒 我不明白为什么会
  • 使用 google Oauth 2.0 进行身份验证与注册的重定向 URI 不匹配

    我正在尝试使用进行身份验证谷歌 OAuth 2 0 我在中注册了我的网址谷歌云控制台 在谷歌的规格中OAuth 2 0它说 redirect uri 确定响应发送到的位置 该参数的值必须与注册的值之一完全匹配谷歌云控制台 包括 http 或
  • 使用与主用户名不同的 RDS 代理用户连接被拒绝

    我正在尝试设置 RDS 代理来为我的应用程序提供 mysql 数据库服务 大多数应用程序运行时使用的用户名和密码等于 RDS 数据库上设置的主用户名 该用户名和密码具有所有权限 我尝试使用与主用户名不同的用户名和密码访问我的 RDS 实例
  • 如何消除这个错误? java.lang.reflect.InitationTargetException [重复]

    这个问题在这里已经有答案了 我添加了所有需要的权限 PackageManager packageManager context getPackageManager Class
  • @事务和继承

    我曾经添加过 Transactional所有 Spring 服务 类 的注释 然后我想 如果事务行为应该相同 我真的必须这样做吗 当然 如果不应该的话 我们会添加 Transational以及方法的其他参数 我试图找到一些关于继承的有用信息
  • 如何使用 Xunit 2.0 动态跳过测试?

    Xunit 1 9 x 为用户提供了DynamicSkipExample cs https github com xunit xunit blob v1 samples AssertExamples DynamicSkipExample c
  • 如何获取 SLURM 作业所用脚本的原始位置?

    我正在使用脚本启动 SLURM 作业 并且脚本必须根据其在脚本本身内部获取的位置来工作SCRIPT LOCATION realpath 0 但 SLURM 将脚本复制到slurmd文件夹并从那里开始工作 这会搞砸进一步的操作 在移动 复制之
  • 桌面上方的浮动图标

    我正在编写一个 C 应用程序 我希望它在桌面上有一个浮动图标 就像移动设备中的 Facebook Messenger 我一直在互联网上搜索但找不到任何有用的东西 有文章吗 有想法吗 您需要创建一个没有标题栏和边框的表单 并使用图像作为表单的
  • OpenCV中概率霍夫变换的具体实现是什么?

    有谁知道 OpenCV 实现中概率霍夫变换的特定算法吗 我的意思是 有关于该算法的参考论文或文档吗 为了得到这个想法 我当然可以查看源代码 但我想知道是否有任何关于它的文档 它不在源代码的注释中 OpenCV 1 0 谢谢你 Jin Ope
  • 是否需要验证或转义jsonp回调字符串

    我有一个名为 action php 的文件 它将执行一些操作 我想将其公开为纯 JSON 或 JSONP 输出 用户将使用如下 URL 来调用它 action php jsonp callback 在我的action php中我正在做这样的
  • 服务器端对云服务执行多个请求

    我正在编写一个使用多个 Web API 的 Web 应用程序 对于单个用户的单个请求 我的应用程序可能需要对其他站点执行最多 30 个 HTTP 请求 包含网络应用程序的网站可以拥有数百个并发用户 我一直在四处寻找 试图找出应该使用哪个库
  • Kubernetes,无法通过 DNS 挂载 NFS 共享

    我正在尝试通过 DNS 查找在我的容器中安装 NFS 共享 k8s 集群外部 我的配置如下 apiVersion v1 kind Pod metadata name service a spec containers name servic
  • 设计模式和架构模式有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当我们读到设计模式在互联网上 我们注意到有 3 类 创作型 结构性 行为的 但是当我们创建软件架构时 我们会考虑 MVP MVC 或
  • 覆盖 Spree Commerce 的 Bootstrap 变量

    我在部署自定义项目时遇到问题 variables scss作为编译资产添加到我的生产服务器 在我的开发环境中一切都很好 在生产中我的变量被覆盖 我正在使用 Rails 4 2 1 和 Spree 3 0 稳定分支 我有以下结构 文件创建于v
  • 如何仅在少数列中插入数据,而其他列为空或像它们在mysql表记录中一样?

    我创建了一个名为 学生 的表 它有以下字段 roll no lt type Integer Not Null course name lt type varchar 40 Not Null std surname lt type varch
  • 实体框架 5 命名空间

    我想首先将 Entity Framework 5 数据库添加到面向 net Framework 4 5 的 Visual Studio 2012 中的类库中 我对需要输入的所有标签感到困惑 将 ADO NET 实体数据模型添加到项目时的 E
  • 裁剪 CMSampleBuffer 并对其进行处理,而不转换为 CGImage

    我一直在关注苹果直播摄像机编辑器 https developer apple com documentation avfoundation cameras and media capture avcamfilter applying fil
  • RESTful API:需要用户代理字符串吗?

    我的团队有一个带有 RESTful API 的网站 我们正在对其进行负载测试 因此我们构建了一个小型控制台应用程序来处理请求 此控制台应用程序不会设置用户代理字符串 这会导致我们的 API 出现错误 因为它是我们数据库中的必填字段 那么 如