zoukankan      html  css  js  c++  java
  • Django框架导读

    http协议:基于TCP/IP协议基础上的应用层协议,底层实现仍为socket(HyperText Transport Protocol)是超文本传输协议

    基于请求-响应模式:通信一定是从客户端开始,服务器端接收到客户端一定会做出对应响应

    无状态:协议不对任何一次通信状态和任何数据做保存

    无连接:一次连接只完成一次请求-响应,请求-响应完毕后会立即断开连接

    请求:

    请求行:GET|POST(请求方式)/(请求路径)

    HTTP/1.1(http协议版本)

    请求头:...

    请求体:GET 请求体放在请求路径后进行拼接 POST会在请求行与请求头结束后,以数据包方式单独发送

    响应:

    响应行:HTTP/1.1(http协议版本) 200(状态码) OK(状态结束)

    响应头:(了解)

    响应体:具体的数据

    web应用

    运行在浏览器上的应用

    c/s  b/s 架构

    client/server:客户端服务器架构,C++

    brower/server:浏览器服务器架构,Java,Python底层均是基于socket

    Python  Web框架

                   socket  页面路由  模板渲染

    Django    wsgiref  自己写的  自己写的  功能全面

    Flask       第三方    自己写的   自己写的   小而轻

    Tornado   自己写    自己写的   自己写的        支持高并发

     浏览器错误:发送的响应无效,原因:响应不满足http协议

    请求发来的数据:

    b'GET / HTTP/1.1

    HOST: 127.0.0.1:8801

    Connection: keep-alive

    Upgrade-Insecure-Requests:1

    User-Agent:Mozilla/5.0 (Macintosh;Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML,like Gecko)Chrome/70.0.3538.110 Safari/537.36

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

    Accept-Encoding: gzip, deflate, br

    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
    Cookie: csrftoken=szfYLDVuqvRhlveNpNE2rp1GYOcI5x7                                    
    mRNfvkRWTMRNRwWxXMZWOhL1MqknYJ7jg; sessionid=3pphvmw
    2icub0bea7nn02u6wev17k4uw
    '

    http工作原理:(事物)

    一次http操作称之为一个事物,工作过程可分为四步

    客户端与服务器建立连接

    客户端发生一个http协议指定格式的请求

    服务器端接收请求后,响应一个http协议指定格式的响应

    客户端将服务器的响应显示展现给用户

    - 请求报文

    ```python
    # 请求行 请求头 请求体
    '''
    POST / HTTP/1.1
    Host: 127.0.0.1:8001
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

    usr=abc&pwd=123
    '''

    - 响应报文

    ```python
    # 响应行 响应头 响应体
    '''
    HTTP/1.1 200 OK
    Content-type:text/html

    Login Success
    '''

    - [状态码](https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81)

    ```python
    # 1打头:消息通知
    # 2打头:请求成功
    # 3打头:重定向
    # 4打头:客户端错误
    # 5打头:服务器端错误

    # 设置路由
    urls = {
    # 请求路径与请求处理函数一一对应
    '/index': index,
    favicon.jpeg: ico,
    '/user': user
    }

  • 相关阅读:
    Android笔记(ImageView、BaseLine、进度条ProgressBar)
    Android笔记(dp、sp、px、多选按钮CheckBox、单选按钮RadioButton)
    Android笔记(简介)
    Android Studio安装后Fetching android sdk component information超时的解决方案
    解决The environment variable JAVA_HOME does not point to a valid JVM installation
    使用Genymotiont调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
    Android Studio导入第三方jar包及.so动态库
    数据库知识记录
    CentOS7.5下yum安装MySQL8.0.11笔记
    MyBatis的mapper.xml中判断集合的size
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10431223.html
Copyright © 2011-2022 走看看