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

  • jquery网页设计找对公司建网站

    jquery网页设计找对公司建网站

  • 荣耀平板v7pro怎么开启多屏协同(荣耀平板V7Pro怎么设置横屏全屏)

    荣耀平板v7pro怎么开启多屏协同(荣耀平板V7Pro怎么设置横屏全屏)

  • 无线鼠标的usb接口没了 能配吗(无线鼠标的usb接口怎么拔下来)

    无线鼠标的usb接口没了 能配吗(无线鼠标的usb接口怎么拔下来)

  • vivoy5s呼吸灯怎么设置(vivox50呼吸灯)

    vivoy5s呼吸灯怎么设置(vivox50呼吸灯)

  • 怎样发布抖音视频(怎样发布抖音视频有收益)

    怎样发布抖音视频(怎样发布抖音视频有收益)

  • 小米相册如何竖版显示(小米手机相册横屏怎么调成竖屏)

    小米相册如何竖版显示(小米手机相册横屏怎么调成竖屏)

  • 1660ti和1650ti差多少(1660ti和1650ti区别大吗)

    1660ti和1650ti差多少(1660ti和1650ti区别大吗)

  • 荣耀30 尺寸(荣耀30尺寸是多少)

    荣耀30 尺寸(荣耀30尺寸是多少)

  • iphonese2有3dtouch吗

    iphonese2有3dtouch吗

  • qq聊天记录突然少了一段(QQ聊天记录突然消失了)

    qq聊天记录突然少了一段(QQ聊天记录突然消失了)

  • 听力耳机和正常耳机有啥区别(听力耳机跟普通耳机不一样吗)

    听力耳机和正常耳机有啥区别(听力耳机跟普通耳机不一样吗)

  • 用绿联快充会伤苹果电池吗(绿联快充会损坏电池吗)

    用绿联快充会伤苹果电池吗(绿联快充会损坏电池吗)

  • 标准源是什么(标准来源于)

    标准源是什么(标准来源于)

  • 抖音在线怎么看出(抖音在线怎么看不了)

    抖音在线怎么看出(抖音在线怎么看不了)

  • 电脑可以下载快手吗(电脑可以下载快手软件吗)

    电脑可以下载快手吗(电脑可以下载快手软件吗)

  • word怎样直接打印双面(word怎样直接打开excel文件)

    word怎样直接打印双面(word怎样直接打开excel文件)

  • ipad怎么录音(iPad怎么录音系统声音)

    ipad怎么录音(iPad怎么录音系统声音)

  • OPPO k5怎么隐藏应用(oppok5怎么隐藏游戏)

    OPPO k5怎么隐藏应用(oppok5怎么隐藏游戏)

  • 抖音直播怎么关礼物特效(抖音直播怎么关闭同城不让同城看见)

    抖音直播怎么关礼物特效(抖音直播怎么关闭同城不让同城看见)

  • 华为p30摄像带美颜吗(华为p30相机自带的美颜功能能不能设置)

    华为p30摄像带美颜吗(华为p30相机自带的美颜功能能不能设置)

  • 手机被拉黑了怎么打通(手机号被拉黑怎么破解)

    手机被拉黑了怎么打通(手机号被拉黑怎么破解)

  • 苹果x64g和256g的区别

    苹果x64g和256g的区别

  • xr卡死怎么办(xr有时候卡死机啥情况)

    xr卡死怎么办(xr有时候卡死机啥情况)

  • 华为nova4锁屏时间位置怎么改(华为nova4锁屏时间设置在屏幕上方)

    华为nova4锁屏时间位置怎么改(华为nova4锁屏时间设置在屏幕上方)

  • 苹果手机怎么取消qq音乐自动续费(苹果手机怎么取消震动功能)

    苹果手机怎么取消qq音乐自动续费(苹果手机怎么取消震动功能)

  • 苹果图虫怎么删除视频(图虫作品删除在哪里)

    苹果图虫怎么删除视频(图虫作品删除在哪里)

  • 哪些进项税额可以抵扣销项税额
  • 弥补以前年度亏损会计分录
  • 独立核算的优点
  • 税务机关六位地区编码是什么
  • 科技公司增值税率是多少
  • 供货商对账单跨月返利怎么做账?
  • 公司购买设备24套
  • 退交税钱
  • 收到投资款需要什么原始凭证
  • 住宿专票怎么入账
  • 哪些研发费用可以资本化
  • 门店里备用客户喝的茶叶怎么入账?
  • 有限合伙创投企业
  • windows history命令
  • mac本host文件
  • 超市预售卡怎么记账
  • php字符串函数有哪些
  • PHP:curl_error()的用法_cURL函数
  • 购进免税农产品进行进项税额抵扣时,其抵扣率为
  • 埃托沙国家公园发展观兽旅游的优势条件
  • 森林里雾气弥漫,给大家带来了什么困难?
  • 预收账款通俗易懂的说法
  • 税法工资薪金总额
  • 发票认证相符什么意思
  • springboot用法
  • 强化学习——Q-Learning算法原理
  • 智慧工厂协同管控下载
  • 小规模能取得专用发票吗
  • 所得税汇算清缴报告在哪查
  • 商户待清算账户是什么
  • 土地增值税预征税率一览表
  • 其他综合收益涉及到的业务
  • 帝国cms功能
  • 什么是税金?
  • 银行进账单是外来原始凭证吗
  • 微信红包是否缴纳个税
  • mustn't be allowed
  • 企业出租专利技术收取的租金不得确认为收入对吗
  • 债权人债务重组损益计入什么科目
  • 应收账款账龄计提坏账比例
  • 库存商品总分类账范本
  • 小规模纳税人代账费用
  • 公司给非本单位的个人转账有风险怎么平账
  • 一般纳税人认定标准2023年
  • 复利年金的区别
  • 收到定期存款怎么做分录
  • 冲销主营业务收入怎么做分录
  • 租户押金抵房租
  • 欠钱打官司后利息怎么算
  • 进出口企业外汇额度
  • 员工工资占公司收入
  • 没有水电费发票可以入账吗
  • 员工伤残补助会计分录
  • 上次年检怎么查
  • mysql基于什么模型
  • sqlgun
  • 脱机文件怎么办
  • 启动mac问号文件夹闪烁怎么办
  • win7更改电脑设置在哪里
  • 苹果mac与平板的区别
  • ssh可防止什么攻击
  • ibm文件是什么意思
  • linux命令的参数
  • Win10 PC版 Build 14328上手体验视频评测
  • 升级win10系统后无法联网的三种解决方法
  • unity优化技术
  • opengl纹理贴图正方体六个面
  • nodejs登录成功跳转
  • unity 3d ui
  • javascript html5实现表单验证
  • shell脚本windows
  • node.js异步编程
  • linux查看shell脚本内容
  • JavaScript基本语法与页面对象的应用
  • python装饰器初探(推荐)
  • asyncio使用
  • 吉林省国家税务局官网
  • 非涉密网络严禁什么
  • 内蒙古国家税务总局电子税务局官网
  • 太原公交车咨询电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设