• Web工作流程


    1 web项目工作流程

    1.1 了解web程序工作流程

    1.2 django生命周期

    	   HTTP          uwsgi         uwsgi                    WSGI
    浏览器 ------> Nginx ------> uWSGI ------> PythonWSGImodule ------> Python application
             (web服务器)(web服务器)(web服务器)               (python专用web协议)    web应用
    
    1.Django不识别http请求 此时就用到了uwsgi ,uwsgi把http请求转化为wsgi请求,wsgi请求处理完通过uwsgi转换成http请求
    2.wsgi是一种通信协议、wsgi应用可以在任何服务器上运行
    

    image-20201026162822997

    2 django介绍

    • web框架的本质就是接受客户端请求,根据请求查询数据库,把需要的数据返还给客户端

    2.1 Django的优势

    	快速开发,MVT,功能齐全(大而全的框架)
    

    2.2 Django VS flask

    	1)开发数据驱动web网站(复杂业务逻辑)数据量大的时候,django性能不太好
    
    	2)数据分析后的结果展示界面:flask(数据分析)轻小巧灵活
    

    ​ 3)快速成型应用上线:Django(接口)特别大特别全

    3 django设计模式

    3.1 MVC

    M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。

    V全拼为View,用于封装结果,生成页面展示的html内容。

    C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。

    3.2 MVT

    M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。

    V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。

    T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html( 或者是json数据 )。

    3.2Http请求方式

                1).Http/1.1写一张共定义了八种方法来表明Request-URL指定的资源不同的操作方式
                
                2).Http1.0定义了三种请求方法: GET,POST,和HEAD方法
    
                3).Http1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法
    

    八种请求方式

         1.GET 请求指定信息并返回实体主体
         2.HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用来获取报头
         3.POST 向指定资源提交数据进行处理请求。数据被包含在请求体中,post请求可能会导致新的资源/已有资源篡改
         4.PUT 发送指定数据取代指定文档内容
         5.DELETE  删除指定内容/页面
         6.CONNECT HTTP/1.1协议中预留能够连接改为管道方式的代理服务器
         7.OPTIONS  允许客户端查看服务器的性能
         8.TRACE 回显服务器收到的请求,主要用于测试或诊断
    
          1.1xx 信息 接收成功 继续处理
          2.2xx 成功 操作成功的收到,理解和接受
          3.3xx 重定向 为了完成请求,必须采取进一步措施
          4.4xx 客户端错误 请求的语法有错误 或不能完全被接受
          5.5xx 服务器错误 服务器不能完成有效的请求
    

    HTTP请求区别

          1.请求行→→请求头→→请求体
          
          
          2.delete、get是没有请求体的,其通过路由方式传参
    
          3.post、put 拥有请求体 相对于其他请求post和put 更安全一些
    
    
          4.区别是 方式不一样(delete,get通过路由传参)    (post,put通过请求体传参数),方法不一样
          
    

    三次握手和四次挥手的理解


    
    握手之前主动打开连接的客户端结束CLOSED阶段,被动打开的服务器端也结束CLOSED阶段,并进入LISTEN阶段。随后开始“三次握手”:
    
    (1)首先客户端向服务器端发送一段TCP报文,其中:
    
    标记位为SYN,表示“请求建立新连接”;
    序号为Seq=X(X一般为1);
    随后客户端进入SYN-SENT阶段。
    (2)服务器端接收到来自客户端的TCP报文之后,结束LISTEN阶段。并返回一段TCP报文,其中:
    
    标志位为SYN和ACK,表示“确认客户端的报文Seq序号有效,服务器能正常接收客户端发送的数据,并同意创建新连接”(即告诉客户端,服务器收到了你的数据);
    序号为Seq=y;
    确认号为Ack=x+1,表示收到客户端的序号Seq并将其值加1作为自己确认号Ack的值;随后服务器端进入SYN-RCVD阶段。
    (3)客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,结束SYN-SENT阶段。并返回最后一段TCP报文。其中:
    
    标志位为ACK,表示“确认收到服务器端同意连接的信号”(即告诉服务器,我知道你收到我发的数据了);
    序号为Seq=x+1,表示收到服务器端的确认号Ack,并将其值作为自己的序号值;
    确认号为Ack=y+1,表示收到服务器端序号Seq,并将其值加1作为自己的确认号Ack的值;
    随后客户端进入ESTABLISHED阶段。
    服务器收到来自客户端的“确认收到服务器数据”的TCP报文之后,明确了从服务器到客户端的数据传输是正常的。结束SYN-SENT阶段,进入ESTABLISHED阶段。
    
    在客户端与服务器端传输的TCP报文中,双方的确认号Ack和序号Seq的值,都是在彼此Ack和Seq值的基础上进行计算的,这样做保证了TCP报文传输的连贯性。一旦出现某一方发出的TCP报文丢失,便无法继续"握手",以此确保了"三次握手"的顺利完成。
    
    此后客户端和服务器端进行正常的数据传输。这就是“三次握手”的过程。
    
  • 相关阅读:
    win8应用商店安装路径
    GridView用存储过程实现分页
    Struts学习笔记之HTML标签库
    一个大学毕业生的反思
    JUnit in Action关于Controller的简明阐述
    Struts学习笔记之BEAN标签库
    Struts中web.xml和strutsconfig.xml配置详解
    Os学习笔记之处理机调度
    log4j.properties配置详解
    JUnit学习笔记之简介
  • 原文地址:https://www.cnblogs.com/msdreamer/p/14009766.html
Copyright © 2020-2023  润新知