python http源码分析

http源码分析

服务管理

  • HTTPServer继承socketserver.TCPServer,建立实例后serve_forever监听客户端请求

请求头校验

  • http请求完整请求HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ]
  • http请求头行格式request-start-line = method SP request-target SP HTTP-version CRLF(SP空格 CRLF \r\n)
  • http请求头格式header-field = field-name “:” OWS field-value OWS(OWS空格或制表符)
  • SimpleHTTPRequestHandler请求入口handle,handle_one_request处理具体请求
  • handle_one_request先检测第一行长度,调用parse_request详细解析第一行
    • 请求方法不能忽略不传,调用请求方法处理请求内容
  • parse_request中做的校验
    • 版本大于HTTP/1.1才支持多次请求,否则解析完本次请求后结束
    • 不支持HTTP/2.0及以上版本
    • 客户端不传版本默认HTTP/0.9,只支持GET请求
    • 请求头Connection代表客户端要求一次请求或多次请求
  • http.client.parse_headers处理请求头
    • 独行’\r\n’, ‘\n’, ''代表请求头结束

请求方法处理请求返回(GET流程)

  • http请求返回格式HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ]

  • http请求返回头行格式status-line = HTTP-version SP status-code SP reason-phrase CRLF(SP空格 CRLF \r\n)

  • http请求头格式header-field = field-name “:” OWS field-value OWS(OWS空格或制表符)

  • s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值