Django2.0自学笔记(1) Web开发框架,Web服务器,应用服务器之间的关系

文章目录
  1. 1. 访问Web资源的过程
  2. 2. Web服务器和应用服务器的区别
  3. 3. Web开发框架和应用服务器
  4. 4. 参考资料

在介绍Django框架之前,让我们先来了解一下什么是Web框架,Web服务器,应用服务器。

访问Web资源的过程

我们访问Web资源一般都遵循“请求-应答”的方式。客户端在浏览器输入Web资源地址发送给服务端,服务端分析地址,返回客户端想要的资源,或者返回错误,比如404资源未找到等。其实这个过程背后是客户端与服务端进行了报文的交互和解析。

我们来看一下http报文到底长什么样子,打开chrome浏览器,F12打开开发者工具,地址栏中输入网易地址,得到如下图结果。

Web服务器和应用服务器的区别

  • Web服务器:专门负责Web静态资源请求。什么是静态请求呢,简单一点,就是不用与后台数据库打交道,直接由Web服务器找到资源后返回的请求。静态资源每次访问都返回相同的结果,比如jpg,css,js,静态html等文件。现在流行的三个Web服务器是Apache,Nginx,IIS。

  • 应用服务器:专门处理Web动态请求。什么是动态请求呢,简单一点,就是每次都要根据用户提交的参数,去数据库搜寻数据,完了以后再动态组装成一个html返回给用户,所谓动态就是这个组装过程是当场进行的,每次请求来了都要创建新的html,这个html的内容是变化的(相对于静态html)。现在能做动态请求的技术很多,PHP,JSP,ASP.Net,Python,Nodejs,Ruby,所对应的应用服务器也各不相同。

Web服务器和应用服务器一般协同工作如下图

Web开发框架和应用服务器

先假设我们没有Web开发框架,应用服务器收到一个动态请求后,我们怎么办呢,首先要解析发来的http报文,分析出有用的参数,然后选择对应的处理函数,再根据参数去数据库取数据,进行逻辑处理,当一切数据资源都齐全后,我们要开始生成最终返回给Web服务器的html了,肯定是一顿字符串拼接操作。太麻烦啦,程序员当然要偷懒,赶紧把这些重复繁琐的工作挑出来,在应用服务器的上面再建一层服务,专门处理这个。这样Web开发框架就运运而生了,它让我们可以不用管报文的解析与组装,参数提取,路由选择,html渲染等等,我们只需按照框架的结构,往其中填写逻辑处理内容即可。我们把上面的图再修改一下,加入Web开发框架。

参考资料