`
SteveGY
  • 浏览: 21692 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

SimpleHttpServer的一个小问题,修了5年!

阅读更多
python 2.5.2 Windows的安装包安装的,在用web.py 0.23,调试的时候当然只用自带的调试web server,其实就是SimpleHTTPServer.py,发现一个怪问题,打开所有页面都有10秒的延迟,浏览器的进度条一直不结束,10秒后才在状态栏上显示完成!终于发现/static/css/下的所有css都下载很慢,但是在cygwin python 2.5.1下,这个问题就没有,linux下的python 2.5.1下也没有问题。查了一下http响应的header,发现Content-Length不对,header报的length比实际的文件字节数大!导致浏览器还在等待实际已经不存在的数据。
很偶然的,从其他项目copy一个css文件过来测试,发现这个文件没有长度不对的问题,对比一下,发现这个文件是Unix格式的lf换行符,再随便改了一个css文件的换行格式,发现长度问题也没有了。

看来真是不能对python提供的库有过高的期望,google一下,看到了这个,http://bugs.python.org/issue839496,居然修了5年,再看看讨论的历史记录,觉得配置管理真的很重要啊!浪费了我3、4个小时。

找到Python\Lib\SimpleHTTPServer.py,我的安装版本在83行,自己改一下。
        ctype = self.guess_type(path)
        #if ctype.startswith('text/'):
        #    mode = 'r'
        #else:
        #    mode = 'rb'
        try:
            # patched on 28 July, 2008 by Steve
            #f = open(path, mode)
            f = open(path, 'rb')
        except IOError:
            self.send_error(404, "File not found")
            return None


应该所有的使用SimpleHTTPServer的程序都有同样的“小”问题,还是不要浪费大家的时间的好。
2
1
分享到:
评论

相关推荐

    图形学实验报告(梅洛瑜)1

    html5 的帧动画 api 是让动画看着像个样子的基础纹理贴图跨域访问问题两种跨域访问:1.SimpleHTTPServer2.base64由于采用 HTTPServer 对于小项目来说没有必要且客户端需要消耗更多资源来加载素材,我们未搭建 ...

    CN.zip_python2_服务器

    【标题】"CN.zip_python2_服务器"是一个与Python2相关的项目,主要涉及的是使用Python构建一个简单的Web服务器。这个项目可能旨在帮助初学者理解如何用Python实现基本的HTTP服务,以便能通过本地网络访问存储在...

    Python 2.6.5 for windows

    Python 2.6.5是Python编程语言的一个古老版本,发布于2010年,主要针对Windows操作系统。这个版本在当时引入了一些重要的更新和改进,对于初学者和那些需要与旧系统兼容的开发者来说,它仍然具有一定的价值。本文将...

    python-2.4

    Python 2.4是Python编程语言的一个较早版本,发布于2004年,它在当时引入了许多新特性和改进。在这个版本中,开发者可以体验到一系列的更新,包括性能优化、语法增强以及对标准库的扩展。下面将详细讨论Python 2.4的...

    Python-2.4.tgz

    Python 2.4是Python语言的一个重要版本,发布于2005年,它在Python 2.x系列中引入了许多改进和新特性。在这个版本中,开发者能够享受到更高效、更灵活的编程体验。 Python 2.4的重要更新包括: 1. **Unicode支持...

    Email-Client:第 9 周第 5 天 EmberJS 评估 Epicodus 2015 年冬季

    2.) 在终端中,在项目目录下启动一个服务器: $ python -m SimpleHTTPServer 3.) 在浏览器中输入 localhost:8000。 4.) 一如既往,玩得开心! 关于 通过卡梅隆约翰逊 Epicodus 的 EmberJS 评估,2015 年冬季 执照...

    python官方2.6.4rc1版本msi安装包

    这个版本是 Release Candidate 1(RC1),意味着它是正式版本发布前的最后一个测试版,旨在解决可能存在的问题并进行最后的调试。 在 Python 2.6.4rc1 中,用户可以找到以下关键知识点: 1. **版本兼容性**:...

    python官方2.4.3c1版本msi安装包

    Python 2.4.3c1 是 Python 编程语言的一个历史版本,发布于2006年。这个版本在当时引入了许多改进和修复,旨在提高稳定性和性能。Python 是一种高级、解释型、交互式和面向对象的脚本语言,广泛应用于Web开发、科学...

    openlayers3上加载瓦片图片

    5. **添加图层**:创建一个`ol.layer.Tile`实例,将上面的瓦片源与之关联,然后将其添加到地图中。 ```javascript var tileLayer = new ol.layer.Tile({ source: tileSource }); map.addLayer(tileLayer); ``` 6...

    a3-sonjak3-natguy-nreiter:火箭发射简史

    这是一个可视化世界各地太空火箭发射历史的应用程序,从 1957 年人造卫星成为轨道上的第一个人造物体开始。 描绘了来自 30 多个不同地点的 5,000 多次火箭发射,包括成功和失败。 该应用程序允许以多种速度播放启动...

    timeKeeper:一个简单的时间跟踪 Chrome 应用程序

    `timeKeeper` 是一个基于 Chrome 浏览器的应用程序,专注于帮助用户高效地管理时间。它采用先进的前端框架 `Polymer` 进行构建,提供简洁、直观的界面来追踪您的工作或学习活动。在时间管理日益重要的今天,这样的...

    webgl-school:所有webgl学习都在这里

    由于chorme在中间有一个角度,因此它改变了外观由于opengl转换为diretX,很自然,外观会根据屏障GPU,浏览器,操作系统 chorme拥有GPU黑名单不支持较早的GPU Intel HD 3000和webgl是js API,因此,无论GPU多么出色...

    prototype:在机器学习培训过程中构建用于人工标记和分类的沉浸式界面(最新版v4.0)-北卡罗莱纳州立大学硕士论文原型| 2018年五月

    5. 数据同步:实时保存用户的标注结果,同时可能支持团队协作,让多个用户可以同时处理一个数据集。 项目可能还采用了其他技术,如JavaScript库和框架,来提升用户体验和功能实现。例如,可能使用了Redux来管理应用...

    python官方2.4.ia64版本msi安装包

    Python 2.4是Python历史上的一个重要版本,发布于2005年,虽然现在已经不再支持,但在当时,它引入了许多新特性、改进和错误修复。以下是一些关键的Python 2.4特性: 1. **生成器(Generators)**:Python 2.4引入...

    SimonSays:西蒙说 AngularJS 中的游戏克隆

    日期:2015 年 4 月 29 日 描述 Simon 在 AngularJS 中的单页应用游戏。 用户会逐渐获得更难记住和模仿的模式。 用户得分基于失败前的连续回合数。 在 AngularJS 中作为练习构建。 设置说明 克隆这个 git 仓库 这个...

    staycation:Angular中的语音控制旅行模拟器

    StayCation 由Sam Martinez,Kyle Pratuch,Kelli Margaret,Mitch Rivet,Micah Courey和Ashli​​n Aronin撰写,2015年10月9日AngularJS中的语音控制器旅行模拟器。 使用Node,Express,Google Web Speech API,...

    turingmachine.js:用于教育目的的图灵机(HTML5-webapp)

    2013年10月-2015年9月 地位: 希望稳定 作者: 梅斯特卢克 执照: CC0 用于教育目的的图灵机。 安装 只需在某些现代浏览器中打开index.html 。 甚至更好:运行python: python -m SimpleHTTPServer 或在...

    theSortingHat

    ####日期:2015 年 5 月 6 日 | Bojana Skarich、Erica Cha、Kelly de Vries 和 Abeer Khakwani 这个应用程序将允许用户选择吸引他们的图像,它会揭示他们的性格类型。 #设置和使用 克隆这个 git 存储库 ( ) 打开...

    minesweeper:AngularJS

    ##Date 2015 年 5 月 7 日 ##Description 这个程序是扫雷。 ##Technologies 使用 JavaScript 角JS HTML 带有 Bootstrap 的 CSS ##使用和编辑要使用和/或编辑应用程序: 将此项目克隆到您选择的目录 在您喜欢的...

    diaspora:用元胞自动机模拟人类离开非洲的过程 (CS 485)

    侨民 - CS 485,2015 年夏季 假设: 可以用元胞自动机模拟出非洲的人类散居地。 运行模拟 模拟在浏览器中作为 HTML5 Canvas + JS 应用程序运行。 这是在 Mac 上用 Chrome 测试过的,所以你的里程应该不会改变,但...

Global site tag (gtag.js) - Google Analytics