python web应用框架_Python-web应用 +HTTP协议 +web框架

web架构

# web应用 架构

# C/S 架构 | B/S 架构

# client server: 客户端服务器架构,C++

# browser server:浏览器服务器架构,Java、Python

http协议

什么是http协议

# HTTP(HyperText Transport Protocol)是超文本传输协议

# 基于TCP/IP协议基础上的应用层协议,底层实现仍为socket

# 基于请求-响应模式:通信一定是从客户端开始,服务器端接收到客户端一定会做出对应响应

# 无状态:协议不对任何一次通信状态和任何数据做保存

# 无连接:一次连接只完成一次请求-响应,请求-响应完毕后会立即断开连接

http工作原理(事务)

# 一次http操作称之为一个事务,工作过程可分为四步

# 1.客户端与服务端建立连接

# 2.客户端发生一个http协议指定格式的请求

# 3.服务器端接收请求后,回应一个http协议指定格式的响应

# 4.客户端将服务器的响应显示展现给用户

状态码

# 1打头:消息通知

# 2打头:请求成功

# 3打头:重定向

# 4打头:客户端错误

# 5打头:服务器端错误

原生socket

关注服务器端

#完成B/S架构项目的设计

#Borwser已经完成#Server需要手动书写socket,以http协议方式完成响应

importsocket#设置响应头(包含响应行)

RESP_HEADER = b'HTTP/1.1 200 OK\r\nContent-type:text/html;charset=utf-8\r\n\r\n'

#设置服务器socket相关信息

server =socket.socket()

server.bind(('localhost', 8808))

server.listen(5)print("服务: http://localhost:8808")whileTrue:#获取B以http协议发来的请求

client, address =server.accept()

data= client.recv(1024)#数据报文 包含 请求行 请求头 请求体

print(data)#手动以http协议完成响应

#数据报文 包含 响应行 响应头 响应体

client.send(RESP_HEADER)#/index => 响应主页

#/login => 登录页面

#错误 => 404

#数据data, 字节形式 => 字符串形式

strData = str(data, encoding='utf-8')#解析请求的数据, 分析得到路由

my_route = strData.split('\r\n')[0].split(' ')[1]#后台没有设置的路由,统统以404来处理

dt = b'404'

#设置的路由返回响应的页面文件

if my_route == '/index':

with open('02_index.html', 'rb') as f:

dt=f.read()if my_route == '/login':

with open('02_login.html', 'rb') as f:

dt=f.read()#/favicon.ico该请求是往后台请求标签图标

if my_route == '/favicon.ico':

with open('favicon.ico', 'rb') as f:

dt=f.read()#响应体

client.send(dt)#一次循环,代表一次响应,也就是一次事务的完成, 要关闭http请求连接

client.close()

TTL

11713db58353ea96c9070b041a9a05ba.png

416fd093ddcfd8325545080c5a5c554c.png

76ea6d3424c9196c92e18cb4ebf3a599.png

298f4a8a5bc063e5df20cbe377ad6829.png

228cf78bf0d741dac6a439ed829db12b.png

a4793a86ae83a693ffed2b93525bfd19.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值