get和post区别,安全幂等。class和function的区别

40 阅读4分钟

3-Get和Post,区别,安全和幂等,

1xx:指示信息-表示请求已接收,继续处理 2xx: :成功-表示请求已被成功接收 3xx:重定向-要完成请求必须进行更进一步的操作 4xx:客户端错误-请求有语法错误或请求无法实现 5xx:服务器错误-服务器未能实现合法的请求 200 ok:客户端请求成功 206 partial content:客户发送了一个带有ranget请求,服务器完成了它 301 moved permantly:所请求的页面已经转移至新的url 302 found:所请求的页面已经临时转移至新的url 304notmodified:客户端有缓冲的文档并发出了一个条件性的请求,服务器告诉客户, 原来缓冲的文档还可以继续使用 200 ok客户端请求成功

206客户端发送一个带有range头的get请求服务器完成了他

301 moved permanently所请求的页面已经被转移到新的url 400 bad request:客户端请求有语法错误,不能被服务器所理解 401 unauthorized:请求未经授权,这个状态代码必须和www-authenticate报头域一起使用 403 forbidden:对被请求页面的访问被禁止 404 not found:请求资源不存在 500 internal serverror 服务器发生不可预期的错误原来缓冲的文档还可以继续使用 503 server unavailable:请求未完成,服务器临时过载或当机,一段时间后可能恢复正常

http协议类 post和get的区别 get在浏览器回退时是无害的,而post会再次提交请求 get产生的url地址可以被收藏,而post不可以 ,get请求会被浏览器主动缓存,而post不会,除非手动设置 get请求只能进行url编码,而post支持多种编码方式 get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留 get请求在url中传送的参数是有长度限制的,而post没有限制 对参数的数据类型,get只接受ascii字符,而post没有限制 get比post更不安全,因为参数直接暴露在url上,所以不能用来传递敏感信息 x速度播放 get参数通过url传递,post放在requestbody中

ET 与 POST

1xx:指示信息-表示请求已接收,继续处理 2xx: :成功-表示请求已被成功接收 3xx:重定向-要完成请求必须进行更进一步的操作 4xx:客户端错误-请求有语法错误或请求无法实现 95720316 5xx:服务器错误-服务器未能实现合法的请求 200 ok:客户端请求成功 206 partial content:客户发送了一个带有ranget请求,服务器完成了它 301 moved permantly:所请求的页面已经转移至新的url 302 found:所请求的页面已经临时转移至新的url 304notmodified:客户端有缓冲的文档并发出了一个条件性的请求,服务器告诉客户, 原来缓冲的文档还可以继续使用

class和function的区别

相同点:都可以用作构造函数

不同点:class不可以使用call,apply,bind的方式来改变他的执行上下文

function Person() {
    this.fullName="freeman"
}
const object=new Person
console.log(object)//freeman
class Person{
    constructor(){
        this.fullName="freemen";
    }
}
const object=new Person
console.log(`object`,object)
function sayName(){
    console.log(`this.fullName`,this.fullName)
}
const obj={
    fullName:"freemen"
}
sayName.call(obj)
class Person {
    constructor(){
        this.fullName="frenmen"
    }
}
const obj={
    fullName:"freemen"
}
Person.call(obj)
//class contructor Person cannot be invoked without new

class不可以使用call,apply,bind的额方式改变他的执行上下文

<script>  
    // 相同点:
    // * 都可以用作构造函数 
    // function Persion(){
    //   this.fullName = "freemen";
    // }
    // class Persion{
    //   constructor(){
    //     this.fullName = "freemen";
    //   }
    // }
    // const object = new Persion
    // console.log(`object`, object)
    // 不同点:
    // * class 不可以使用 call apply bind 的方式来改变他的执行上下文   
    // function sayName(){
    //   console.log(`this.fullName`, this.fullName)
    // }
    class Persion {
      constructor(){
        this.fullName = "freemen";
      }
    }
    const obj = {
      fullName: "freemen"
    }


    Persion.call(obj)
    // class 和 function 的区别
    // 相同点: 都可以用作构造函数
    // 不同点: class 不可以使用 call apply bind 的方式来改变他的执行上下文   
  </script>

class和function类的区别

<script>


    // function定义类
    function Person1(name, age) {
      this.name = name
      this.age = age
    }


    Person1.prototype.running = function() {}
    Person1.prototype.eating = function() {}


    var p1 = new Person1("why", 18)
    console.log(p1.__proto__ === Person1.prototype)
    console.log(Person1.prototype.constructor)
    console.log(typeof Person1) // function


    // 不同点: 作为普通函数去调用
    Person1("abc", 100)


    // class定义类
    class Person2 {
      constructor(name, age) {
        this.name = name
        this.age = age
      }


      running() {}
      eating() {}
    }


    var p2 = new Person2("kobe", 30)
    console.log(p2.__proto__ === Person2.prototype)
    console.log(Person2.prototype.constructor)
    console.log(typeof Person2)


    // 不同点: class定义的类, 不能作为一个普通的函数进行调用
    Person2("cba", 0)


  </script>