人生苦短,我用python

简洁高效,这才是理想的语言啊

分享一点python的学习经验-----如何用python写一个简单的web服务器

首先,我们需要简单地了解一下网络通信协议,这里用白话介绍一下TCP和UDP这两种传输层的协议

TCP:通信过程之中每次通信都会进行确认操作,确保报文的安全送达,相当于用对讲机说话,web服务器和客户端就是此采用此协议。

UDP:通信之中不需要确认操作,只完成报文的单项传输,相当于写信,DNS服务器与客户端的通信就是采用此协议。

再要了解一个网络编程中的概念,就是socket套接字,socket用于建立一个网络链接,创建套接字需要指定使用的协议和目标主机的ip和端口号,端口号计算机中通信过程中用于标记应用程序的一个序号,每个运行中的程序都会占用至少一个端口号

下面代码

[python] view plain copy
import socket

my_ip = '这里填你电脑的ip地址0.0'#可在命令行中输入 ipcongig 查看

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #建立一个套接字
s.bind((my_ip,8080))绑定ip与端口 这里端口填的8080
s.listen() #监听。
new_s,adress = s.accept() #这里accep()用于返回一个通信时的套接字和请求主机的地址
print(new_s.recv(1024),'n',adress) #recv()用于接受数据,相应的send()用于发送数据
运行这段代码,然后打开浏览器,在地址栏输入ip:8080格式的地址,然后你就可以看到python程序打印出了两个数据,一是客户端的请求,再就是你的ip和你浏览器的端口组成的元组

当然这样我们并不满足,我们需要给浏览器返回一个数据,并显示一些东西

于是我们只需要可以发送相应格式的数据,就可以在浏览器中显示了,而数据格式应该类似于

HTTP1.1 200 OKrn
rn #此处应该包括很多参数数据,这里不细讲
Hello World!!
然后我们完善代码
mport socket

HOST,PORT = 'your ip',8080

listen_socket = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET,
socket.SO_REUSEADDR,1)
listen_socket.bind((HOST,PORT))
listen_socket.listen(1)
print('Serving HTTP on port %s ...' % PORT)
while True:

client_connection,client_address = listen_socket.accept()
request = client_connection.recv(1024)
print(request)http_response = b"""
HTTP/1.1 200 OK\r\n
\r\n
Hello,world!
"""
client_connection.send(http_response)
client_connection.close()

打开浏览器,输入ip:8080

就可以在网页上看到 Hello,World!了

当然这是最简单的一种情形,做个了解足够了。

用python写一个简单的web服务器相关推荐

  1. ipad php mysql_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  2. ios php mysql实例_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  3. 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  4. Python写一个简易的web服务器

    Greg Wilson是Software Carpentry(为科学家和工程师提供在计算技能方面的速成课程)的创始人.他已经在学术界和工业界工作了30年,是几本计算方面的书,包括获得2008年jolt ...

  5. web服务器python_一个简单的web服务器(python)

    今天用python写一个简单的web服务器代码网上都有只是为了方便大家学习做了一个简单的教程 第一首先我们来一张架构以及运行过程的流程图 本文学习仅供参考,需要更多资料可以加群:496257369 简 ...

  6. 用Python建立最简单的web服务器

    用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认 ...

  7. python实现一个简单的http服务器

    需求:用python实现一个简单的http服务器 网页源码文件:https://download.csdn.net/download/d1240673769/46963534 该文件为html文件,如 ...

  8. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

    python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...

  9. 我的Go语言学习之旅八:创建一个简单的WEB服务器

    因为一直在做WEB程序,所以更关注WEB界的发展,这里就用GO做了一个简单的WEB服务器,直接看例子吧 package main import ( "fmt" "net/ ...

最新文章

  1. linux 套接字选项定义
  2. vant 项目_如何搭建mpvue框架搭配vant组件库的小程序项目
  3. git 拉去代码要求密码 解决方法:生成gitLab公钥
  4. 在visualstudio中使用Qt
  5. Salesforce中所有常用类型字段的取值与赋值
  6. Oracle 外连接和 (+)号的用法
  7. NOR和NAND Flash存储器的区别
  8. rabbitmq-死信队列
  9. 转:C++中const、volatile、mutable的用法
  10. c盘users的用户名怎么改_做完这几个操作,我从C盘中清理了30G垃圾文件
  11. Vue框架里使用Swiper - 安装篇
  12. hp服务器增加raid卡,惠普ProLiant服务器Raid卡配置过程详解
  13. OpenGL ES 2 o 初探
  14. c语言控制倒车雷达系统,倒车雷达控制系统设计
  15. 背景图片的位置(HTML、CSS)
  16. juqery合成事件toggle方法
  17. MySQL 8.0 的 5 个新特性,太实用了!
  18. word向下箭头符替换和打印,去掉多余换行
  19. 随笔之---java版本哲学家就餐问题【信号量的实现】
  20. 新知实验室--腾讯云TRTC体验

热门文章

  1. 推荐系列:2008年第10期 总12期
  2. python: 基本的日期与时间转换
  3. AI考拉技术分享会--IDE 常用功能 for Node.js
  4. 一朵落地中国的“智能云”是如何飘到你身边的!
  5. 微软想证明Windows比Chrome好 主要源自恐惧?
  6. 析构函数无法命中断点. 当前无法命中断点: 没有与此行关联的调试程序的目标代码类型的可执行代码. 可能的原因包括;条件编译, 编译器优化或者......
  7. 【javascript闭包】转载一篇不错的解释,也有几个大牛的链接
  8. Android HAL 开发 (2)
  9. Pow(x, n) 求一个数的n次方
  10. android中include标签的使用