一、GET请求
从指定的资源请求数据。常见的发起GET请求的方式有:url、href、src、form。
1、GET请求的格式
例子:index.php?userName=harry&password=888(userName=harry&password=888 也叫查询字符串)
注意:参数名与参数值之间没有空格。参数值不需要用单双引号包括。
2、GET方式提交数据的特点
- 在url后面拼接参数,只能以文本的形式传递参数。
- 传递的数据量小,4kb左右(不同浏览器有差异)。
- 安全性低,会将信息显示在地址栏。
- 速度快,通常用于对安全性要求不高的请求。
二、POST请求
即发送、提交。可以向指定的资源提交要被处理的数据。如果使用表单方式提交,那么表单的method必须设置成POST。
1、POST方式提交数据的特点
-
post提交数据相对于get的安全性高一些。
-
传递数据量大,请求对数据长度没有要求。
-
请求不会被缓存,也不会保留在浏览器的历史记录中。
-
用于密码等安全性要求高的场合,提交数据量较大的场合,如上传文件,发布文章等。
-
POST方式提交数据上限默认为8M(可以在PHP的配置文件post_max_size选项中修改)。
三、get和post区别
由于HTTP的规定和浏览器/服务器的限制,导致它们在应用过程中体现出一些不同。
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
缓存 | 能被缓存 | 不能缓存 |
编码方式 | 只能进行url编码 | 支持多种编码方式 |
是否保留在浏览历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 发送数据,GET 方法向 URL 添加数据,但URL的长度是受限制的。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 安全性较差,因为参数直接暴露在url中 | 因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
传参方式 | get参数通过url传递 | post放在request body中。 |