位置: 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时间表)

  • 苹果恋爱模式怎么开(苹果恋爱模式怎么开xr)

    苹果恋爱模式怎么开(苹果恋爱模式怎么开xr)

  • 爱奇艺怎么关闭小窗口播放(爱奇艺怎么关闭别人登录)

    爱奇艺怎么关闭小窗口播放(爱奇艺怎么关闭别人登录)

  • 苹果xs充电到百分之80卡住了(苹果xs充电到80%就不充了为什么)

    苹果xs充电到百分之80卡住了(苹果xs充电到80%就不充了为什么)

  • 华为p30pro屏幕分辨率(华为p30pro屏幕分辨率是2K吗)

    华为p30pro屏幕分辨率(华为p30pro屏幕分辨率是2K吗)

  • 华为nova6移动数据怎么切换(nova 移动)

    华为nova6移动数据怎么切换(nova 移动)

  • 什么软件可以修改PDF文件(什么软件可以修图瘦身)

    什么软件可以修改PDF文件(什么软件可以修图瘦身)

  • 荣耀9屏幕刷新率(荣耀9屏幕刷新率是多少)

    荣耀9屏幕刷新率(荣耀9屏幕刷新率是多少)

  • 华为nova5原装耳机型号(华为nova5原装耳机图片)

    华为nova5原装耳机型号(华为nova5原装耳机图片)

  • 停电了网线还能用吗(停电的话网线还能用吗)

    停电了网线还能用吗(停电的话网线还能用吗)

  • vivo插耳机没声音(vivo手机插耳机没声音)

    vivo插耳机没声音(vivo手机插耳机没声音)

  • microsoftwindows没有响应(microsoftwindows没有恢复)

    microsoftwindows没有响应(microsoftwindows没有恢复)

  • 什么是控制和管理计算机硬盘和软件资源(什么是控制和管理计算机硬件资源)

    什么是控制和管理计算机硬盘和软件资源(什么是控制和管理计算机硬件资源)

  • 电脑长时间没开机,现在开不了机怎么办(电脑长时间没开机导致开不开机)

    电脑长时间没开机,现在开不了机怎么办(电脑长时间没开机导致开不开机)

  • 主码候选码外码的定义(主码,候选码,外码的联系和区别 并解释术语)

    主码候选码外码的定义(主码,候选码,外码的联系和区别 并解释术语)

  • 音响前级后级什么意思(音响中前级和后级指的是哪些东西)

    音响前级后级什么意思(音响中前级和后级指的是哪些东西)

  • 怎样使手机屏幕变顺滑(怎样使手机屏幕字体变大)

    怎样使手机屏幕变顺滑(怎样使手机屏幕字体变大)

  • ibm怎么进去重装系统(ibm怎么进去重装系统界面)

    ibm怎么进去重装系统(ibm怎么进去重装系统界面)

  • 蓝牙耳机会致癌吗(蓝牙耳机会得癌症吗)

    蓝牙耳机会致癌吗(蓝牙耳机会得癌症吗)

  • 快手id能查出手机号码(快手id可以查到个人资料吗)

    快手id能查出手机号码(快手id可以查到个人资料吗)

  • form表示什么(form的含义)

    form表示什么(form的含义)

  • 苹果有信号但呼叫失败(iphone有信号呼叫失败是怎么回事)

    苹果有信号但呼叫失败(iphone有信号呼叫失败是怎么回事)

  • Mac怎么设置从不休眠?Mac设置从不休眠(mac怎么设置不自动开机)

    Mac怎么设置从不休眠?Mac设置从不休眠(mac怎么设置不自动开机)

  • layui-icon各种常用动态图标(layui iconfont)

    layui-icon各种常用动态图标(layui iconfont)

  • xzmore命令  查看xz压缩文本文件(more命令 查找)

    xzmore命令 查看xz压缩文本文件(more命令 查找)

  • phpcms更新缓存在哪(php 缓存)

    phpcms更新缓存在哪(php 缓存)

  • 个税返还奖励财务人员流程
  • 政府收回土地补偿款是否缴纳土地增值税
  • 车险发票不含车船税怎么记账
  • 税额怎么调整
  • 吴中区个体户如何办理
  • 消费税的账务处理流程
  • 税法里面的损耗是什么
  • 典当行借款合同需交印花税吗
  • 出口托收业务
  • 公司全部股权转让流程
  • 信用减值损失贷方
  • 本年利润是负数的会计分录
  • 现金日记账的登记依据有
  • 公司缴纳工会经费会计分录怎么写
  • 投资收益在什么科目
  • 机动车统一发票税率多少
  • 金税盘开红字发票
  • 工程项目人工费比例
  • 长期股权投资减值的判断依据
  • 对境外捐赠的相关政策
  • 一般纳税人不能转为小规模纳税人吗
  • 冲销应收账款怎么记账
  • 存货计划成本法好处
  • php编程入门教程
  • 如何把电脑上锁屏密码
  • 偷渡系统可以正常接收到升级吗
  • 资产减值损失结转怎么算
  • phpinfo页面
  • vue如何学
  • 海獭妈妈和新生儿的故事
  • win11显卡驱动不兼容
  • 网络命令netstat
  • 委托第三方收款合法吗
  • 审计招标费包含哪些内容
  • 个税可以补申报几个月的码
  • 农产品收购发票可以抵扣进项税额吗
  • 用于研发的材料后期销售了应该怎么账务处理
  • percona-toolkit对MySQL的复制和监控类操作教程
  • hashmap的使用场景
  • 个人独资企业核算方式
  • 以前年度的成本忘了结转然后怎么办
  • 公司举办年会的心得体会
  • 行政事业单位福利费开支范围文件
  • sqlserver2008新建实例
  • 经营结余和事业结余
  • 网上商城功能
  • 出口退税一般风险商品
  • 业务招待费属于什么会计科目
  • 什么是年化收益和绝对利率
  • 损益类科目调整到未分配利润分录
  • 销售折让如何做分录
  • 研发支出放在报表哪里
  • 会计中借方和贷方各指什么
  • 外经证预缴税款必须去外地交税吗
  • 员工房屋租赁合同
  • 库存商品盘盈和盘亏区别
  • 境外企业分红到境内
  • 子公司内部交易
  • 租赁车子
  • 高速etc发票如何打印
  • 老板用公司的钱算挪用公款吗
  • 会计档案步骤
  • 事业单位企业所得税汇算清缴怎么做
  • 什么是资本公积,举例说明
  • sql删除重复数据只保留一条日期最大的
  • 华硕主板如何刷系统
  • 退休后归什么部门管
  • fsmb32.exe是什么进程 作用是什么 fsmb32进程查询
  • windows8.1激活方法
  • win7系统删除ie浏览器
  • windows7组织
  • javascript RegExp 使用说明
  • unity3ds
  • nodejs使用视频教程
  • Unity3D游戏开发(第2版)
  • python相似模块用例
  • python提取html内容
  • 宁波国税局领导名单
  • 广告费扣除限额15%和30%
  • 重庆税务局查询缴费记录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设