django没有响应正确的数据包,但它在控制台中显示200

时间:2013-12-15 04:48:43

标签: django sockets networking

我开发了一个django(1.5)应用程序,但昨天我发现它有时无法获得响应并显示空白页面。

糟糕的网址是:http://www.anwcl.com:8000/comment/

但是本地网址可以正常使用(django在我的计算机上提供):http://127.0.0.1:8000/comment/

我在print data之前在wsgi的finish_response中添加了self.write(data),数据看起来很好,但它不会发送正确的数据包。 Wireshark显示它响应了几个数据包,但它们没有完成,有些数据包丢失了。

以下是wireshark的图像捕获(注意我在我的计算机上提供django,因此我访问http://www.anwcl.com:8000/comment/意味着我访问了我的计算机):

  • http://www.anwcl.com/test/error/django_response_truncated_detail.jpg http://www.anwcl.com/test/error/django_response_good_one.jpg http://www.anwcl.com/test/error/django_response_bad_one.jpg http://www.anwcl.com/test/error/django_request_but_no_response.jpg

作为前3个图像,它只能响应3个数据包,最后2个数据包丢失。

作为第4张图片,即使控制台显示[15/Dec/2013 12:37:49] "GET /comment/ HTTP/1.1" 200 6095,有时它甚至不会响应任何数据包。

一旦我减少了响应大小(删除模板中的大部分内容),那么它就可以正常工作了!

我想知道当我用大HTML回复时是否存在任何错误/限制。

以下是我的配置和网址的详细信息。

服务器配置:

runserver --noreload 0.0.0.0:8000

urls.py:

from django.conf.urls import *
from django.conf import settings
from django.contrib import admin
admin.autodiscover()

from d1.views import *
from vine_comment.views import *

urlpatterns = patterns('',
    (r'^accounts/', include('registration.backends.default.urls')),
    url(r'^matrix/?$', TemplateView.as_view(template_name='matrix/matrix.html'), name='matrix'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', TemplateView.as_view(template_name='index.html'), name='index'),
    url(r'^comment/(?P<url_b64>.*?)/?$', CommentView.as_view(), name='comment'),
)

from functools import wraps
from django.contrib.staticfiles.views import serve as serve_static

if settings.DEBUG:

    def custom_headers(view_func):

        @wraps(view_func)
        def wrapper(request, *args, **kwargs):
            response = view_func(request, *args, **kwargs)
            response['Access-Control-Allow-Origin'] = '*'
            return response

        return wrapper

    urlpatterns += patterns('',
        url(r'iframe/(?P<url_b64>.*?)/?$', custom_headers(CommentIframeView.as_view()), name='comment_iframe'),
        url(r'^static/(?P<path>.*)$', custom_headers(serve_static)),
    )

0 个答案:

没有答案