Web框架本质是socket
各种socket一般都遵循wsgi协议
Django里面没有socket
Django映射到Web框架,用了一个别人的socket:wsgiref
所以:django默认用的是 wsgiref+django (本地测试与性能无关)
工作用uwsgi+django
socket需要做的事:
1.把请求相关的东西处理好(然后给 Django,Django处理后再给socket)
2.把Django处理好的结果返回给用户
流程:
用户访问,先socket分析处理(请求头,请求体)后,给Django(请求相关的东西+空的容器),
Django 处理好后返回字符串(额外的东西(响应体)+盛着东西的容器(里面的东西是当作响应头))给socket,socket再返回给用户
一般遵循wsgi协议的 参数都是defRunServer (environ<请求相关>,start_response<相应相关>)
PS:
Socket是什么呢?
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
你会使用它们吗?
前人已经给我们做了好多的事了,网络间的通信也就简单了许多,但毕竟还是有挺多工作要做的。以前听到Socket编程,觉得它是比较高深的编程知识,但是只要弄清Socket编程的工作原理,神秘的面纱也就揭开了。
一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理,也许TCP/IP协议族就是诞生于生活中,这也不一定。
wsgi协议
......信客的出现使人们不再为难以通信而犯愁,此外,为了方便管理信件和物品,他规定乡亲们的书信应该装在什么样的信封里,地址应该怎么怎么写,要是有物品需要寄送,应该怎么怎么包装,等等。时人将这套“接口规范”称之为XMTP(Xinke's Mail and Transport Protocol)。......