1 什么是web?
web指的是网络,web应用开发指的是基于网络的应用程序开发。
Web应用开发分为web前端开发和web后端开发。
Web前端开发:我们可以简单的理解为开发一些网页。
Web后端开发:写一些逻辑判断程序。
当用户发出请求给我们写的程序,程序根据用户的请求做出相应的判断,然后返回给客户相应的内容。
2 软件开发架构
两个程序之间通讯的应用大致可以分为两种:
第一种是应用类程序:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用
第二种是web类程序:用户只需要浏览器即可访问程序。常见的web类应用程序
比如百度、知乎、CSDN等使用浏览器访问就可以直接使用。
不管是应用类程序还是web类程序,这些应用的本质其实都是两个程序之间的通讯。
而这两个分类又对应了两个软件开发的架构~
1、客户端服务器概念
客户端:就是我们常用的程序例如qq、微信,浏览器等等。
服务器:要一直运行着给别人提供服务的机器。
例如现在我使用的CTS软件给同学们提供服务,我的电脑就是服务端(服务器)
2、C/S架构
C/S即:Client与Server ,中文意思:客户端与服务器端架构。
这里的客户端一般泛指客户端应用程序exe,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。
3、B/S架构
B/S即:Browser与Server,中文意思:浏览器端与服务器端架构。只需在浏览器上通过HTTP去请求服务器端相关的资源(网页资源)。
执行流程:
浏览器发出一次请求给服务端,服务端通过逻辑判断把相应的数据发送给客户端。
依次执行上面的流程。
3 web框架
1、什么是框架
在生活中就像我们想到的一样,框架指的我们在做一件事情的时候搭的骨架来完成基础的功能。
程序中的框架和生活中搭建的框架的功能是相同的,框架来完成一些基础的工作,
程序员在此基础上开发实现自己业务功能的代码;
把程序员从繁琐的重复性的代码中解脱出来,提交开发效率;
2 web框架的本质
我们可以这样理解:所有的Web应用框架本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 一些常用框架(Django、Tornado、Flash)是对socket服务端进行的封装,使得基础功能更加完善。
这样我们就可以自己实现Web框架了。
(1).自定义web框架(不完整版)
import socket
server_sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sk.bind(('127.0.0.1', 9999))
server_sk.listen(128)
while True:
new_sk, addr = server_sk.accept()
content = new_sk.recv(1024)
print('接受到了数据...')
print(content)
# 给浏览器发生内容
new_sk.send(b'HTTP/1.1 200 ok\r\n\r\n') # 设置协议格式
new_sk.send(b'ok')
new_sk.close()
我们通过十几行代码简单地演示了web 框架的本质。
扩展: