web开发
web软件概述
什么是web?
web,英文单词[网状物],主要用于表示计算机中的广域网络[world wide web]
world wide web:全球广域网络,也称为万维网,是一种基于超文本和HTTP的全球性的、动态交互的、跨平台的分布式图形信息系统,是建立在internet上的一种网络服务
什么是web软件?
web软件,是一种基于web为其数据交互基础的计算机软件
该类型软件,通过web万维网的数据交互协议,通过网络进行数据传输
主要目的是高效率的跨平台跨地区数据共享
什么是协议?
协议:是一种共同协商、计议之后通过的一种约定
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。
随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流行,简称BS架构。
在BS架构下,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。
当然,Web页面也具有极强的交互性。由于Web页面是用HTML编写的,而HTML具备超强的表现力,并且,服务器端升级后,客户端无需任何部署就可以使用到新的版本,因此,BS架构迅速流行起来。
今天,除了重量级的软件如Office,Photoshop等,大部分软件都以Web形式提供。比如,新浪提供的新闻、博客、微博等服务,均是Web应用。
Web应用开发可以说是目前软件开发中最重要的部分。Web开发也经历了好几个阶段:
-
静态Web页面:由文本编辑器直接编辑并生成静态的HTML页面,如果要修改Web页面的内容,就需要再次编辑HTML源文件,早期的互联网Web页面就是静态的;
-
CGI:由于静态Web页面无法与用户交互,比如用户填写了一个注册表单,静态Web页面就无法处理。要处理用户发送的动态数据,出现了Common Gateway Interface,简称CGI,用C/C++编写。
-
ASP/JSP/PHP:由于Web应用特点是修改频繁,用C/C++这样的低级语言非常不适合Web开发,而脚本语言由于开发效率高,与HTML结合紧密,因此,迅速取代了CGI模式。ASP是微软推出的用VBScript脚本编程的Web开发技术,而JSP用Java来编写脚本,PHP本身则是开源的脚本语言。
-
MVC:为了解决直接用脚本语言嵌入HTML导致的可维护性差的问题,Web应用也引入了Model-View-Controller的模式,来简化Web开发。ASP发展为ASP.Net,JSP和PHP也有一大堆MVC框架。
wsgi接口开发(web server gateway interface)
# 引入需要的模块
from wsgiref.simple_server import make_server
# 定义网关接口函数:主要用于接受客户端请求 # 函谷关
def app(env, response):
# 获取参数:规定,get传递一个type参数,用于表示查询、删除、增加的操作
_param = env["QUERY_STRING"]
response("200 OK", [("Content-type", "text/html")])
if _param:
_value = _param[_param.index("=")+1:]
# 判断操作
if _value == "find":
return find(env, response)
elif _value == "delete":
return delete(env, response)
elif _value == "save":
return save(env, response)
return [b"<h1>OK!</h1>"]
# 查询数据的操作函数 # 瓷器
def find(env, response):
return [b"<h1>find OK!</h1>"]
# 删除数据的操作函数 # 茶叶
def delete(env, response):
return [b"<h2>delete ok</h2>"]
# 增加数据的操作函数 # 丝绸
def save(env, response):
return [b"<h2>save ok</h2>"]
# 创建服务器
httpd = make_server("", 9898, app)
print("server is starting..。。。。")
httpd.serve_forever()