好吧,这是一个奇怪的事情。
我正在开发一个 php 脚本,它可以根据请求执行大量工作(图像处理)。因此,这并不罕见,它会在 10 秒内发出响应,有时长达 30 秒:这是一个很长的脚本,这对于下一部分很重要。
在记录图像处理代码时,我注意到只应调用一次的进程被调用了两次。
原因:Chrome 在 3 秒后取消第一个请求,然后再次请求相同的 URL。
顺序始终相同。
已取消的请求在“计时”选项卡中显示为“已停止”。
这仅发生在 Chrome 中(对我来说是 92.0.4515.107)。我在 Firefox 中没有看到这种行为。
现在如何才能重现这种巫术呢?很简单,我可以在 2 个不同提供商(GCE 和 OVH)的 2 个不同服务器上进行复制,并且它与对此 URL 的初始请求的持续时间有一个奇怪的链接。
在您的网络服务器上创建一个新的 php 脚本,仅包含
<?php sleep(10); echo 'Done'; ?>
在 Chrome 中调用您的脚本 URL
第一次调用就会成功
但接下来的所有调用肯定会触发“序列”
通过检查 Chrome 日志,我认为这与 HTTP2_SESSION 有链接
t=235805 [st= 5] +HTTP_TRANSACTION_SEND_REQUEST [dt=1]
t=235806 [st= 6] HTTP_TRANSACTION_HTTP2_SEND_REQUEST_HEADERS
--> :method: GET
:authority: my.server.com
:scheme: https
:path: …Run Code Online (Sandbox Code Playgroud) 我有一个 iPhone 应用程序使用的 PHP 中的 HTTP REST API。
此 API 中的某些 Web 服务通过 HTTP 请求凭据中的用户身份验证进行保护,但我希望通过提供完全加密的请求数据来避免“中间人”攻击。
我不是很擅长安全问题,我在任何地方都找不到我的问题的明确答案:
HTTPS 与 STATELESS REST API 相关吗?
据我了解,HTTPS 做了两件事:
因此,乍一看它并没有响应我的需要,即加密我的服务器和应用程序之间的数据,因为 API 不使用会话。但我还是有疑问。
有人可以向我说清楚吗?
我的另一个解决方案是使用公钥/私钥系统加密请求数据。会不会更合适?
谢谢 !