get请求和post请求的区别

说到 get 请求和 post 请求,就不得不提 HTTP 协议,因为浏览器和服务器的交互是通过 HTTP 协议执行的,而 get 请求和 post 请求也是 HTTP 协议中的两种方法。

 
HTTP全称为Hyper Text Transfer Protocol,中文翻译为超文本传输协议,目的是保证浏览器与服务器之间的通信。HTTP的工作方式是客户端与服务器之间的请求-应答协议。

 
HTTP协议中定义了浏览器和服务器进行交互的不同方法,基本方法有4种,分别是GET,POST,PUT,DELETE。这四种方法可以理解为,对服务器资源的 查,增,改,删。

 
GET:GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

 
POST:POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

 
PUT:PUT请求是向服务器端发送数据的(与GET不同)从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

 
DELETE:顾名思义,DELETE请求就是删除服务器数据的过程。

  下面主要比较一下 get 请求和 post 请求的区别。

 

get请求和post请求的区别

(1)get 请求是不安全的,因为在传输过程,数据被放在请求的 url 中;post 请求的所有操作对用户来说都是不可见的。 但是这种说法也不是绝对的,也可以在 get 请求加上 request body,给 post 请求带上 url 参数。

 
(2)get 请求提交的 url 中的数据最多只能是2048字节,这个限制是浏览器或者服务器给添加的,http协议并没有对 url 长度进行限制,目的是为了保证服务器和浏览器能够正常运行,防止有人恶意发送请求。post 请求则没有大小限制。

 
(3)get 请求限制 form 表单的数据集的值必须为 ASCII 字符;而 post 请求支持整个 ISO10646字符集。

 
(4)get 请求的执行效率比 post 请求好。get 请求是 form 表单提交的默认方法。

 
(5)get 请求产生一个 TCP 数据包;post 请求产生两个 TCP 数据包。对于 get 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应200(返回数据);而对于 post 请求,浏览器先发送 header,服务器响应100 continue,浏览器再发送 data,服务器再响应200(返回数据)。

    原文作者:白白甜甜冰
    原文地址: https://blog.csdn.net/weixin_48016395/article/details/124088951
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞