HTTP协议中 GET 和 POST的区别(全)

前言

在了解这两个的区别的同时
还需要额外补充一些http协议中其他方法以此了解更加深入

方法描述
GET请求指定的页面信息,并返回实体主体
HEAD类似于 GET 请求,返回的响应没有具体内容,用于获取报头
POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改
PUT从客户端向服务器传送的数据取代指定的文档的内容
DELETE删除指定的页面
CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,主要用于测试或诊断
PATCH是对 PUT 方法的补充,用来对已知资源进行局部更新

在这里插入图片描述

其中GET和HEAD被称为安全方法
因为使用GET和HEAD的HTTP请求不会产生什么修改页面的信息
而POST是不安全的方法,因为会修改其页面内容,比如页面信息的变动都是修改,比如贴吧、微博等评论,增删改这些信息都是一种变动

1. 源码探讨

为了更好的展示get例子
比如该网址https://www.baidu.com/s?wd=%E5%BE%AE%E5%8D%9A&ie=utf-8&tn=02003390_80_hao_pg
在这里插入图片描述
一个很简单的百度例子,但这个页面不可以修改,只能查询数据
通过设置他的页面信息变为get
查看其http协议中的信息
在这里插入图片描述
变为post的请求头如下
在这里插入图片描述

2. 区别

  • GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。

  • POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。

因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

  • get 数据不安全,伴随请求地址,数据量有限
  • post 数据安全,速度慢, 数据量可以无限

post的放在请求器,get没有请求器
两者都是 name=value,只不过明文密文而已
文件上传不能使用get,请求地址应该是地址,拼接的地址也是文件名而不是文件地址

操作方式明文密文数据安全性数据大小功能
GET明文不安全数据小查询数据
POST两种都可安全大数据传输增删改数据

get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程

GET 和 POST 本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农研究僧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值