GET和POST的异同
写在前面: 此博客记录自己学习jQuery学习笔记,如有侵权,联系删!
学习来源: 李南江亲授-jQuery+Ajax从放弃到知根知底
李南江老师各平台账号:
- 微博:极客江南
- 微信公众号:李南江
- 腾讯课堂: 李南江
- 网易云课堂:李南江
GET和POST请求是Ajax常用的两种请求方式,两种请求方式的差别如下:
GET请求
在HTML中,用表单提交数据,需要用到请求,例如GET请求
用method
属性指定发送请求的方式
<form action="02-get-post.php" method="get">
<input type="text" name="userName"><br>
<input type="password" name="userPwd"><br>
<input type="submit" value="提交"><br>
</form>
如果是get请求会将提交的数据拼接到URL后面?userName=lnj&userPwd=123456
POST请求
在HTML中,用表单提交数据,需要用到请求,例如POST请求
用method
属性指定发送请求的方式
<form action="02-get-post.php" method="get">
<input type="text" name="userName"><br>
<input type="password" name="userPwd"><br>
<input type="submit" value="提交"><br>
</form>
如果是post请求会将提交的数据放到请求头中
如果要上传的是文件,那么用一般的请求方式就不行了,例如上传文件!
上传文件必须设置enctype="multipart/form-data"
<form action="03-post-file.php" method="post" enctype="multipart/form-data">
<input type="file" name="upFile"><br>
<input type="submit" value="上传"><br>
</form>
</body>
</html>
GET请求和POST请求的异同
相同点:
都是将数据提交到远程服务器
不同点:
1、提交数据存储的位置不同
- GET请求会将数据放到URL后面
- POST请求会将数据放到请求头(Request body)中
2、提交数据大小限制不同
- GET请求对数据有大小限制
- POST请求对数据没有大小限制
3、参数的数据类型限制不同
- GET只接受ASCII字符
- POST没有限制
4、应用场景不同
- GET请求用于提交非敏感数据和小数据
- POST请求用于提交敏感数据和大数据
5、保留情况
- GET请求参数会被完整保留在浏览器历史记录里
- POST中的参数不会被保留在浏览器历史记录里
6、编码方式
- GET请求只能进行url编码
- POST支持多种编码方式
7、浏览器回退
- GET在浏览器回退时是无害的
- 而POST会再次提交请求
没有太过深入了解,从w3cschool和博客中大致总结出以上异同点。不过在逛博客时,看到一个篇文章的解释还蛮有趣,通俗易懂:链接奉上 详解HTTP中GET与POST的区别,不是你看过的标准答案!