python3英文的

打印出来应该不错:

https://docs.python.org/3/library/http.server.html#module-http.server

python2.7

我的理解一个webserver需要两个东西:一个是server(用于监听的类)、一个是handler(用于处理连接的类)

python2中常用的库有两个:BaseHTTPServer、SimpleHTTPServer

  • BaseHTTPServer里面只有两个类:一个叫HTTPServer用于监听,一个BaseHTTPRequestHandler用于处理连接。有这两个类就已经够完成工作的了,通常你需要重写handler来精确的处理get、post等请求
  1. #! -*- coding:utf-8 -*-
  2. __author__ = ''
  3. #!/usr/bin/python
  4. from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
  5. class MyHandler(BaseHTTPRequestHandler):
  6. def do_GET(self):
  7. try:
  8. f=open(self.path[1:],'r') # 获取客户端输入的页面文件名称
  9. self.send_response(200)#如果正确返回200
  10. self.send_header('Content-type','text/html') #定义下处理的文件的类型
  11. self.end_headers()#结束处理
  12. self.wfile.write(f.read())#通过wfile将下载的页面传给客户
  13. f.close() #关闭
  14. except IOError:
  15. self.send_error(404, 'file not found: %s'%self.path)
  16. def main():
  17. try:
  18. server=HTTPServer(('127.0.0.1',8080),MyHandler) #启动服务
  19. print'welcome to the server'
  20. print 'quit jieshu'
  21. server.serve_forever()# 一直运行
  22. except KeyboardInterrupt:
  23. print 'shutdong doen server'
  24. server.socket.close()
  25. if __name__=='__main__':
  26. main()
  • SimpleHTTPServer里面只有一个类:SimpleHTTPRequestHandler,也是一个handler,或许和它的名字一样Simple,是它存在的原因

学习资料(还没看)

  • Python 标准库 BaseHTTPServer 中文翻译

https://blog.csdn.net/cc7756789w/article/details/46911021

  • 关于 BaseHTTPServer 的介绍

https://www.cnblogs.com/yubenliu/p/5952861.html

  • 非常简单的Python HTTP服务

https://www.cnblogs.com/xuelu/p/4127112.html

python3 http.server备忘的更多相关文章

  1. Bonobo Git Server (Simple git server for Windows.) 测试备忘

    Bonobo Git Server是一款Windows上的Git Server,它使用IIS即可,走的是Http协议,只要简单的安装就能使用,但是因为我的项目大小有1.35GB在 push 的时候一直 ...

  2. SQL Server修改标识列方法(备忘)

    原文:SQL Server修改标识列方法(备忘) SQL Server修改标识列方法 ----允许对系统表进行更新 exec sp_configure 'allow updates',1 reconf ...

  3. GIS部分理论知识备忘随笔

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...

  4. Nmap备忘单:从探索到漏洞利用(Part 5)

    这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...

  5. Nmap备忘单:从探索到漏洞利用(Part 2)

    这是我们的第二期NMAP备忘单(第一期在此).基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM).现在,游戏开始了. TCP SYN扫描 SYN扫描是默认的且最流行的扫 ...

  6. Socket网络通讯开发总结之:Java 与 C进行Socket通讯 + [备忘] Java和C之间的通讯

    Socket网络通讯开发总结之:Java 与 C进行Socket通讯 http://blog.sina.com.cn/s/blog_55934df80100i55l.html (2010-04-08 ...

  7. Zookeeper + Hadoop + Hbase部署备忘

    网上类似的文章很多,本文只是记录下来备忘.本文分四大步骤: 准备工作.安装zookeeper.安装hadoop.安装hbase,下面分别详细介绍: 一 准备工作 1. 下载 zookeeper.had ...

  8. SSO之CAS备忘

    http://blog.chinaunix.net/uid-28380443-id-4740103.html 自己负责的公司基于CAS单点登录平台架构已经上线运行,很多细节的东西是时候备忘一下了,开源 ...

  9. Linq to XML 读取XML 备忘笔记

    本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html Linq to XML 读取XML 备忘笔记 最近一个项目中有 ...

随机推荐

  1. 获取view宽高

    在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果? 这是为什么呢? 在调用onc ...

  2. HTTPS数据包抓取的可行性分析

    HTTPS数据包抓取的可行性分析 相信只要是从事软件开发, 多多少少都会涉及到数据包的抓取.常见的有网页数据抓取(即网页爬虫),应用程序数据包抓取等.网页数据抓取比较简单, 在chrome下可以非常方 ...

  3. 疫情控制 2012年NOIP全国联赛提高组(二分答案+贪心)

    P1084 疫情控制 题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控 ...

  4. HTML和JSP的不同及优缺点

    HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性语言呢?因为,只要你有一个浏览器那么它就可以正常显示出来 ...

  5. Qt实现客户端与服务器消息发送

    这里用Qt来简单设计实现一个场景,即: ①两端:服务器QtServer和客户端QtClient ②功能:服务端连接客户端,两者能够互相发送消息,传送文件,并且显示文件传送进度. 环境:VS20013+ ...

  6. ACM_递推题目系列之三放苹果(递推dp)

    递推题目系列之三放苹果 Time Limit: 2000/1000ms (Java/Others) Problem Description: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放 ...

  7. oracle 自定义类型 type / create type

    一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2. 2.数值类型.如:int.number(p,s).integ ...

  8. 376 Wiggle Subsequence 摆动序列

    A sequence of numbers is called a wiggle sequence if the differences between successive numbers stri ...

  9. 论tab切换的几种实现方法

    tab切换在网页中很常见,故最近总结了4种实现方法. 首先,写出tab的框架,加上最简单的样式,代码如下: <!DOCTYPE html> <html> <head> ...

  10. SpringMvc下的文件上传

    首先是springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...