GET && POST 请求

在 HTPP/1.1 中,一共有 get、post、put、head、delete、potions、trace、connect 八种不同的请求方法,但本篇文章只介绍最常用的两种 get 和 post

GET

GET 请求是从服务器获取指定资源,指定的资源经服务器返回给客户端,资源可以是静态文本、页面、图片视频等

GET 请求的参数位置一般写在 URL 中,URL 只能支持 ASCII,所以 GET 请求的参数只允许是 ASCII 字符,而且浏览器会对 URL 长度有限制,HTTP 协议本身没有对 URL 长度做任何规定

下面给出一个 GET 请求的示例:https://www.test.com/get?xxx=111&yyy=222。该请求中有两个参数:xxx = 111yyy = 222

POST

POST 请求是根据请求负载对指定资源做出处理,一般请求携带的数据会写在消息体中,消息体中的数据可以是任意格式,且浏览器不会限制消息体大小

GET 请求侧重于获取指定的资源,而 POST 请求侧重于传输实体到服务器进行处理,如登陆时提交表格信息

下面给出一个 post 请求的示例:

该请求体中有两个参数:xxx = 111yyy = 222

安全和幂等

首先说一下安全和幂等着两个概念:

很显然,GET 请求是安全且幂等的,而 POST 是不安全且不幂等的。所以 GET 请求返回的结果可以被缓存,而 POST 请求返回的结果不可以被缓存