GET和POST的区别解析

HTTP简介

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP请求方法

    HTTP请求最初设定了八种方法,这八种方法本质上没有任何区别。只是让请求,更加有语义而已。

请求方式描述
GET请求指定的页面信息,并返回实体主体。
POST向服务器提交数据,数据放在请求体里
HEAD类似于get请求,只不过响应体不返回,只返回响应头
OPTIONS返回服务器所支持的请求方法
PUT只是具有幂等特性,一般用于更新
DELETE请求服务器删除指定的页面或资源
TRACE回显服务器收到的请求,主要用于测试或诊断
CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

根据w3c标准,GET和POST区别如下:

请求方式GETPOST
后退按钮 / 刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)
书签可收藏为书签不可收藏为书签
缓存能被缓存不能缓存
编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码
历史参数保留在浏览器历史中参数不会保存在浏览器历史中
对数据长度的限制当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)无限制
对数据类型的限制只允许 ASCII 字符没有限制,也允许二进制数据
安全性与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中
可见性数据在 URL 中对所有人都是可见的数据不会显示在 URL 中

    其实,GET和POST本质上就是TCP链接,两者没有任何区别。他们都是HTTP协议中的请求方法,底层实现都是基于TCP / IP协议。所谓区别,是由于HTTP的规定和浏览器 / 服务器的限制,导致他们在应用过程中体现出一些不同而已。
    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
    IP协议是将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。

GET和POST的真正区别

  • HTTP协议对GET和POST都没有对长度的限制,所谓的请求长度限制是由浏览器和web服务器决定和设置的,各种浏览器和web服务器的设定均不一样,这依赖于各个浏览器厂家的规定或者可以根据web服务器的处理能力来设定
  • GET产生一个TCP数据包,POST产生两个TCP数据包
        1. 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)
        2. 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)
  • 因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效,但据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,具有非常大的优势。而且也并不是所有浏览器都会在POST中发送两次包,Firefox(火狐浏览器)就只发送一次
  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半度℃温热

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值