在学习了解Django框架之前,我们还需要了解到的预备知识。包括HTTP协议的认识以及MVC模式和MTV模式。
1.HTTP协议的认识
1.1什么是HTTP协议
“超文本传输协议”,HTTP协议就是客户端和服务器之间数据传输的格式规范。
基于TCP/IP来讲:
1)HTTP是一个属于应用层的面向对象的协议。 2)HTTP协议工作雨客户端-服务端架构上。
基于请求-响应模式来讲:
浏览器作为HTTP客户端通过URL向HTTP服务器(WEB服务器)发送所有请求。 WEB服务器根据接收到的请求,向客户端发送响应信息。
1.2.为什么说HTTP协议是无状态协议?怎么解决呢?
HTTP协议自身不具备对通信状态进行保存这个功能。是一种不保存状态,即无状态(stateless)协议。
怎么解决? cookie保存和session会话保存。
1.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) 增删改查
2.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通过在服务器端记录信息确定用户身份。
|