由django请求生命周期延伸出的知识点大总结

django项目搭建见:

https://www.cnblogs.com/dongxixi/p/10981577.html

django请求生命周期图

由django请求生命周期延伸出的知识点大总结

 

 

由浏览器发起请求开始

知识点1:

浏览器与服务器软件架构:C/S架构

HTTP协议:又称超文本传输协议,它规定了浏览器与服务端数据传输的格式

HTTP协议四大特性:

    基于TCP/IP作用于应用层的协议

    基于请求响应

    无状态

    无连接

知识点2:

请求格式及响应格式:

  请求格式:

    请求首行

    请求头

    空行(\r\n)

    请求体

  响应格式:

    响应首行

    响应头

    空行

    响应体

 

 

wsgiref请求响应处理

知识点3:web服务网关协议

cgi:通用网关协议

wsgi协议:

  wsgi协议(Web Server Gateway Interface) 主要包含server和application两部分:

WSGI server负责从客户端接收请求,将request转发给application,将application返回的response返回给客户端;

WSGI application接收由server转发的request,处理请求,并将处理结果返回给server。application中可以包括多个栈式的中间件(middlewares),这些中间件需要同时实现server与application,因此可以在WSGI服务器与WSGI应用之间起调节作用:对服务器来说,中间件扮演应用程序(执行程序),对应用程序来说,中间件扮演服务器(WSGI服务器)。

WSGI协议其实是定义了一种server与application解耦的规范,我们django自带的wsgiref是对该协议的具体实现

此外还有很多其他实现该协议的服务器:

uwsgi:支持较高并发,django项目上线一般会选择用它替换django自带的wsgiref    == JAVA中的tomcat

wsgiref:支持并发不高,django自带

 

请求解析完成后依次通过Django中间件

知识点4:django中间件

django自带七大中间件:可以简单理解为django的门户,安全认证及全局处理都在这里面

MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppyyw.html