实现多并发的web服务端

import spcketfrom threading import Threadserver=socket.socket() #实例化socket对象
server.bind(('127.0.0.1',10086)) #绑定地址及应用端口号
server.listen() #建立连接def feedback(conn):client_msg=conn.recv(1024) #接收连接请求   print(client_msg) #打印请求内容path=client_msg.split('\r\n')[0].split(' ')[1]   #获取请求的文件if path=='/':     conn.send(b'HTTP/1.1 200 ok \r\n\r\n')      #响应 协议版本:HTTP/1.1 状态码:200 状态码的描述 回车符换行符with open('dome.html','rb')as f_html:    data=f_html.read()conn.send(data)     #发送请求文件conn.close()if path=='/dome.css':     conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('dome.css','rb')as f_css:data=f_css.read()conn,send(data)conn.close()if path =='/dome.js':     conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('dome.js','rb')as f_js:data=f_js.read()conn.send(data)conn.close()if path=='/background.jpg':     conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('background.jpg','rb')as f_bg:data=f_bg.read()conn.send(data)conn.close()if path=='/favicon.ico':     conn.send(b'HTTP/1.1 200 ok \r\n\r\n')with open('favicon.ico','rb')as f_ico:data=f_ico.read()conn.send()conn.close()while True:conn,addr=server.accept()   #获取连接t=Thread(target=fun,args=(conn,))   #设置线程t.start()   #开启线程

HTTP协议

http协议使超文本传输协议,位于osi七层的应用层,协议规定的就是请求与响应双方的一个消息格式,请求(请求行,请求头,空行 请求数据)

HTTP请求格式

请求方法 空格 URL(即请求文件路径) 空格 协议版本 回车符 换行符    ps:(请求行)

头部字段名 冒号 值 回车符 换行符   ps:(请求头部 可能会有多行)

回车符 换行符

请求数据

HTTP响应格式

协议版本 空格 状态码 空格 状态码描述 回车符 换行符 ps:(状态行)

头部字段名 冒号 值 回车符 换行符  ps:(响应头部 可能会多行)

回车符 换行符

响应正文(.htm .css .js等)

请求方法:get post put delete patch options connect gead

状态码:1xx 待处理

     2xx 成功

     3xx 待跳转

     4xx 语法错误

        5xx 服务器错误

转载于:https://www.cnblogs.com/lttlpp61007188/p/10871609.html

Web框架与HTTP协议相关推荐

  1. Python之简易Web框架搭建

    Python之简易Web框架搭建 Web框架介绍 WSGI协议 Web框架开发 项目结构 MyWebServer.py 之前的静态服务器代码 WSGI协议的要求 更新代码 framework.py 返 ...

  2. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  3. HTTP协议与WEB框架、多任务、进程

    HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是应用层协议.HTTP是万维网的数据通信的基础. HTTP协议概述 HTTP是一个客户端 ...

  4. web服务器和框架之间的协议

    uWSGI与uwsgi和WSGI以及Nginx的概念 1 WSGI像是一座桥梁,一边连着web服务器,另一边连着用户的应用.就是web服务器与框架之间的协议. 全称 Web Server Gatewa ...

  5. web基础知识(3)--HTTP协议与web框架与其他

    一.HTTP协议 HTTP(Hyper Text Transfer Protocol 超文本传输协议 )协议是基于TCP/IP协议的用于传递数据的协议,其默认端口为80/TCP,简单来说就是客户端与服 ...

  6. Django web框架

    Web框架 web 框架本质  -  Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. HTTP协议 HTTP协议介绍HTTP协议对收发消息的格式要求每个HTTP ...

  7. web框架总结(django、flask)

    1.MVC解读 M:Model,模型,和数据库进行交互 V:View,视图,负责产生Html页面 C:Controller,控制器,接收请求,进行处理,与M和V进行交互,返回应答. 1.用户点击注 2 ...

  8. 带你理清Node.js 的Web框架的3个层次

    web 框架指的是处理 http.https 的服务端框架,Node.js 提供了 http.https 模块用于处理协议数据,这是 web 框架的基础. 但是 http.https 的 api 过于 ...

  9. Python微型Web框架Bottle源码分析

    Bottle 是一个快速,简单和轻量级的 WSGI 微型 Web 框架的 Python.它作为单个文件模块分发,除了 Python 标准库之外没有依赖关系. 选择源码分析的版本是 Release 于 ...

最新文章

  1. JAVA数组的定义及用法
  2. HttpServletResponse 的 sendError( )方法以及常用的HttpServletResponse常量级错误代码
  3. @property、@sythesize以及Ivar和@dynamic讲解(下)
  4. 123456789怎样运算等于1?答案可能很多,写个你最简单的方法
  5. 再探ChannelPipeline 的初始化
  6. python如何实现人工智能应用锁_如何清除应用锁的数据库
  7. sql简介_SQL表简介
  8. Canvas drawImage
  9. Web渗透测试实战——(2.1)Metasploit 6.0初步
  10. 摆脱晚睡拖延症其实很简单……
  11. 蛋白组+代谢组联合分析
  12. vue项目强制清除页面缓存
  13. ftp木马病毒photo.scr,Video.scr,AV.scr文件处理方法(windows服务器)
  14. 状态模式——你若安好,便是晴天
  15. 删除Windows11和WIN10桌面图标小箭头
  16. 第4讲 李群和李代数
  17. 3手机版怎么换行_全国青少年普法网手机怎么登录 教育部普法网手机版登录入口https://user.qspfw.com/page/login...
  18. linux串口蜂鸣器报警电路,基于51单片机的蜂鸣器鸣叫震动主从机同步报警设计-BELL--(电路图+程序源码)...
  19. acer台式电脑怎么重装系统_acer台式电脑怎么重装系统
  20. ES文件传输助手1.0.0

热门文章

  1. 第94课 函数的参数 《小学生C++编程入门》 例94.1
  2. 【docker】第三节:nginx通过外部无法访问的情况解决方法。
  3. go test 如何输出到控制台_深度剖析 Go 中的 Go 协程 (goroutines) -- Go 的并发
  4. Echarts笔记-折线图定制(Y轴百分数,鼠标移动显示百分数,显示X轴,Y轴值)
  5. Leaflet文档阅读笔记-Zoom levels笔记
  6. 前端笔记-对webpack和vue的基本认识
  7. C/C++ OpenCV五种滤波器综合示例
  8. python 调用 tensorflow.dll_python tensorflow导入DLL加载失败
  9. 腾讯安全科恩实验室发布最新研究成果,针对奔驰车载娱乐系统的安全研究
  10. css里slidebottom,jquery - 从CSS“top”到“bottom”的jQuery动画 - 堆栈内存溢出