什么时候应该使用GET或POST方法? 他们之间有什么区别?
使用GET
或POST
方法时有什么区别? 哪一个更安全? 他们每个人的(不)优点是什么?
(类似的问题)
这不是安全问题。 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更清晰,并且不会在表单输出上施加大小限制。 它也更安全。
最好的答案是第一个。
您正在使用:
上一篇: When should I use GET or POST method? What's the difference between them?