面向对象、动态解析、支持框架、wsgi协议、支持协议

要想自己改Django,先得了解框架,学会mini-web框架,学mini-web框架,需要遵守WSGI协议

要实现mini-web的流程1

在sublime里Ctrl+h:全局替换

保证两边都close掉了,内存都被释放掉,不然用户一多就爆掉了

进程之间都是独立的,才需要;多线程是共享的,不需要;携程也不需要

一、面向对象的服务器

二、支持动态解析

返回数据时不是直接返回——>需要组拼请求头和请求体再返回

请求头里有User-Agent:(主要识别客户所用的操作系统浏览器的版本)

1)User-Agent:爬虫时一定要有

            2)User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是用户浏览器,就会应答

以上遵循HTTP协议

三、服务器的框架解耦-支持框架的服务器

四、WGSI协议

如何可以不修改服务器和架构代码而确保可以在多个架构下运行web服务器呢?——WSGI

WSGI协议规定:

1.服务器调用框架时,必须告诉浏览器请求的是啥

2.   框架在返回数据时规定怎么给

要想遵循协议,首先框架里必须要有一个可以直接调的函数,传来的参数正常有两个——一个是字典,另一个是函数(函数的引用)

                        浏览器请求动态页面过程

五、支持WGSI协议的服务器-字典传参

body = mini_frame027.application(env, self.set_response_header) # 第69行黄色框

括号里的两个参数分别是字典和函数

函数(, ,头信息是一个列表)# 第86行红色框

头信息传过来是列表,列表里的每一个元素是元组,元组里键值对,:前是键,:后是值

environ:一个包含所有HTTP请求信息的dict对象;

start_response:一个发送HTTP响应的函数

你可能感兴趣的:(面向对象、动态解析、支持框架、wsgi协议、支持协议)