支持HTTP 100继续使用PHP

Jon*_*aun 14 php rest http-1.1 http-status-code-100

我正在开发一个PHP webapp,它接受来自特定客户端的大量POSTed文件上传,并希望在使用HTTP/1.1 100上传文件之前接受或拒绝这些上传(基于各种标题和其他因素,而不仅仅是大小)继续.

HTTP/1.1规范8.2.3的一些快速背景:

100(继续)状态(参见第10.1.1节)的目的是允许正在向请求主体发送请求消息的客户端确定源服务器是否愿意接受请求(基于请求头)在客户端发送请求主体之前.在某些情况下,如果服务器在不查看正文的情况下拒绝邮件,则客户端发送正文可能不合适或效率极低.

问题是Apache看到Expect:100-continue从客户端继续,返回100 Continue并接受文件上传所有在PHP开始处理之前...但是我需要PHP在Expect之后立即开始处理:100-continue.我不确定这是否可行所以我有两个问题:

  1. 是否可以在Expect:100-continue之后立即开始处理PHP?
  2. 如果没有,什么是好的选择?

我目前正在考虑通过指定客户端首先使用与POST相同的头发送HEAD请求来继续模拟100.然后,webapp可以返回响应以继续POST或错误代码.欢迎提出其他建议!

小智 -6

尝试在 HTTP 级别上执行此操作似乎太困难了。作为开发人员,重要的是不要沉迷于特定的解决方案。问题是您需要在处理上传之前进行一系列检查。您所需要做的就是在上传之前放置一个合格的页面。如果他们通过了一系列检查并获得资格,此资格页面只会向他们显示上传表格。这正是您想要做的,只有您可以在 PHP 代码中做到这一点。如果可能的话,HTTP 100 总是需要大量额外的配置,从而给以后的支持带来麻烦。如果您在代码中执行此操作,那么您后面的人(或几年后的您自己)将能够清楚地了解应用程序正在做什么。