zoukankan      html  css  js  c++  java
  • http协议 form表单 ajax上传文件区别

    1.http协议 :超文本传输协议

    四大特性  、  数据格式  、响应状态码

        1.四大特性
            1.基于请求响应
                一次请求对应一次响应 
            2.基于TCP/IP作用于应用层之上的协议
            3.无状态
                不保留客户端的状态
                无论你来多少次 我都待你入初见
                cookie   session    token  ...
            4.无连接
                长链接   websocket(类似于http协议的大补丁)  聊天室相关
            
        2.数据格式
            请求格式
                请求首行(请求方式 协议版本)
                请求头(一大堆k,v键值对)
                
                请求体(携带的数据 并不是一直都有 有时候可能是空的 取决于你的请求方式)
            
            
            
            响应格式
                响应首行(响应状态码)
                响应头(一大堆k,v键值对)
                
                响应体(浏览器展示给用户看的数据)
        
        3.响应状态码
            用数字来表示一大堆提示信息
            1XX:服务端已经成功接收到客户端的数据正在处理  你可以继续提交
            2XX:200请求成功 服务端已经返回了你想要的数据
            3XX:重定向(原本想访问A但是内部自动给你转到了B上面)
            4XX:404请求资源不存在,403你当前不具备请求该资源的条件
            5XX:500服务端内部错误 机房卓火了 宕机  爆炸了
            公司内部可以自己定制自己的响应状态码

    2.form 表单

        form表单
        关键性的属性
            action
                控制的数据的提交路径
                1.不写  默认朝当前页面所在的地址提交
                2.全路径  
                3.后缀(/index/)
            
            method
                控制提交方式
                form表单默认是get请求  method='get'
                你可以指定成post请求   method='post'
            enctype
    控制的数据提交的编码格式
    默认情况下form表单是不能够直接发送文件的
    如果你要发送文件 必须将该参数有默认的urlencoded改为formdata
    form表单
                默认是urlencoded编码格式传输数据
                urlencoded数据格式
                    username=jason&password=123
                    django后端针对该格式的数据 会自动解析并帮你打包到request.POST中
                formdata数据格式
                    django后端针对符合urlencoded编码格式数据(普通键值对)还是统一解析到request.POST中
                    而针对formdata文件数据就会自动解析放到request.FILES中
    
    
    form表单    不能发送application/json 格式数据   

     

    3.Ajax可以发送application/json格式数据   上传文件使用 formdata对象

    4.form表单请求 与 ajax请求前后台数据交互格式区别

    form表单 前台发送大字典 ==》后台接收大字典 request.POST  request.FILES ==》可以locals()返回 模板语法渲染,或jsonresponse返回

    ajax 前台发送json格式   ==》 后台接收json格式数据不做任何处理,request.body==》  后台可以直接jsonresponse返回  字典    ===》data. 的方式取值



  • 相关阅读:
    Linux下源码安装Kong网关
    nodejs.cn-Node.js-入门教程:Node.js 从命令行接收参数
    nodejs.cn-Node.js-入门教程:如何使用 Node.js REPL
    nodejs.cn-Node.js-入门教程:如何从 Node.js 读取环境变量
    nodejs.cn-Node.js-入门教程:如何从 Node.js 程序退出
    nodejs.cn-Node.js-入门教程:从命令行运行 Node.js 脚本
    nodejs.cn-Node.js-入门教程:V8 JavaScript 引擎
    nodejs.cn-Node.js-简单介绍:Node.js 与浏览器的区别
    nodejs.cn-Node.js-简单介绍:使用 Node.js 需要了解多少 JavaScript
    nodejs.cn-Node.js-简单介绍:如何安装 Node.js
  • 原文地址:https://www.cnblogs.com/bigbox/p/12561891.html
Copyright © 2011-2022 走看看