获取vs Post
如果表单数据使用从服务器请求的URL编码,则称为Get,而如果表单数据是在消息体中发送的,则称为Post。当您没有URL的任何附加信息时,将使用此表单。
我们在web浏览器中阅读的HTML页面本质上是静态的。这些是静态文档,当我们与网页进行交互时,无论如何,您都必须将数据发送回服务器。这是通过使用表单来实现的,有两种方法可以使用表单:Get和Post。通过使用表单,对数据进行编码以将其发送回服务器。现在,Get和Post之间的确切区别是什么?
如果使用从服务器请求的URL对数据进行编码,则根据HTML规范将其称为Get。表单数据由接收数据的应用程序从URL中分离出来。解析出URL和表单数据后,将其用作查询的输入。如果你能理解的话,你能理解一个长尾的变量。对于所有的查询信息,如果您正在处理Get请求,您可以为整个URL加上书签。因此,当您再次打开书签时,您肯定可以看到查询的结果。
如果表单数据在消息体中发送,则称为Post。当您没有任何附加信息时,请不要使用此表单。与Get比较时,无法在用户的浏览器历史记录中缓存帖子。这种情况会导致页面必须重新向web服务器提交信息。你晚上经常遇到这种情况。
通常建议您在开发表单时必须使用Get,并且只有在某些情况下才必须使用Post。如果任何一个变量使浏览器崩溃或使URL太长,您可以使用Post form。使用Post有几个优点,因为如果需要使应用程序的功能隐藏或对其他用户不太可见,那么使用Post是更好的形式。但这并不是安全性的保证,因为任何人都可以从应用程序的源代码中理解您使用的变量。
Get和Post之间的主要区别可以概括为:
- 能见度
这就是Get和Post方法之间的根本区别。Get请求被附加到URL中,用问号分隔。无法看到Post请求,因为它封装在HTTP主体中。
- 性能
创建Get请求相对容易,而且比Post请求快得多。但是Post请求在封装过程中需要时间。
- 数据类型
由于Get请求是通过URL发送的,因此它只能是文本格式。但是在Post中没有这样的限制,它可以同时携带二进制和文本数据。
- 数据集
带值的“Enctype”属性可用于Post请求,而Get请求只能使用ASCII字符。