当前位置: 首页 > 后端技术 > Node.js

post和get的区别

时间:2023-04-03 12:49:18 Node.js

post和get的区别本文参考:https://segmentfault.com/a/1190000009512784简单介绍get和post是HTTP与服务器交互的方式。说到方法,有:post、delete、put、get。它们的功能分别是增、删、改、查服务器资源。所以get是获取数据,post是修改数据。还有head:类似于get请求,只是返回的response中没有具体内容,用于获取headertrace:回显服务器收到的请求,主要用于测试或诊断选项:允许客户端查看服务器的性能connect:保留在HTTP/1.1协议中,用于可以将连接更改为管道的代理服务器。差异分析Get把请求的数据放在url上,也就是HTTP协议头。格式为:URL和传输数据用?隔开,参数用&连接。如果数据是英文字母/数字,原样发送,如果是空格,转成+,如果是中文/其他字符,直接用BASE64加密字符串,加上字符串的十六进制ASCII码到%。Get将参数放在URL之后,而post将正文放在语法规范中。get也可以在body里放参数,post连接url。get提交的数据最大为2k(原则上url没有长度限制,所以get提交的数据没有限制?这个限制其实是看浏览器的,(大)浏览器通常会限制url长度为2K字节,即使(大多数)服务器处理多达64K的url。这是无用的。)Post理论上是没有限制的。事实上,最大量在IIS4中是80KB,在IIS5中是100KB。GET生成一个TCP数据包,浏览器将http头和数据一起发送,服务器响应200(返回数据);POST生成两个TCP数据包,浏览器先发送header,服务器响应100continue,然后浏览器发送数据,服务器响应200ok(返回数据)。(不是所有的POST都发送两个TCP包,Firefox只有一个)GET在浏览器回滚时无害,POST会再次提交请求。GET生成的URL地址可以Bookmarked,不能POST。GET请求会被浏览器主动缓存,但是POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会完整保留在浏览器历史记录中,而POST中的参数不会保留。GET只接受ASCII字符的参数数据类型,而POST则没有限制。建议:get方法的安全性比post方法差。如果包含机密信息,建议使用post数据提交方式;做数据查询时,推荐使用get方法;添加、修改或删除数据时,推荐使用Post方法;