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-11-19Java前端后端分离学习指南
- 2024-11-19Java全栈学习:从入门到实践
- 2024-11-19Java微服务系统学习入门指南
- 2024-11-19Java微服务学习:入门与实践指南
- 2024-11-19Java学习:初学者必备指南
- 2024-11-19Java医疗系统学习:从入门到初级实战教程
- 2024-11-19SpringCloud Alibaba入门教程:轻松搭建微服务架构
- 2024-11-19SSM框架入门教程:轻松搭建Java企业级应用
- 2024-11-19订单系统学习:新手入门指南
- 2024-11-19读写分离学习:轻松入门与实战指南