我在应用程序中收到HEAD请求,并想知道如何处理它们。选项包括:在App Engine上使用Django处理HTTP HEAD请求的最佳实践
- 将它们转换为入眼,过程通常的方式,那么:
- 剥离体(虽然我不知道如何 - 似乎
response.content = ''
不这样做 - 它似乎应用发动机自动去掉身体,给予警告
- 剥离体(虽然我不知道如何 - 似乎
看来这是干净的“响应HEAD请求删除意外的身体”,并能很好地我们写装饰器或中间件。
- 处理每个HEAD请求专门:
- 这意味着我能避免一些(很多?)情况下的数据存储访问。
- 显然,设置内容长度标题的中间件将会被这种方法阻止。
还有什么?我该怎么办?在这里使用App Engine会有所作为吗?有细微的细节;如果是这样,是否有适当的中间件使用?要转换为GET,是`request.method =“GET”足够(它似乎工作)?
* Django会自动剥离HEAD请求的响应内容,同时保持头部不变,因此您可以像处理视图中的GET请求一样处理HEAD请求。*从版本[16115](http://code.djangoproject .com/changeset/16115)Django包含方便的[require_safe](http://docs.djangoproject.com/en/dev/topics/http/decorators/#django.views.decorators.http.require_safe)装饰器,它限制了请求GET和HEAD。 – 2011-05-22 17:37:40
另请注意,HEAD请求已完全由视图函数处理(甚至requet.GET将被填充)。唯一的区别似乎是空的'response.content'。 – 2011-05-22 18:18:14