美文网首页
二十一(4)、Ajax请求方式的区别 ------ 2020-0

二十一(4)、Ajax请求方式的区别 ------ 2020-0

作者: 自己写了自己看 | 来源:发表于2020-04-11 10:42 被阅读0次

    1、HTTP的请求方式

    (1)HTTP有两种请求方式:
    1、POST请求
    2、GET请求
    
    (2)GET请求一般用于从服务器获取信息,POST系列一般用于给服务器
    推送信息,但是不论GET或者POST都可以把信息传递给服务器,也
    能从服务器获取到结果,只不过是谁多谁少的问题;
    
    一般来说:
     GET:给的少,拿得多
     POST:给的少,拿得多
    
    (3)客户端怎么把数据传递给服务器:
     - 问号传参  xhr.open('GET', './getData?xxx=xxx&zzz=zzz')
     - 设置请求头  xhr.setRequestHeader([key],[value])
     - 设置请求主体  xhr.send(请求主体内容)
    
    (4)服务器怎么把信息返回给客户端:
      -  通过响应头
      - 通过响应主体(大部分信息都是基于响应主体返回的)
    

    2、GET系列请求

    (1)GET
    
    (2)DELETE: 一般应用于告诉服务器,从服务器上删除点东西
    
    (3)HEAD:只想获取响应头的内容,告诉服务器响应主体内容不
    要了
    
    (4)OPTIONS:试探性请求,发个请求给服务器,看看服务器能
    否接收到,能不能返回
    

    3、POST系列请求

    (1)POST
    
    (2)PUT和DELETE对应,一般是想让服务器把我传递的信息储存
    到服务器上(一般应用于文件和大型数据内容)
    
    4、GET系列和POST系列请求的本质区别
    (1)GET系列传递给服务器信息的方式一般采用:问号传参
    
    (2)POST系列传递给服务器信息的方式一般采用:设置请求主体
    
    (3)GET传递给服务器的内容比POST少,因为URL有最长大小限制
    (IE浏览器一般限制为2KB,谷歌浏览器一般限制为4~8KB,超过长
    度的部分会被浏览器自动截取)
    
    (4)POST方式请求主体中传递的内容理论上没有大小限制,但是在
    真实项目中,为了保证传输速度,我们自己会加以限制
    
    (5)另外GET请求会产生缓存,如果请求的URL相同,短时间多次请求,
    浏览器可能会自动使用缓存,使用上一次的请求结果,很多情况下
    我们想获取的是服务器最新的数据,因此,这种结果可能不是我们
    想要的,因此我们要去除这个缓存:
    解决办法有:问号传参添加随机数、问号传参添加当前时间戳
    
    (6)GET相对于POST来说不安全,GET是基于问号传参传递给服务器
    内容,有一种技术叫URL劫持,这样别人可以获取、篡改传递的信息,
    而POST基于请求主体传递信息,不容易被劫持;
    

    5、注意事项

    (1)在真实项目中使用对应的请求方式,会使请求变得更加明确
    不遵循这些方式也可以,最起码浏览器在语法上是允许的,但是这
    些是开发者们之间约定俗成的规范
    

    相关文章

      网友评论

          本文标题:二十一(4)、Ajax请求方式的区别 ------ 2020-0

          本文链接:https://www.haomeiwen.com/subject/uveemhtx.html