位置: IT常识 - 正文

使用python搭建一个简易的Web服务(如何搭建python)

编辑:rootadmin
使用python搭建一个简易的Web服务 介绍

推荐整理分享使用python搭建一个简易的Web服务(如何搭建python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:如何搭建python项目架构,用python搭建的网站有哪些,如何搭建python项目架构,如何搭建python编程环境,如何搭建python编程环境,如何搭建python开发环境?(用自己的语言陈述),python 搭建,python 搭建,内容如对您有帮助,希望把文章链接给更多的朋友!

简单的说,web服务器就是机器上监听了本地的IP和端口的一个进程,当有客户的请求进来时,它会响应客户的请求并返回相应的信息。客户端和服务端之间的通信基于HTTP协议,客户端可以是浏览器或者任何支持HTTP的应用。我们平时访问网页或手机APP里接受服务端的数据,都是通过这样的方式。

下面这张图是一个客户端和服务端交互的过程

用户在浏览器输入网址向web服务器发出一个请求,web服务器收到请求后返回Hello, world!给浏览器,用户就能在浏览器上看到文字。

代码实现

我们来用Python实现这样一个简单的web服务器。代码如下

import socketHOST, PORT = '', 8888listen_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.decode("utf-8")) http_response = """\HTTP/1.1 200 OKHello, World!""" client_connection.sendall(http_response.encode("utf-8")) client_connection.close()使用python搭建一个简易的Web服务(如何搭建python)

上面的代码监听本地的8888端口,收到客户端的请求后,在控制台打印出请求的头部和内容,并返回响应的头部和内容给客户端。

运行上面的代码

root@ubuntu:~# python server.pyServing HTTP on port 8888 ...

打开浏览器,访问http://localhost:8888/,会在浏览器看到如下的页面

同时在程序的控制台会有如下的输出

GET / HTTP/1.1Host: localhost:8888Connection: keep-aliveCache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8Accept-Encoding: gzip, deflate, brAccept-Language: en-US,en;q=0.8

 这就是客户端请求的头部信息。

HTTP协议是TCP协议上层的协议,因此在实现HTTP交互之前,客户端和服务端先要创建TCP连接。创建TCP连接就要用到socket模块。创建TCP连接由客户端发起,为接受客户端的TCP连接请求,服务器端需要经历以下几步:

创建socket调用bind绑定到指定的IP和端口调用listen监听端口调用accept接受客户端的请求

至此一个TCP连接创建完成,接下来就可以进行数据的收发。

好了,以上就是一个最简单的web服务器。

本文链接地址:https://www.jiuchutong.com/zhishi/299328.html 转载请保留说明!

上一篇:【java web篇】MyBatis之Mapper代理(javaweb官方文档)

下一篇:英雄联盟轮播图手动轮播(英雄联盟轮转模式2020时间表)

  • 收到其他与经营活动有关的现金是什么意思
  • 未分配利润与净利润不相等
  • 销售赠送赠品会计处理
  • 电子发票怎么入库
  • 利息收入为什么记贷方
  • 什么情况下当月不排卵
  • 所得税退税怎么办
  • 预收货款多长时间结清
  • 过路费是来回收费还是单向
  • 购房所需的税费种类和费用
  • 门面入股做生意
  • 在建工程完工结转
  • 汇算清缴补交所得税会计分录小企业会计政策
  • 营改增的会计处理及其对财务的影响
  • 互联网合同要交社保吗
  • 怎样算纳税人
  • 企业发放给员工子女抚养费
  • 企业法人和股份的关系
  • 上月销项税额错了怎么修改凭证?
  • 离职补偿金的税率
  • 水利基金免税额度是多少
  • 收回公司代垫职工款项怎么做凭证?
  • 企业怎么才能开100万发票
  • 营业外支出期末需要结转吗
  • 土地抵扣进项税,,能调回来吗
  • 公司之间过户车辆要交税吗
  • 餐费没有发票怎么入账
  • 苹果怎么充电更好
  • 已经提完折旧的设备改造
  • 电脑重装系统启动
  • php缓存优化
  • 克罗地亚佩列沙茨
  • win11正式版问题
  • 房地产企业开发成本结转
  • 员工的收入
  • php魔术函数
  • YII2.0之Activeform表单组件用法实例
  • PHP:imagecreatefromwebp()的用法_GD库图像处理函数
  • php数组实现原理
  • php字符串在另一个字符串出现
  • 预收账款增值税纳税义务
  • 魔改6.67
  • 安卓京东抢购
  • gpt3模型大小
  • ubuntu系统安装教程
  • 关于录制初三毕业班家长寄语通知
  • 收到以前年度增值税退税账务处理怎么做账
  • 企业法人个人贷款哪里好贷
  • 运输费用增值税怎么算
  • 核定征收和查账征收可以自己选择吗
  • 银行贷款每个银行一样吗
  • 开发成本属于哪一类科目
  • 应付账款数字太大咋办
  • 企业如何进行利润分配的会计处理
  • 公司开办期间购买的工具
  • 总公司与分公司的账务处理
  • 跨年红冲收入记在本年度
  • 预付卡业务该如何管理
  • 银行信用贷款发放邮件后多久到账
  • 在建工程转固规定
  • mysql 查询范围
  • MySql 5.6.36 64位绿色版安装图文教程
  • sqlserver数据库怎么导出
  • windows server 开始菜单
  • linux在服务器领域的应用状况
  • win8系统崩溃怎么办
  • win7桌面点不了怎么回事
  • win10系统开机桌面图标不见了
  • linux系统查询进程
  • linux怎么修改主配置文件
  • win10系统出现问题怎么办
  • javascript内置对象应用团购
  • jquery制作下拉菜单
  • 江苏地税电子税务局官网登录
  • 河南医疗保险网上怎么缴费截止时间
  • 贸易公司的税率多少
  • 四川省地方税务局2017年1号公告
  • 月收入不足1000
  • 如何发挥人才作为第一资源 护理
  • 徐州市哪些区域封闭了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设