前端须知的Http常识

Http协议:

  • 超文本传输协议:规定了客户端与服务端消息传输的格式

Http四大特性:

  • 1.基于TCP/IP协议作用于应用层的协议

  • 2.基于请求响应

  • 3.无状态(不管连接多少次都当作第一次来)

  • 4.无连接(一次请求对应一次响应,响应结束http立马断开)

数据格式之请求:

  • 请求首行 b'GET / HTTP/1.1\r\n

  • 请求头(一堆k,v键值对)\r\n

  • 空格\r\n(重点)

  • 请求体(post请求携带的数据)

数据格式之响应:

  • 响应首行

  • 响应头(一堆k,v键值对)

  • 空格\r\n(重点)

  • 响应体(post请求携带的数据)

响应状态码:

  • 1xx:服务器成功接收数据正在处理,可以继续提交其他数据

  • 2xx:请求成功服务器已经将请求的数据发送给你

  • 3xx:重定向

  • 4xx:请求资源不存在或者错误
  • 5xx:服务器错误

动静态网页:

  • 静态网页:

​ 页面上的数据都是写死的不变的

  • 动态网页:

​ 页面上的数据是动态获取到的,比如后端获取当前时间….传递给前端页面

模版渲染:

  • 后端生成的数据直接传递给前端页面使用(并且前端页面可以灵活的操作修改数据)>>>模版语法

  • 模版渲染 模版语法需要依赖于第三方模块jinja2
  • 模板语法 jinja2支持前端直接使用类似于python的语法操作数据

    jinja2的
    <p>{{ user_dic }}</p>
    <p>{{ user_dic.name }}</p>
    <p>{{ user_dic['password'] }}</p>
    <p>{{ user_dic.get('name') }}</p>
    

// 前端的for循环
    {% for user in user_dict %}  <!--[{},{},{},{}]-->
        <tr>
            <td>{{ user.id }}</td>
            <td>{{ user.name }}</td>
            <td>{{ user.password }}</td>
        </tr>
    {% endfor %}

什么是web框架

  • python三大主流web框架
Django:大而全,自带了很多功能模块

Flask:轻量级框架,自带的功能模块少,大部分都是依赖于第三方模块

Tornado:原生的异步非阻塞,主要用在处理高io多路复用的情况

主要的功能:
a:socket
b:路由与视图函数
c:模板渲染

Django:
    a用的别人的 wsgiref
    b自己写的
    c自己写的
Flask:
    a用的别人的 werkzeug
    b自己写的
    c用的别人的 jinja2
Tornado:
    a,b,c都是自己写的

猜你喜欢

转载自www.cnblogs.com/limengda/p/10982381.html