什么是get和Post?
HTTP定义了与服务器交互的不同方法。最常用的方法有Put、Delete、post、get四种,即增、删、查。
1.用来获取信息的Get,只是获取和查询数据,也就是说不会修改服务器上的数据。从这个角度来说,它是数据安全的,而后面提到的帖子是可以修改数据的,所以这是两者的区别之一。
2.Post,它可以通过向服务器发送修改请求来修改服务器。例如,如果我们想在论坛上回帖,并在博客上发表评论,我们将使用post。当然,它只能获取数据。
3.删除以删除数据。可以通过Get/Post实现。不多。
4.放入、添加和放置数据,可以通过Get/Post来实现。不多。
GET和Post有什么区别?
浏览器回滚时GET是无害的,POST会再次提交请求。
GET生成的URL地址可以书签,POST不能。
GET请求会被浏览器主动缓存,但是POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET参数将完全保留在浏览器历史中,但POST中的参数不会保留。
URL中GET请求传递的参数长度有限,POST则没有。
对于参数的数据类型,GET只接受ASCII字符,POST没有限制。
它比GET POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在请求体中。
(本标准答案参考w3schools)
Get和Post本质上是一样的?!
这似乎不可思议,但是让我们回忆一下GET和POST是什么。它们是HTTP请求协议的请求方法。
HTTP也是一种基于TCP/IP的协议,关于数据在万维网中如何通信。
所以GET/POST实际上是TCP链接。
也就是说GET和POST做的其实是一样的。如果加上GET的请求数据和POST的URL参数,技术上是可行的。其实确实有人为了方便在更新资源的时候使用GET,因为要去表单(FORM)使用POST,会有点麻烦(但是强烈不建议!!!)。
既然GET和POST的底层是TCP,为什么HTTP要特别区分它们?
其实你可以想象一下,如果我们直接使用TCP进行数据传输,那么无论是单纯获取资源的请求,还是修改服务器资源的请求,从外观上看都像是TCP链接,对管理非常不利。所以在HTTP协议中,这些不同的请求会通过设置不同的类别来管理,比如单纯获取资源的请求被定义为GET,修改服务器资源的请求被定义为POST,它们的请求消息的格式也有相应的要求(比如请求参数GET位于URL中,POST位于请求数据中)。
当然,如果我们想把GET的请求参数放在请求数据中,或者把POST的请求数据放在URL中,也是完全可以的,虽然不符合HTTP规范。但是这样做能得到预期的响应数据吗?答案是不一定,要看服务器的行为。
以GET方法为例,将请求参数放在请求数据中。有些服务器会读出请求数据中的参数。在这种情况下,我们仍然可以获得预期的响应数据。有些服务器会选择直接忽略,这种情况下我们得不到预期的响应数据。
所以,总结GET和POST的区别,本质上都是TCP链接,没有区别。但由于HTTP的规定和浏览器/服务器的限制,在应用过程中可能会有所不同。
本文来自离开我后记得微笑投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/626385.html