后端开发 (1)

后端开发

  1. HTTP (HyperText Transfer Protocol)
  2. Python 系常见 Web 框架
    • Django
      • 大而全,内部耦合比较紧凑,插件丰富,适合快速开发
    • Flask
      • 精而简,便于二次开发和扩展开发,生态环境好,插件丰富
    • Tornado
      • 异步处理,性能优异
    • Falcon
      • 适合做 API 服务
    • web.py
      • 代码优秀,适合学习
    • bottle
      • 单文件框架
  3. 点击一个链接后, 都发生了什么
    1. 浏览器解析
    2. DNS 解析
    3. 建立 TCP 连接
    4. 浏览器发送请求文本
    5. 服务器执行程序
    6. 服务器返回响应文本
    7. 客户端接收
    8. 客户端关闭连接
    9. 客户端渲染页面
  4. 最简单的 Server
    • HTTPServer: 只负责接收和关闭连接
    • WSGI: 沟通 HTTPServer 和 Web 应用程序 之间的接口
    • Web 应用程序
  5. cookie 和 session
    • 异同
      1. session 在服务器端, cookie 在客户端(浏览器)
      2. session 默认被存在在服务器的一个文件里(不是内存)
      3. session 的运行依赖 session id, 而 session id 是存在 cookie 中的, 也就是说, 如果浏览器禁用了 cookie , 同时 session 也会失效(但是可以通过其它方式实现, 比如在 url 中传递 session_id)
      4. session 可以放在 文件、数据库、或内存中都可以。
      5. 用户验证这种场合一般会用 session
    • 产生
    • 使用
  6. GET 和 POST
    • 表象
      • GET在浏览器回退时是无害的, 而POST会再次提交请求。
      • GET产生的URL地址可以被Bookmark, 而POST不可以。
      • GET请求会被浏览器主动cache, 而POST不会, 除非手动设置。
      • GET请求只能进行url编码, 而POST支持多种编码方式。
      • GET请求参数会被完整保留在浏览器历史记录里, 而POST中的参数不会被保留。
      • GET请求在URL中传送的参数是有长度限制的(URL 的最大长度是 2048 个字符), 而POST么有。
      • 对参数的数据类型, GET只接受ASCII字符, 而POST没有限制。
      • GET比POST更不安全, 因为参数直接暴露在URL上, 所以不能用来传递敏感信息。
      • GET参数通过URL传递, POST放在Request body中。
    • 深层
      • GET产生一个TCP数据包;POST产生两个TCP数据包。
      • GET, 浏览器会把 http 的 header和data一并发送出去, 服务器响应200(返回数据);
      • POST, 浏览器先发送 header, 服务器响应 100 continue, 浏览器再发送data, 服务器响应200 ok(返回数据)。
  7. Python 环境加载
    • sys.argv
    • sys.path
    • os.environ
  8. Django 中间件
    • process_request
    • process_view
    • process_response
    • process_exception
    • 执行顺序
      • process_request, process_view 正向执行
      • process_response, process_exception 反向执行
  9. 模板
    • jinja2
    • HTML
    • css
    • js
  10. ORM
    • 什么是 ORM
    • CURD (Create/Update/Retrieve/Delete)
  11. 项目
    • 代码结构
    • 常用组件
      • nginx
      • redis
        • pickle 序列化
      • memcached
      • MySQL
        • insert
        • update
        • select
        • delete
        • drop
        • join
        • like
      • apt-get yum
  12. Blog
    1. 看文章
    2. 写文章
    3. 查看文章列表
    4. 根据题目搜索文章
    5. 可以评论
    6. 其他扩展
      1. 实现分页功能: 首页文章列表每页显示 5 篇文章
      2. 写一个中间件, 阻止 ip 地址的尾数是偶数的访客
      3. 写一个装饰器, 将阅读文章的用户IP记录到日志文件中
      4. 阅读计数,独立 ip 计数
      5. 实现一个基于 redis 的文章缓存
      6. 使用 gunicorn 驱动 Django, 对比性能差异
        • 文件描述符
        • 单台服务器最大连接数
        • TCP 连接上限
  13. 静态文件存储
    • 什么是 CDN
    • 分布式文件系统
  14. RESTful
    • URI 对应一个网络资源
    • 四个动词:GET / POST / PUT / DELETE
    • 用四个动词操作网络资源
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值