什么时候应该使用GET或POST方法? 他们之间有什么区别?

使用GETPOST方法时有什么区别? 哪一个更安全? 他们每个人的(不)优点是什么?

(类似的问题)


这不是安全问题。 HTTP协议将GET类型的请求定义为幂等,而POST可能有副作用。 用简单的英语,这意味着GET用于查看某些内容,而不用更改它,而POST用于更改某些内容。 例如,搜索页面应使用GET,而更改密码的表单应使用POST。

另外请注意,PHP会将这些概念混淆一下。 POST请求从查询字符串和请求主体获取输入。 GET请求只是从查询字符串获取输入。 所以POST请求是GET请求的超集; 您可以在POST请求中使用$_GET ,甚至可能有意义的是,在$_POST$_GET中具有相同名称的参数意味着不同的事情。

例如,假设您有用于编辑文章的表单。 article-id可能位于查询字符串中(因此可通过$_GET['id'] ),但假设您要更改文章ID。 新的id可能会出现在请求正文( $_POST['id'] )中。 好的,也许这不是最好的例子,但我希望它能说明两者的区别。


当用户在表单中输入信息并单击提交时,可以通过两种方式将信息从浏览器发送到服务器:在URL中或在HTTP请求的主体内。

前面的示例中使用的GET方法将名称/值对添加到URL。 不幸的是,URL的长度是有限的,所以这种方法只适用于只有少数参数的情况。 如果表单使用大量参数,或者参数包含大量数据,则URL可能会被截断。 此外,通过URL传递的参数在浏览器的地址字段中可见,而不是显示密码的最佳位置。

GET方法的替代方法是POST方法。 此方法将名称/值对包装在HTTP请求的正文中,这使得URL更清晰,并且不会在表单输出上施加大小限制。 它也更安全。


最好的答案是第一个。

您正在使用:

  • GET当你想检索数据(获取数据)。
  • POST时要发送数据(POST数据)。
  • 链接地址: http://www.djcxy.com/p/41051.html

    上一篇: When should I use GET or POST method? What's the difference between them?

    下一篇: are they implementation dependent?