1. web框架
1.1 web工作原理
1.1.1 web服务器
- HTTP:超文本传输协议
- HTTP四大特性
- 基于TCP/IP,作用于应用层之上
- 基于请求响应
- 无状态
- 无连接
- HTTP数据格式
- 请求首行:method+request-URL+http-version
- method:post,get等
- request-URI
- http-version:http版本
- 请求头
- Accept:
- User-Agent:
- Host:
- Accept-Language:
- connection:
- Cookie
- Refer:
- Content-Type:
- Accept-Charset:
- Accept-Encoding:
- 请求体
1.2 web应用
1.2.1 最简单的web框架
# 有问题
import socket
# 创建server对象
server = socket.socket()
server.bind(('127.0.0.1', 8080))
server.listen(5)
# 建立连接
while True:
conn, addr = server.accept()
data = conn.recv(1024)
data = data.decode('utf8').strip()
request_method = data.split(' ')[1]
conn.send(b'HTTP/1.1 200 OK r\nr\n') # 发送响应首行及响应头
# 根据request-URL发送响应体
if request_method == 'login':
conn.send(b'login suncess')
elif request_method == 'hello.html':
with open('hello.html', 'rb') as f:
conn.send(f.read())
else:
conn.send(b'framework test')
conn.close()
1.2.2 请求剖析
1.2.3 web服务器还需要解决的问题
- 检测请求的URL及返回正确的页面
- 如何处理post请求
- 如何解决cookie,session等问题
- 如何让视线并发
1.2.4 解决问题:路由和模板
- 如何将请求的URL映射到处理它的代码上
- 怎样动态地构造请求的HTML返回给客户端