web框架

1. web框架

1.1 web工作原理

1.1.1 web服务器

  • HTTP:超文本传输协议
  • HTTP四大特性
    • 基于TCP/IP,作用于应用层之上
    • 基于请求响应
    • 无状态
      • cookie
      • session
      • token
    • 无连接
  • 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 请求剖析

  • 响应内容格式与HTTP类似

1.2.3 web服务器还需要解决的问题

  • 检测请求的URL及返回正确的页面
  • 如何处理post请求
  • 如何解决cookie,session等问题
  • 如何让视线并发

1.2.4 解决问题:路由和模板

  • 如何将请求的URL映射到处理它的代码上
  • 怎样动态地构造请求的HTML返回给客户端
posted @ 2019-10-20 10:48  油饼er  阅读(174)  评论(0编辑  收藏  举报