发表于: 2019-11-14 22:01:00

1 1129


今天完成的事情:

今天新学到一个请求的方式put请求,之前对请求稍微熟悉的就只有两种,get请求和post请求,get请求是最常用的。
Http定义了与 服务器的交互方法,其中除了一般我们用的最多的GET,POST 其实还有PUT和DELETE
根据RFC2616标准(现行的HTTP/1.1)其实还有OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT
简单地介绍一下吧。
http 的post 和 get 方法确实很多,通俗解释就是-------
新建一条记录的话就用post,
更新一条记录的话就用put.
<POST>
POST 方法被用于请求源服务器接受请求中的实体作为请求资源的一个新的从属物
POST方法的实际功能是由服务器决定的,并且经常依赖于请求URI(Request-URI)。POST提交的实体是请求URI的从属物,就好像一个文件从属于一个目录,一篇新闻文章从属于一个新闻组,或者一条记录从属于一个数据库。POST方法执行的动作可能不会对请求URI所指的资源起作用。在这种情况下,200(成功)或者204(没有内容)将是适合的响应状态,这依赖于响应是否包含一个描述结果的实体。如果资源被源服务器创建,响应应该是201(Created)并且包含一个实体,此实体描述了请求的状态。并且引用了这个新资源和一个Location头域。POST方法的响应是不可缓存的。除非响应里有合适的Cache-Control或者Expires头域。然而,303(见其他)响应能被用户代理利用去获得可缓存的响应。
<PUT>
PUT方法请求服务器去把请求里的实体存储在请求URI(Request-URI)标识下。
如果请求URI(Request-URI)指定的的资源已经在源服务器上存在,那么此请求里的实体应该被当作是源服务器关于此URI所指定资源实体的最新修改版本。如果请求URI(Request-URI)指定的资源不存在,并且此URI被用户代理定义为一个新资源,那么源服务器就应该根据请求里的实体创建一个此URI所标识下的资源。如果一个新的资源被创建了,源服务器必须能向用户代理(user agent) 发送201(已创建)响应。如果已存在的资源被改变了,那么源服务器应该发送200(Ok)或者204(无内容)响应。如果资源不能根据请求URI创建或者改变,一个合适的错误响应应该给出以反应问题的性质。实体的接收者不能忽略任何它不理解和不能实现的Content-*(如:Content-Range)头域,并且必须返回501(没有被实现)响应。如果请求穿过一个缓存(cache),并且此请求URI(Request-URI)指示了一个或多个当前缓存的实体,那么这些实体应该被看作是旧的。PUT方法的响应是不可缓存的。
POST方法和PUT方法请求最根本的区别是请求URI(Request-URI)的含义不同。POST请求里的URI 指示一个能处理请求实体的资源(译注:此资源可能是一段程序,如jsp 里的servlet) 。此资源可能是一个数据接收过程,一个网关(gateway,注:网关和代理的区别是:网关可以进行协议转换,而代理不能,只是起代理的作用,比如缓存服务器其实就是一个代理),或者一个单独接收注释的实体。
PUT方法请求里的URI标识请求里封装的实体一一用户代理知道URI 意指什么,并且服务器不能把此请求应用于其它资源(resource)。如果服务器期望请求被应用于一个不同的URI,那么它必须发送301(永久移动)响应;用户代理可以自己决定是否重定向请求。一个单独的资源可能会被许多不同的URI指定。如:一篇文章可能会有一个URI指定当前版本,而这个URI区别于这篇文章其它特殊版本的URI。这种情况下,对一个通用URI的PUT请求可能会导致其资源的其它URI请求被源服务器重定义。HTTP/1.1没有定义PUT方法对源服务器的状态影响。


今天还在做出了上下线功能,也是蛮简单的,就是一个if判断,然后上线和下线的变量名是一样的,这样上线和下线都是同一个变量,设置点击的时候弹出提示框,确定之后改变其状态就行了。


//上下线
changeSts(idrow) {
   if (row === 1) {
       row 2;
       var "上线"
   else {
       row 1;
       var "下线"
   }

   this.$confirm('此操作将该文件' ', 是否继续?''提示', {
       confirmButtonText'确定',
       cancelButtonText'取消',
       type'warning'
   }).then(() => {

       this.$axios.put('/api/a/u/article/status', {ididstatusrow,},
           {
               transformRequest: function (obj) {
                   var str [];
                   for (var in obj) {
                       str.push(encodeURIComponent(p"=" encodeURIComponent(obj[p]));
                   }
                   return str.join("&");
               }
           },
       );
       this.getRequest();


       this.$message({
           type'success',
           message'成功!'
       });
   }).catch(() => {
       this.$message({
           type'news',
           message'已取消' c
       });
   });

},


写代码的时候,一定不要着急写,要先理清楚他的逻辑是什么,怎么样来实现它,想清楚之后绝对事半功倍。认真的捋一捋,找出其中的关系。



明天计划的事情:明天开始写编辑页面,至少要写出来一大半吧,生下来的比较难的可以先搁置一下,但是样式啥的应该能搞定。


收获:


今天感冒了,状态是真不好,都做不住,头热的厉害,还晕,鼻子不通气,一直流鼻涕,明天去买点药吧。收获就写出来了个上下线功能,还是比较少的。



返回列表 返回列表
评论

    分享到