我在IIS和Enfold (IIS的反向代理筛选器)后面有一个站点,由Plone (一个CMS)通过WSGI堆栈提供服务。用户使用IE7。
不知何故,请求通过If-Modified-this头到达服务器,如下所示:
清华,2009.08.27 06:46:31格林尼治标准时间2009.08.27 06:46:31
如您所见,这里有两个日期(一个有时区,一个没有),用逗号分隔。
Plone中的代码能够处理由分号分隔的两个日期,但这种格式会导致它反常。
虽然我可以解决这个问题,但我想弄清楚If-Modified- could头是从哪里来的,以及如何用逗号分隔而不是分号分隔。有什么想法吗?
马丁
发布于 2009-09-06 15:36:14
此标头可能是通过连接两个单独的If-Modified-Since标头而创建的。一般来说,HTTP允许将多个报头合并为一个逗号分隔的报头,代理可以做到这一点。
然而,它不允许在If-Modified-Since头的情况下这样做,所以你得到了格式错误的请求,应该忽略If-Modified-Since或失败,状态为400。
发布于 2009-09-06 12:47:43
通常,HTTP使用逗号分隔列表中的项,而分号用于分隔项的参数。所以逗号语法应该是正确的。
但根据规范, header field只允许一个日期,而不允许日期列表。所以在这种情况下,我不了解日期列表的语义。
https://stackoverflow.com/questions/1385583
复制相似问题