前端面试——HTTP中POST与GET的区别?

HTTP是超文本传输协议,负责客户端和服务器间数据的传递。GET和POST是常见的请求方法,GET用于获取数据,通常缓存且在URL中显示,而POST用于提交数据,不被缓存且数据在请求体中。幂等性指同一请求执行多次效果相同,GET请求通常是幂等的,但POST不是。HTTP协议在应用层运行,依赖TCP/IP进行数据传输。
摘要由CSDN通过智能技术生成

回答此问题:先回答什么是http?什么是post?什么是get? 进而展开…

1. 简单解释HTTP

1:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写
2:字面意思理解:就是服务器传输超文本到本地浏览器的一种传送协议。
3:HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

总结性的一句话:HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。

2. post于get 二者的共同点

1: Post 和 Get 是 HTTP 请求的两种方法。
2:都需要通过建立TCP/IP连接

3. post于get 二者的区别

(1)从应用场景上来说:
1:get用来请求数据,post用来修改数据。
2:GET 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会产生影响的场景,比如说请求一个网页
3:而 Post 不是一个幂等的请求,一般用于对服务器资源会产生影响的情景。比如注册用户这一类的操作。

(2)缓存方面
1:因为不同的应用场景,Get用来请求数据,所以浏览器一般会对 Get 请求缓存,但很少对 Post 请求缓存。

(3)传递参数的方式
1:get采用明文传输,将请求的参数放入 url 中向服务器发送,而post将请求参数放在请求体中。
2:Get 请求的报文中实体部分为空,Post 请求的报文中实体部分一般为向服务器发送的数据。

(4)安全性方面:
1:正是由于传递参数方式的不同,导致get请求的明文存在安全隐患。
2:而post将参数存在body中是相对安全的。

4.名词“幂等”解释:

等的概念是指同一个请求方法执行多次和仅执行一次的效果完全相同。按照RFC规范,PUT,DELETE和安全方法都是幂等的。同样,这也仅仅是规范,服务端实现是否幂等是无法确保的。引入幂等主要是为了处理同一个请求重复发送的情况,比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,重复请求可能会带来意想不到的后果。

其他:

1: 因为请求的 url 会被保留在历史记录中。并且浏览器由于对 url 有一个长度上的限制,所以会影响 get 请求发送数据时的长度。
2:这个限制是浏览器规定的,并不是 RFC 规定的。还有就是 post 的参数传递支持更多的数据类型。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值