欢迎光临
我们一直在努力

面试常被问到HTTP中GET与POST的区别

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

可以使用chrome浏览器的开发者工具进行抓包

最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

搜索一番,基本的答案是

1. GET把参数包含在URL中,POST通过request body传递参数。

2. GET在浏览器回退时是无害的,而POST会再次提交请求。

3. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

4. GET请求在URL中传送的参数是有长度限制的,而POST没有。

5. GET比POST更不安全,因为参数直接暴露在URL上

HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。可以在GET加上request body,给POST带上url参数,没有技术问题,可以自行测试一番哈。

如图Postman允许在post增加参数

HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。GET和POST本质上就是TCP链接,并无差别。

我觉得这就是面试的一道坑哈。

GET,POST请求过程有些不同:

1. GET请求,浏览器会把http header和data一并发送出去,服务器响应,返回数据;

2. POST请求,浏览器先发送header,服务器响应100,浏览器再发送data,服务器响应,返回数据

关注婴儿健康成长

防撞条冬季鞋