传递数据的方式有两种:表单和json。使用表单时,数据类型是普通的文本数据,或文件(大型二进制数据或者包含非ASCII字符的数据)。而json是指序列化后的 JSON 字符串。
对于表单方式,消息主体的编码方式有三种:
x-www-form-urlencoded 这种方式只能传输普通文本数据,后来为了提供文件上传的功能,提出了 form-data 方式,可以实现文本数据和文件混合传输,所谓 multipart 。
对于json而言,消息主体的编码方式是: application/json
消息主体的编码方式通过 Content-Type 字段标明。有时候前端传递具体的 Content-Type 可能会导致请求失败,因为有可能后端设计接口的时候,预先设定了传递的数据类型,它也会使用对应的解码方式。如果前端对此不知情,使用了错误的编码格式,反而会导致请求失败。这个时候去掉 Content-Type 设置,问题可能就解决了。
参考资料:
1. GET是"得",即从服务器获取数据;
2. GET请求可以被缓存;
3. GET请求的效率更高,但是安全性相对于POST来说要更差,因为URL会包装用户名,密码等敏感信息;
4. 在HTTP协议中,虽然没有对GET请求限制数据大小。但是,根据浏览器的不同,数据一般会被限制在2-8k之间;
1. POST是"给",即从客户机向服务器发送数据,然后服务器根据这些数据返回相对应的数据;
2. POST请求由于要提交数据,所以不能做缓存;
3. POST请求相对于GET请求的效率更低,因为多了向服务器提供数据这一环节;
4. 虽然使用POST请求不会让用户直接在URL中看到敏感信息,但是通过抓包软件或者浏览器的一些插件可以很容易截取到这些信息。所以,在商业开发中,这些信息都会被加密;
5. POST提交数据比GET大,大小靠服务器限制,PHP上限通常是2M;
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)