博舍

GET 和 POST 有什么区别 ai和ps的本质区别

GET 和 POST 有什么区别

GET和POST是HTTP请求中最常用的两种请求方法,在日常开发的RESTful接口中,都能看到它们的身影。而它们之间的区别,也是一道常见且经典的面试题,所以我们本文就来详细的聊聊。HTTP协议定义的方法类型总共有以下10种:

PS:目前大部分的网站使用的都是HTTP1.1的协议。

但在日常开发中,使用频率最高的就属GET请求和POST请求了,尤其是在中、小型公司,基本只会使用这两种请求来实现一个项目。

1.相同点和最本质的区别1.1相同点

GET请求和POST请求底层都是基于TCP/IP协议实现的,使用二者中的任意一个,都可以实现客户端和服务器端的双向交互。

1.2最本质的区别

GET和POST最本质的区别是“约定和规范”上的区别,在规范中,定义GET请求是用来获取资源的,也就是进行查询操作的,而POST请求是用来传输实体对象的,因此会使用POST来进行添加、修改和删除等操作。当然如果严格按照规范来说,删除操作应该使用DELETE请求才对,但在实际开发中,使用POST来进行删除的用法更常见一些。按照约定来说,GET和POST的参数传递也是不同的,GET请求是将参数拼加到URL上进行参数传递的,而POST是将请参数写入到请求正文中传递的,如下图所示:

2.非本质区别2.1缓存不同

GET请求一般会被缓存,比如常见的CSS、JS、HTML请求等都会被缓存;而POST请求默认是不进行缓存的。

2.2参数长度限制不同

GET请求的参数是通过URL传递的,而URL的长度是有限制的,通常为2k,当然浏览器厂商不同、版本不同这个限制的大小值可能也不同,但相同的是它们都会对URL的大小进行限制;而POST请求参数是存放在请求正文(requestbody)中的,所以没有大小限制。

2.3回退和刷新不同

GET请求可以直接进行回退和刷新,不会对用户和程序产生任何影响;而POST请求如果直接回滚和刷新将会把数据再次提交,如下图所示:

2.4历史记录不同

GET请求的参数会保存在历史记录中,而POST请求的参数不会保留到历史记录中。

2.5书签不同

GET请求的地址可被收藏为书签,而POST请求的地址不能被收藏为书签。

总结

GET和POST是HTTP请求中最常用的两种请求方法,它们的底层都是基于TCP/IP实现的。它们的区别主要体现在5个方面:缓存不同、参数长度限制不同、回退和刷新不同、历史记录不同、能否保存为书签不同,但它们最大的区别是规范和约定上的不同,规范中定义GET是用来获取信息的,而POST是用来传递实体的,并且GET请求的参数要放在URL上,而POST请求的参数要放在请求正文中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇