Get请求相关
使用GET请求经常会发生的一个错误,就是查询字符串的格式有问题。
查询字符串中每个参数的名称和值都必须使用encodeURIComponent()进行编码,然后才能放到URL 的末尾;而且所有名-值对儿都必须由和号(&)分隔,如下面的例子所示。
xhr.open("get","example.php?name1=value1&name2=value2", true);
下面这个函数可以辅助向现有URL 的末尾添加查询字符串参数:
functionaddURLParam(url, name, value) {
url += (url.indexOf("?") == -1 ?"?" : "&");
url += encodeURIComponent(name) + "="+ encodeURIComponent(value);
return url;
}
这个addURLParam()函数接受三个参数:要添加参数的URL、参数的名称和参数的值。这个函数首先检查URL 是否包含问号(以确定是否已经有参数存在)。如果没有,就添加一个问号;否则,就添加一个和号。然后,将参数名称和值进行编码,再添加到URL 的末尾。最后返回添加参数之后的URL
post请求相关
设置content-Type 头部信息为application/x-www-form-urlencoded,也就是表单提交时的内容类型。其次是以适当的格式创建一个字符串。
表单序列化函数将数据序列化之后再发送数据。
get与post区别
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用req.query获取变量的值,对于post方式,服务器端用req.body获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
6与get请求相比,POST请求消耗的资源会更多一些,从性能角度来看,以发送相同的数据计,GET请求的速度最多可以达到POST请求的两倍。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
GET POST PUT DELETE
1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
4、DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
就像前面所讲的一样,既然PUT和POST操作都是向服务器端发送数据的,那么两者有什么区别呢。。。POST主要作用在一个集合资源之上的(url),而PUT主要作用在一个具体资源之上的(url/xxx),通俗一下讲就是,如URL可以在客户端确定,那么可使用PUT,否则用POST。
综上所述,我们可理解为以下:
1、POST /url 创建
2、DELETE /url/xxx 删除
3、PUT /url/xxx 更新
4、GET /url/xxx 查看
get/post/put/delete
最新推荐文章于 2024-04-16 16:21:03 发布