如果上一个脚本工作正常,将返回语句从
return [response_body]
改成
return response_body
然后再次运行它。注意到它变慢了吗?这样的话,服务器会迭代这个字符串,每次向客户端发送一个字节。所以不要忘记将应答封装在一个有更好性能的可迭代对象里,比如列表。
如果可迭代对喜爱那个产生多于一个的字符串,conten-length僵尸所有字符串长度的和,像下面这个脚本:
from wsgiref.simple_server import make_server
def application(environ, start_response):
response_body = ['%s:%s' %(key, value) for key, value in sorted(environ.items())]
response_body = '\n'.join(response_body)
response_body = ['The Beggining\n', '*'*30+'\n', response_boday, '\n'+'*'*30,'\nThe End']
# 所以conten-length就是所有字符串长度的和了
content_length = 0
for s in response_boday:
content_length += len(s)
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'), ('Content-Length', str(content_length))]
start_response(status, response_headers)
return response_body
httpd = make_server('localhost', 8051, application)
httpd.handle_request()