为什么我用SSL阻止SSL请求?

时间:2016-06-10 14:43:49

标签: django ssl request

在Windows 7 x64上运行Python 2.7,Django 1.97。

在SSL模式下运行Django,似乎它会阻止任何新的Web请求,而另一个正在处理。它不是通过常规HTTP来做到这一点。为了确保我的代码不是什么问题,我创建了一个新项目并尝试了它并得到了相同的结果。

以下是您也可以构建的概念证明。

创建一个名为“testserver”的新项目。

在文件夹中创建一个“templates”文件夹,其中包含两个文件“index.html”和“bigfile.html”。使每个包含代表性文本,例如“这是索引”和“这是大文件页面”。

在settings.py中将这些内容添加到INSTALLED_APPS:

'sslserver',
'testserver'

现在在urls.py中添加:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',"testserver.views.index"),
    url(r'^bigrequest/$',"testserver.views.bigrequest"),
    ]

最后创建views.py并写下:

from django.shortcuts import render_to_response
import time

def index(request):
    return render_to_response("testserver/index.html")

def bigrequest(request):
    start_time=time.clock()
    randomvar=0
    while time.clock()-start_time<=30:
        randomvar+=1

    return render_to_response("testserver/bigrequest.html")

现在使用“python manage.py runserver”启动服务器NORMALLY。

打开服务器的主机名,无需任何其他网址(http://localhost:8000/)。它将显示索引。

现在打开http://localhost:8000/bigrequest/网页将需要30秒才能加载,然后正常显示bigrequest.html页面。现在这里是棘手的部分:尝试在bigrequest处理时重新加载索引。无论是否完成大请求,索引都会立即加载。

但是,现在尝试启动服务器IN SSL MODE的相同测试。做“python manage.py runsslserver”。再次加载bigrequest页面。在加载时,尝试打开索引。在完成大规模请求之前,索引不会响应。

正如您所猜测的那样,无法同时处理请求的服务器是一个非常糟糕的设置。但那我为什么要放弃SSL?

这里发生了什么?

0 个答案:

没有答案