美文网首页
二十一(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