G-WAN所有CSP都响应内容类型为text / plain

时间:2013-03-12 16:30:46

标签: python http-headers g-wan

[[ [已解决] G-WAN的最新更新修复了此默认MIME类型。]]


G-WAN 4.3.11将我的所有csp文件作为“text / plain”类型返回。怎么解决这个问题?!目前它几乎不是静态文件服务器。

,例如//127.0.0.1:8080/?hello.py以“Hello,Python!< br>”作为回应(如文/普通)

这应该返回“Hello,Python!”没有显示< br> (如text / html)

注意:

早期版本的GWAN工作正常。运行Fedora 18

csp源代码正在编译并返回正确的输出,这只是服务器没有响应正确内容类型的问题。

.html文件按原样返回text / html。

Python:print(os.environ.get('CONTENT_TYPE'))返回“无”

Python:os.environ ['CONTENT_TYPE'] ='text / html'没有影响

Request URL://localhost:8080/?hello.py
Request Method:GET
Status Code:200 OK

Request Headers
GET /?hello.py HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
Pragma: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Query String Parameters
hello.py:

Response Headers
HTTP/1.1 200 OK
Server: G-WAN
Date: Tue, 12 Mar 2013 18:50:33 GMT
Last-Modified: Tue, 12 Mar 2013 18:50:33 GMT
ETag: "c9ddeef-513f78fa-25"
Vary: Accept-Encoding
Accept-Ranges: bytes
Content-Type: text/plain; charset=UTF-8
Content-Length: 37

1 个答案:

答案 0 :(得分:0)

  

G-WAN 4.3.11将我的所有csp文件作为“text / plain”类型返回。   我该如何解决这个问题?

G-WAN无法猜测脚本想要使用的MIME类型。 应用程序服务器不这样做,因为MIME类型检测太慢而且可能是错误的。

G-WAN C / C ++ / D / CS / Java脚本允许您直接使用get_env()指定回复MIME类型,或者允许您使用build_headers(),或者让您编写HTTP标题直接在回复缓冲区中。

但是对于像Perl或Python这样的CGI语言,如果要更改特定HTTP标头的值,如“Content-type”,那么您必须编写自己的HTTP标头,并指定您认为相关的“内容类型”。

G-WAN导出SERVER环境变量,让CGI脚本知道HTTP请求头而不必解析它们(这些变量不用于修改G-WAN自动生成的HTTP头)。

有关如何从G-WAN Python脚本获取SERVER环境变量,请查看hello.py示例。


更新

现在您的问题已被重写,很明显您的问题是关于G-WAN脚本的默认 MIME类型。我们发布了v4.3.14以修复此v4.3.11问题。

关于支持的MIME类型,它们在G-WAN PDF手册中有记录,并且如此处所示,我们会​​定期添加用户在通用时建议的条目。

请注意,对于您正在讨论(G-WAN脚本)的情况,MIME类型配置文件将毫无意义,因为G-WAN脚本 选择默认的MIME类型或者明确地覆盖它们它位于“Content-Type”HTTP标头中。

G-WAN通过动态调整选项(如适应性超时,比任何固定值更高效),或通过使用文件系统而不是依赖于仅描述文件系统的配置文件来避免配置文件无论如何定义。

G-WAN是由程序员制作的工具,并非所有程序员都有时间学习他们必须使用的每个服务器的数千个专有文件配置选项。请不要向我们开枪,试图通过G-WAN保持简单 - 这是一个罕见的例外。