Java python cgi http响应向内容添加额外字节

Java python cgi http响应向内容添加额外字节,java,python,apache,sqlite,http,Java,Python,Apache,Sqlite,Http,我一直在使用PythonCGI脚本从数据库获取文件,一切正常,但出于某种原因,文件中似乎添加了一个额外的字节。在数据库上,大小为10265字节,但在http响应中,内容长度为10266。问题似乎来自http响应本身。问题是java应用程序使用的文件是.jar,由于这个额外的字节,它无法用类加载器加载这些文件。用于从服务器下载的代码段为: def printFileHeader(): print 'Content-Type: text/plain;charset=utf-8' pr

我一直在使用PythonCGI脚本从数据库获取文件,一切正常,但出于某种原因,文件中似乎添加了一个额外的字节。在数据库上,大小为10265字节,但在http响应中,内容长度为10266。问题似乎来自http响应本身。问题是java应用程序使用的文件是.jar,由于这个额外的字节,它无法用类加载器加载这些文件。用于从服务器下载的代码段为:

def printFileHeader():
    print 'Content-Type: text/plain;charset=utf-8'
    print

def downloadAddon(addon_id):
    dbConn = sqlite3.connect("addons.db")
    dbCursor = dbConn.cursor()
    dbCursor.execute("SELECT addon_file FROM uploaded WHERE id="+addon_id)
    blobl = dbCursor.fetchone()
    blobl = blobl[0]


    printFileHeader()
    print blobl
然后使用请求的id调用
downloadAddon()
函数,但无论从何处获取文件(数据库中的blob或直接文件),http响应的内容中始终包含该额外字节,即使服务器端的文件正常。欢迎任何帮助

另外,我知道文件头不是一个合适的文件头,但出于测试目的,我这样说。

我通过在文件头中提供文件的内容长度来“修复”问题,如下所示,代码如下所示:

def printFileHeader(size):
    print("Content-Disposition: attachment; filename=addon.jar")
    print("Content-Type: application/octet-stream") 
    print("Content-Length: "+str(size))
    print   

def downloadAddon(addon_id):
    dbCursor.execute("SELECT addon_file FROM uploaded WHERE id="+addon_id)
    blobl = dbCursor.fetchone()
    blobl = blobl[0]
    printFileHeader(len(blobl))
    print(blobl) 
这解决了问题,但我仍然不明白为什么仍然欢迎任何解释。此外,在检查修复前后的响应时,这里是文件的最后6个字节:

之前(带额外字节)
aaaak
之后
aaaaaa=

请解释原因,谢谢