首页  >  问答  >  正文

GET 或 POST 方法:了解差异并知道何时使用它们

使用 GETPOST 方法有什么区别?哪一种更安全?它们各自的优缺点是什么?

(类似问题)

P粉463811100P粉463811100370 天前580

全部回复(2)我来回复

  • P粉884548619

    P粉8845486192023-10-15 14:16:09

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

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

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

    回复
    0
  • P粉002023326

    P粉0020233262023-10-15 12:54:06

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

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

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

    回复
    0
  • 取消回复