GET 与 POST区别
2021/7/23 6:07:38
本文主要是介绍GET 与 POST区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
GET、POST区别
- GET在浏览器回退时是无害的,而POST会再次提交请求。
- GET产生的URL地址可以被Bookmark,而POST不可以。
- GET请求会被浏览器主动cache,而POST不会,除非手动设置。
- GET请求只能进行url编码,而POST支持多种编码方式。
编码类型;GET:application/x-www-form-urlencoded; POST:application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 - GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
- GET请求在URL中传送的参数是有长度限制的,而POST么有。
浏览器和服务器对URL长度限制;服务器是因为处理长 URL 要消耗比较多的资源,为了性能和安全(防止恶意构造长 URL 来攻击)考虑; - 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
- 与 POST 相比,GET 的安全性较差,因为参数直接暴露在URL上,所以不能用来传递敏感信息。在发送密码或其他敏感信息时绝不要使用 GET !
- GET参数通过URL传递,POST放在Request body中。
- get方式提交数据的大小(一般来说1024字节),http协议并没有硬性限制,而是与浏览器、服务器、操作系统有关,而POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。
POST 方法会产生两个TCP数据包?
GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。(并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。)
HTTP 协议中没有明确说明 POST 会产生两个 TCP 数据包,而且实际测试(Chrome)发现,header 和 body 不会分开发送。
所以,header 和 body 分开发送是部分浏览器或框架的请求方法,不属于 post 必然行为。
GET 和 POST 报文上的区别
GET /index.php?name=qiming.c&age=22 HTTP/1.1 Host: localhost
POST /index.php HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded name=qiming.c&age=22
GET和POST本质上没有区别
GET和POST的底层是TCP/IP,也就是说,GET/POST都是TCP链接。
这篇关于GET 与 POST区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南