1

Drupalがダウンロードするファイルを送信しようとするたびにHTTP500が発生するプロジェクトの問題のデバッグを終えたところです。サーバーは、RFC 2047で指定されている方法でファイル名属性がエンコードされているため、Content-Dispositionヘッダーが不良であると判断しましたが、\nが含まれていませんでした。そこで、nをrに置き換えたところ、サーバーは満足のいくものになりました。

したがって、このサーバーが\nを\rとは異なる方法で処理するのか、将来どのように\ rが機能するのか、\nが機能しないのかを判断できるのではないかと思います。

編集:スクリプトによって送信されるヘッダー:

X-Powered-By: PHP/5.3.17
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Wed, 14 Nov 2012 20:43:20 +0000
ETag: "1352925800"
Content-Length: 1302854
Content-Disposition: attachment; filename="=?UTF-8?B?UHJvUXVhbGl0ZSBNYW51ZWwgZGVzIHByb2dyYW1tZXMgcHLDqWFsYWJsZXMgMjA=?=
 =?UTF-8?B?MTAgYXZlYyBhbm5leGVzXzBfMC5wZGY=?="
Cache-Control: private
Content-type: application/pdf
4

1 に答える 1

1

ここで、回線終端について話していると仮定します。

RFC2616によると、HTTP ヘッダーは「\r\n」文字列 (CRLF) で終わる必要があります。

HTTP/1.1 は、エンティティー本体を除くすべてのプロトコル要素の行末マーカーとしてシーケンス CR LF を定義します。

...

generic-message = start-line
                  *(message-header CRLF)
                  CRLF
                  [ message-body ]
start-line      = Request-Line | Status-Line

これは、HTTP ヘッダー行を終了するものです。仕様に従わない場合、サーバーはチョークするか、やりたいと思う他のことをする可能性があるため、サーバーとは関係ありません。

于 2012-11-14T20:20:38.853 に答える