谈谈你对HTTP协议的认 识
- 协议
- 通信双方,在通信流程或内容格式上,共同遵守的标准
- http协议
- 互联网中最常见的网络通信标准
- http协议的特点
- 通信流程
- 断开式(无状态)
- http协议每次响应完成后,会断开与客户端的连接
- 无状态
- 由于服务器断开了之前的连接,就无法知晓连接间的关系
- 断开式(无状态)
- 内容格式
- 消息头和消息体
- 通信流程
列举Http请求中 常见的请求方式
- HTTP/1.1协议中定义了八种方法,来表明Request-URL指定的资源不同的操作方式
- OPTIONS
- 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送
*的请求来测试服务器的功能性
- 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送
- HEAD
- 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。获取包含在响应消息头中的元信息
- GET
- 向特定的资源发出请求。
- 发送一个请求来取得服务器上的某一资源
- 资源通过一组HTTP头和呈现数据返回给客户端
- GET请求中,永远不会包含呈现数据
- POST
- 想指定资源提交数据进行处理请求
- 数据被包含在请求体重
- POST请求可能会导致新的资源的建立或已有资源的修改
- PUT
- 向指定资源位置上传其最新内容
- DELETE
- 请求服务器删除Request-url所标识的资源
- TRACE
- 会显示服务器收到的请求,主要用于测试或者诊断
- CONNECT
- HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
GET请求和POST请求的区别
- GET请求无消息体,只能携带少量数据
- POST请求有消息体,可以携带大量数据
- 携带数据的方式
- get请求将数据放在url地址中,提交的数据最多只能有1024字节
- POST请求将数据放在消息体中,没有限制数据大小
简述MVC模式和MTV模式
- MVC模式
- 模型(M),负责业务对象与数据库的映射(ORM)
- 视图(V),负责与用户的交互(页面)
- 控制器(C),接受用户的输入调用模型和视图完成用户的请求
- MTV
- M,模型,负责业务对象和数据库的关系映射(ORM)
- T,模板,负责如何把页面展示给用户
- V,视图,负责业务逻辑,并在是适当的时候调用Model和Template
- 除了以上,还需要一个URL分发器,作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template
简述Django的请求生命周期
简述什么是FBV和CBV
- FBV(function base views),在视图里使用函数处理请求
- CBV(class base views),在视图里使用类处理请求
- 优点
- 提高代码的复用性,可以使用面向对象的技术,比如mixin(多继承)
- 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性
- 优点
谈谈对ORM的理解
- ORM是"对象-关系-映射"的简称
- MVC或者MTV中重要的一个部分,实现了数据模型与数据库的解耦
- 即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库
- 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳作
详细笔记在:Python99网(https://python99.com/python-courses)