• HTTP服务器


    基于TCP的web服务器:使用套接字与并发模式

    向客户端返回HTML页面,向程序员返回API

    10.1WSGI

    Python服务被编写为CGI脚本,收到请求出发CGI脚本。

    服务器分割HTTP请求,参数以环境变量传入CGI脚本

    为每个请求启动新进程

    服务器同时支持静态与动态内容

    web服务器网关接口:WSGI

    任何问题都可以通过添加中间层解决

    通过WSGI提供的中间层,python编写的HTTP服务与Web服务器交互

    WSGI:调用惯例。

    WSGi应用程序:可被调用,Input:2(environ字典——CGI环境变量的扩充,可调用对象)

    return:可迭代对象生成字符串,或直接返回字符串

    未来Python服务:一系列WSGI包装函数。提供:认证,捕捉异常,记录日志等功能

    主要原因:应用程序/框架与web服务器之间的可插拔性

    10.2异步服务器与框架

    WSGi尚未支持协程的异步服务器

    WSGi可调用对象设计面向传统的多线程,多进程服务器

    需要IO操作时,可调用对象被阻塞

    没有提供可调用对象返还控制权给主服务器的机制(主程序轮流调度不同可调用对象)

    异步将整个逻辑分为多个小型非阻塞代码块

    处理异步问题的python 项目,在各自的引擎上提供一个HTTP服务器,自行指定调用惯例(将解析得到的请求信息传递给处理请求的代码)

    无法单独选择异步服务器与web框架

    asyncio引擎:提供一个统一的接口,不同的异步框架直接用不同的事件循环实现

    没有指定专用于HTTP消息的API

    使用异步引擎需选择合适的服务器——框架(解析请求构造响应)组合

    10.3前向代理与反向代理

    HTTP代理:HTTP服务器,接收请求(服务器),转发(客户端)

    前向(客户端):缓存重复请求的资源。随着隐私与安全的强化,请求不可解析。

    反向代理:保存缓存。检查有效期。缓存失效则将请求发送给服务器

    审查请求的合法性

    缓存相关的HTTP头与客户端相关,也与服务器架构间通信相关

    中间层缓存

    10.4  4种架构

    python服务器,直接调用WSGI接口

    如果使用异步引擎,服务器与框架必须运行在同一进程

    Apache  c引擎  静态资源请求

    mod_wsgi启动守护进程,调用python解释器

    不适用于异步框架

    前端服务器Apache:返回静态文件,负载均衡

             :反向代理python动态资源服务

    反向代理——Apache——pythonHTTP服务器

    架构的选择:Cpython的三个运行时特性,解释器内存占用大,解释器运行慢,全局解释器锁(GIL)

    GIL:禁止多个线程同时运行Python字节码

      鼓励多个独立的进程,而非共享进程空间的多个python线程。相对的解释其占内存,同时存在的python实例有限,进程数有限。

    10.5

    传统的而

  • 相关阅读:
    Memcached通信协议
    quartz在集群环境下的最终解决方案
    在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全
    微软MVC框架实战:开源的JS库Knockout
    EL表达式
    Hadoop安装配置
    Memcached安装
    Maven对不同的测试环境用不同的参数进行打包
    项目管理案例:赢与非输之别
    十年WEB技术发展历程
  • 原文地址:https://www.cnblogs.com/qmcj/p/9230725.html
Copyright © 2020-2023  润新知