Python实现简单http服务器


Posted in Python onApril 12, 2018

写一个python脚本,实现简单的http服务器功能:

1.浏览器中输入网站地址:172.20.52.163:20014

2.server接到浏览器的请求后,读取本地的index.html文件的内容,回发给浏览器

代码实现

server.py

#!/usr/bin/python 
import socket 
import signal 
import errno 
from time import sleep  
 
 
def HttpResponse(header,whtml): 
  f = file(whtml) 
  contxtlist = f.readlines() 
  context = ''.join(contxtlist) 
  response = "%s %d\n\n%s\n\n" % (header,len(context),context) 
  return response 
 
def sigIntHander(signo,frame): 
  print 'get signo# ',signo 
  global runflag 
  runflag = False 
  global lisfd 
  lisfd.shutdown(socket.SHUT_RD) 
 
strHost = "172.20.52.163" 
HOST = strHost #socket.inet_pton(socket.AF_INET,strHost) 
PORT = 20014 
 
httpheader = '''''\ 
HTTP/1.1 200 OK 
Context-Type: text/html 
Server: Python-slp version 1.0 
Context-Length: ''' 
 
lisfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
lisfd.bind((HOST, PORT)) 
lisfd.listen(2) 
 
signal.signal(signal.SIGINT,sigIntHander) 
 
runflag = True 
while runflag: 
  try: 
    confd,addr = lisfd.accept() 
  except socket.error as e: 
    if e.errno == errno.EINTR: 
      print 'get a except EINTR' 
    else: 
      raise 
    continue 
 
  if runflag == False: 
    break; 
 
  print "connect by ",addr 
  data = confd.recv(1024) 
  if not data: 
    break 
  print data 
  confd.send(HttpResponse(httpheader,'index.html')) 
  confd.close() 
else: 
  print 'runflag#',runflag 
 
print 'Done'

index.html

<html> 
 <head> 
   <title>Python Server</title> 
 </head> 
 <body> 
  <h1>Hello python</h1> 
  <p>Welcom to the python world</br> 
 </body> 
</html>

测试

测试结果:

root@cloud2:~/slp/pythonLearning/socket# ./server_v1.py 
connect by ('172.20.52.110', 6096)
GET / HTTP/1.1
Host: 172.20.52.163:20014
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6

浏览器

Python实现简单http服务器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
利用python如何在前程无忧高效投递简历
May 07 Python
Python 3.8中实现functools.cached_property功能
May 29 Python
python sorted方法和列表使用解析
Nov 18 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
基于python判断目录或者文件代码实例
Nov 29 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
Python实现一个服务器监听多个客户端请求
Apr 12 #Python
python使用socket创建tcp服务器和客户端
Apr 12 #Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 #Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 #Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 #Python
pandas全表查询定位某个值所在行列的方法
Apr 12 #Python
Python Pandas找到缺失值的位置方法
Apr 12 #Python
You might like
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
浅析is_writable的php实现
2013/06/18 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
python读取图片任意范围区域
2019/01/23 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
python与js主要区别点总结
2020/09/13 Python
c++工程师面试问题
2013/08/04 面试题
为什么要做架构设计
2015/07/08 面试题
创立科技Java面试题
2015/11/29 面试题
马智宇婚礼主持词
2014/03/22 职场文书
党员一句话承诺大全
2014/03/28 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
爱护草坪标语
2014/06/24 职场文书
高三英语教学计划
2015/01/23 职场文书
自我工作评价范文
2015/03/06 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
2019学校运动会开幕词
2019/05/13 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书