python实现web服务器介绍_基于python实现简易web服务器

摘要

本文主要是介绍用python自带的BaseHTTPRequestHandler,HTTPServer类实现一个简易的web服务器,从而加深对http协议和web服务器实现、运行原理的理解,同时对web服务器与客户端的交互过程进行详细介绍,明白服务器是如何处理客户端对其请求后,将服务器资源响应给客户端的,更重要的是通过本项目的实现可以了解python的网络开发基础模块和CGI协议,从而拥有能够深入学习python网络开发体系知识基础。

1.引言

对于web应用服务器,相信只要是接触B/S架构开发的都会非常熟悉,动态网页的运行是要在web服务器这样的容器中进行处理,然后将数据返回到客户端进行显示的,对于php,最常见的是Apache,而jsp则是tomcat等轻量级应用服务器的使用是很普遍的,而这些服务器部署起来很容易,但是其实现原理却值得探究。

正好这段时间学习了python,想着实现一个最简单的web服务器应用,可以对客户端的请求进行响应,从而正常显示资源页面。

2.系统结构

对使用的相关技术,相关模块进,实现功能的原理进行介绍,采用框架图,示例图等进行表述,使人可以对系统的框架和原理有个比较好的把握;

用python实现简易服务器,前提需要知道以下几个点:

2.1 B/S架构原理

B代表的是浏览器,S代表的是服务器,B/S交互流程:

[if !supportLists]1.  [endif]用户在客户端向服务器发送请求,等待服务器响应;

[if !supportLists]2.  [endif]服务器端接收到请求后,对请求的数据进行处理,并产生响应资源数据;

[if !supportLists]3.  [endif]服务器将产生的资源数据返回给客户端浏览器

[if !supportLists]4.  [endif]浏览器接收并进行解析相关资源文件,然后呈现在客户端界面。

简单原理图如下:

9d73b049d619

图1 B/S架构原理

2.2 http协议工作原理

http是客户端和服务器端请求和应答的标准,是基于TCP/IP协议之上的应用层协议.

工作原理:当客户端发起一个http请求时,客户端创建一个到服务器指定端口(http默认端口号80)的TCP连接,服务器在指定端口号监听客户端的请求,一旦接收到请求,服务器回向客户端返回一个状态包含状态码以及返回的内容.

http状态码:

[if !supportLists]·        [endif]1xx消息——请求已被服务器接收,继续处理

[if !supportLists]·        [endif]2xx成功——请求已成功被服务器接收、理解、并接受

[if !supportLists]·        [endif]3xx重定向——需要后续操作才能完成这一请求

[if

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值