HTTP 方法get和post的区别

前景
现在在前端面试中还有一些面试官会问get和post的区别。对于目前我们能了解get和post在什么场景下使用,使用方式有什么区别,以及如何提交数据这些基本上就可以了。


Get

GET请求的数据会附加在URL之后,用问号分割,多个参数用&进行连接。

GET请求的数据会暴露在地址栏中。

GET请求URL的编码格式采用的是ASCII编码,而不是Unicode编码。

GET请求传输大小有限制,大小在2KB。

GET相对安全性较差,会被浏览器主动缓存。

GET产生一个TCP数据包,head和data一起发送。

GET浏览器回退无害。

POST

POST请求会把数据放置在HTTP请求包的包体中,不会直接暴露给用户。

POST请求,理论上大小是不会限制的,但是实际上各个服务器会规定POST提交数据大小。

POST相对Get更安全,因为参数不会保存浏览器立式或者是web服务器日志中。

POST产生两个TCP数据包,header先发送,服务器响应100ms然后继续,发送data,服务器200然后返回数据。

POST浏览器回退重新请求。

其他http方法

PUT 方法
PUT 用于将数据发送到服务器来创建/更新资源。

POST 和 PUT之间的区别在于 PUT 请求是幂等的(idempotent)。也就是说,多次调用相同的 PUT 请求将始终产生相同的结果。相反,重复调用POST请求具有多次创建相同资源的副作用。

HEAD 方法
HEAD 与 GET 几乎相同,但没有响应主体。

换句话说,如果 GET /users 返回用户列表,那么 HEAD /users 将发出相同的请求,但不会返回用户列表。
HEAD 请求对于在实际发出 GET 请求之前(例如在下载大文件或响应正文之前)检查 GET 请求将返回的内容很有用。

DELETE 方法
DELETE 方法删除指定的资源。

OPTIONS 方法
OPTIONS 方法描述目标资源的通信选项。

参考链接

这年头还有面试问get和post的区别?

HTML 请求方法


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!