【Java】GET 和 POST 请求的区别 待我称王封你为后i 2024-03-27 11:43 14阅读 0赞 #### 文章目录 #### * 1. GET 和 POST 请求的区别 * * 1.1 相同点和最本质的区别 * * 1.1.1 相同点 * 1.1.2 最本质的区别 * 1.2 非本质区别 * * 1.2.1 缓存不同 * 1.2.2 参数长度限制不同 * 1.2.3 回退和刷新不同 * 1.2.4 历史记录不同 * 1.2.5 书签不同 * 1.3 总结 ## 1. GET 和 POST 请求的区别 ## `GET` 和 `POST`请求是最常用的两种请求方法,写了几个`Servlet`项目,发现这两种请求用的实在是多,给我的感觉就是这两个请求仿佛只有一个名字不同而已。但是通过查询资料发现,里面大有文章。`HTTP`协议定义的方法类型一共有以下10种: ![在这里插入图片描述][4449a310211e4d249e2f9d11ec732aa0.png] > 目前大部分网站都使用的是HTTP 1.1 协议 在平常我们使用的最多的就是`GET`和`POST`协议 ### 1.1 相同点和最本质的区别 ### #### 1.1.1 相同点 #### `GET`和`POST`请求底层都是基于`TCP/IP`协议实现的,使用其中任何一个都可以实现客户端和服务器端的双向交互。 #### 1.1.2 最本质的区别 #### **`GET`和`POST`最本质的区别就是“约定和规范”上的区别,在规范当中,定义`GET`请求是用来获取资源,也就是查询操作,而`POST`是用来传输实体对象的,因此会使用`POST`来进行添加、删除、和修改等操作**。而删除操作应该是`DELETE`请求来完成,但是在实际当中使用`POST`来完成删除操作的更多一些。**按照约定来说,`GET`和`POST`的参数也是不同的,`GET`请求是将参数拼加到`URL`进行参数传递的,而`POST`是将参数写入到请求正文当中进行传递的。** `GET`请求: ![在这里插入图片描述][fa32728328194675a7ce8704d0853507.png] `POST`请求: ![在这里插入图片描述][e399524ef9da49d8b79ce1b3f143541c.png] ### 1.2 非本质区别 ### #### 1.2.1 缓存不同 #### `GET`请求一般会被缓存,比如常见的`CSS、JS、HTML`请求都会被缓存;而`POST`请求默认是不进行缓存的。 #### 1.2.2 参数长度限制不同 #### `GET`请求的参数是通过`URL`传递的,而`URL`的长度是有限的,一般为`2k`,浏览器厂商不同、版本不同限制的大小可能也不同,但是它们一定会对`URL`的大小进行限制;而`POST`请求参数是存放在请求正文当中的,所以大小没有限制。 #### 1.2.3 回退和刷新不同 #### `GET`请求可以直接进行回退和刷新,不会对用户产生任何影响;而`POST`请求如果直接进行回退和刷新,将会把数据再次提交。 #### 1.2.4 历史记录不同 #### `GET`请求的参数会保存在历史记录当中,而`POST`请求的参数不会保存在历史记录当中。 #### 1.2.5 书签不同 #### `GET`请求的参数可以被收藏为书签,而`POST`请求不行。 ### 1.3 总结 ### `GET`和`POST`请求是`HTTP`请求中最常用的两种请求方式,它们的底层都是基于`TCP/IP`实现的。它们主要有五个方面的区别:缓存不同、参数长度不同、回退和刷新不同、历史记录是否保存不同、书签不同。但是两者最大的区别就是**约定和规范**的不同,规定中`GET`是用来获取信息的,而`POST`是用来传递实体的,并且`GET`请求的参数主要放在`URL`当中,而`POST`请求的参数主要放在请求正文当中。 [4449a310211e4d249e2f9d11ec732aa0.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/27/f7cfe7c2335c4b55a22a30ea70f4eea7.png [fa32728328194675a7ce8704d0853507.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/27/d03ea5ee6d204e88afafbe1e09dbce6c.png [e399524ef9da49d8b79ce1b3f143541c.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/27/e4c1789cd3e74a448a920b419ba26f65.png
还没有评论,来说两句吧...