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>