返回

Get请求的特点

前端

你敢在post和get上刁难我,就别怪我装逼了

我们来重温一下post和get的定义吧,有句话是这样的:

get用来获取数据,post用来提交数据

乍一看这很符合我们日常的使用习惯,实际上get也可以用来提交数据,只是我们很少用get去提交数据。

那么Post和Get的本质是什么呢?

实际上,这是一种请求方式,Post和Get是HTTP协议里的请求方式,也是我们使用的最多的请求方式。

HTTP协议是一个超文本传输协议,它定义了浏览器和服务器之间的通信规则。

HTTP协议是基于请求/响应模型的,也就是说,浏览器向服务器发送一个请求,服务器收到请求后处理它并返回一个响应。

请求方式决定了浏览器向服务器发送请求时,把数据放在哪里。

Post请求把数据放在请求体里,Get请求把数据放在请求头里。

GET请求

  1. GET请求的数据会显示在URL中,所以URL会有长度限制,这个值是2KB,当然有些服务器会适当的放宽,但还是有限制的。
  2. GET请求数据的大小有严格限制,如果是通过表单提交数据,那么表单数据不能超过100个字节,如果是直接通过URL传参,不能超过2KB。
  3. GET请求的数据是不安全的,因为URL是暴露在外的,所有人都能看到你的数据,数据很容易被泄露。
  4. GET请求一般是用来获取数据,比如从服务器读取数据,查询数据库,获取图片。
  5. GET请求可以被缓存,这意味着浏览器会将GET请求的结果保存起来,以便下次请求时直接从缓存中读取,而不用再向服务器发送请求。

POST请求

  1. POST请求的数据不会显示在URL中,所以数据是安全的,不容易被泄露。
  2. POST请求的数据大小没有限制,可以上传大文件。
  3. POST请求一般是用来提交数据,比如创建数据,更新数据,删除数据。
  4. POST请求不能被缓存,这意味着浏览器不会将POST请求的结果保存起来,下次请求时需要重新向服务器发送请求。

当然,get和post还可以通过请求头传递参数,参数存储在HTTP协议的头里面,这和url参数比较相似,不过这类型的数据也会显示在url里面。

get和post的常用场景:

  • GET请求: 获取数据,查询数据,获取图片,获取网页内容。
  • POST请求: 提交数据,创建数据,更新数据,删除数据。

什么时候该用GET,什么时候该用POST?

  • GET请求: 如果要获取数据,应该使用GET请求。
  • POST请求: 如果要提交数据,应该使用POST请求。

安全性

GET请求的数据是不安全的,因为URL是暴露在外的,所有人都能看到你的数据,数据很容易被泄露。POST请求的数据是安全的,因为数据不会显示在URL中,不容易被泄露。

缓存

GET请求可以被缓存,这意味着浏览器会将GET请求的结果保存起来,以便下次请求时直接从缓存中读取,而不用再向服务器发送请求。POST请求不能被缓存,这意味着浏览器不会将POST请求的结果保存起来,下次请求时需要重新向服务器发送请求。

总结

GET请求和POST请求都是HTTP协议的请求方式,GET请求用来获取数据,POST请求用来提交数据。GET请求的数据不安全,POST请求的数据安全。GET请求可以被缓存,POST请求不能被缓存。