Python学习笔记--9.Django框架快速入门之预备知识
前言
在前面的学习中,我们对python基础知识和面向对象编程进阶进行了充分的学习和了解。今天我们将接触到一个python开发中最常用到的框架之一–Django框架。
本章主要内容时,在学习了解Django框架之前,我们还需要了解到的预备知识。包括HTTP协议的认识以及MVC模式和MTV模式。
一、HTTP协议的认识
1.什么是HTTP协议
“超文本传输协议”,HTTP协议就是客户端和服务器之间数据传输的格式规范。
基于TCP/IP来讲:
1)HTTP是一个属于应用层的面向对象的协议。
2)HTTP协议工作雨客户端-服务端架构上。
TCP/IP四层协议
详细会在文末笔记补充中作解释。
基于请求-响应模式来讲:
浏览器作为HTTP客户端通过URL向HTTP服务器(WEB服务器)发送所有请求。
WEB服务器根据接收到的请求,向客户端发送响应信息。
2.为什么说HTTP协议是无状态协议?怎么解决呢?
HTTP协议自身不具备对通信状态进行保存这个功能。是一种不保存状态,即无状态(stateless)协议。
怎么解决?
cookie保存和session会话保存。
两者区别会在文末笔记补充中详细解答。
3.HTTP请求中常见的请求方式
HTTP1.0:GET,POST,HEAD方法
HTTP1.1(新增6种请求方法)::OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方
法。
我们只需要记住:
CRUD(create-post, retreieve-get, update-patch,delete-delete) 增删改查
二、MVC模式、MTV模式
MVC模式:
将web应用分为模型、控制器、视图三层,模型负责对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接收用户的输入调用模型和视图完成用户的请求。
MTV模式:
本质上和NVC模式相同。在python中基本都使用了MVC的变种MTV(Model Templates View 模型-模板-视图)。
(理解)Django的MTV分别是:
M(Model)即模型:负责业务对象和数据库的关系映射(ORM)。
T(Template)即模板:负责如何把页面展示给用户(html)。
V(View)即视图:负责业务逻辑,并在适当时调用Model和Template。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处
理,View再调用相应的Model和Template,MTV的响应模式如下所示:
笔记补充:需要整理的面试内容
-
TCP/IP四层协议是什么?
答:自下而上分别是数据链路层、网络层、传输层和应用层。 -
列出常见的应用层协议?
DNS协议:负责提供机器域名和IP地址的转换。
HTTP协议:超文本传输协议,负责客户端和服务端之间的数据传的格式规范。
FTP协议:文本传输协议,负责网络共享文件的传输协议。
Telnet协议: 远程登录协议,它使我们能在本地完成远程任务。 -
TCP三次握手,四次分手的过程?为什么要这么做?
三次握手建立连接:
(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。
四次分手断开连接:
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
CP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
- cookie和session有什么区别?
会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
笔记补充:Windows网页:F12 进入网页开发者模式