美文网首页
GET和POST区别

GET和POST区别

作者: 乔四儿丶 | 来源:发表于2019-11-06 12:08 被阅读0次

    GET和POST区别

    参考链接

    1. 浏览器的GET和POST(原则上)

    get:读取一个资源(页面、css、js、图片),具有幂等性,适合做缓存(浏览器缓存、nginx等服务器缓存),请求参数只能通过url,不同浏览器长度有限制

    post:提交一个表单,返回一个页面,不幂等,不适合缓存,请求参数放在HTTP的body里,有两种格式application/x-www-form-urlencoded(key=value格式,可以嵌套)、multipart/form-data(文件类型)

    get参数可以放在body里,post参数也可以放在url里,只是在浏览器请求中适用

    1. 接口中的GET和POST

    没有浏览器请求的限制,get参数可以放在body里,post参数也可以放在url里

    elasticsearch中的部分GET请求就有body

    太自由也会有麻烦,所以有了接口规范/风格,比如RESTFUL,约定GET、POST、PUT和DELET分别表示获取、创建、替换和删除“资源”

    1. 安全性

    GET和POST都不够安全,因为两种请求在网络上都是http明文传输数据的,

    可以使用https,TSL(握手协议)/SSL(加密解密协议)

    1. 编码

    url的编码是ASCII,body体的编码是binary

    在url的中文,不同浏览器会按不同的编码集编码(现在大多数是utf8),所以尽量不要用中文

    body体里的编码会在Content-Type里定义,比如

    Content-Type: application/x-www-form-urlencoded ; charset=UTF-8

    1. POST会发两次请求吗

    客户端会根据一定的策略,根据请求数据的大小,决定请求头和请求体一起发送到服务器,还是先发送请求头,在发送请求体

    1. URL长度是由不同浏览器决定的,HTTP协议没有规定,但是当URL请求长度比较长时,可以放到请求体中

    相关文章

      网友评论

          本文标题:GET和POST区别

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