GET和POST的区别
1、GET用于获取数据;POST用于提交更新数据
2、GET的参数长度有限制(不同的浏览器和服务器限制不同);POST没有限制
get请求提交的url中的数据最多只能是1024字节,这个限制是浏览器或者服务器给添加的,http协议并没有对url长度进行限制,目的
是为了保证服务器和浏览器能够正常运行,防止有人恶意发送请求。
post请求则没有大小限制。
3、GET的参数包含在URL中;POST通过封装参数到请求体中发送
4、GET请求只能进行URL编码;POST支持多种编码方式
5、GET可以发送的参数只能是ASCII类型;POST没有限制,甚至可以传输二进制
6、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
7、GET刷新无害;POST会再次提交数据
8、GET请求会被保存在浏览器历史纪录,可以收藏为书签;POST请求不能
9、GET和POST本质都是TCP连接,GET产生一个TCP数据包;POST产生两个TCP数据包
GET方式的请求,浏览器会把HTTP Header 和 Data 一起发送出去,服务器响应200 OK (返回数据)
POST,浏览器先发送Header ,服务器响应100 continue,浏览器再发送 Data,服务器响应200 OK (返回数据)
10.GET 请求一般会被缓存,比如常见的 CSS、JS、HTML 请求等都会被缓存;而 POST 请求默认是不进行缓存的。
11.GET 和 POST 最本质的区别是“约定和规范”上的区别,在规范中,定义 GET 请求是用来获取资源的,也就是进行查询操作的,而
POST 请求是用来传输实体对象的,因此会使用 POST 来进行添加、修改和删除等操作。
当然如果严格按照规范来说,删除操作应该使用 DELETE 请求才对,但在实际开发中,使用 POST 来进行删除的用法更常见一些。
按照约定来说,GET 和 POST 的参数传递也是不同的,GET 请求是将参数拼加到 URL 上进行参数传递的,而 POST 是将请参数写
入到请求正文中传递的