首页 / php教程

    GET和POST方法的区别是什么

    类型:原创      发布者:青灯夜游2018-12-12 09:02:34

    GET和POST方法的区别是什么?本篇文章就给大家具体介绍GET和POST方法,让大家了解GET和POST方法的区别,希望对你们有所帮助。

    Web浏览器通常会使用HTTP(超文本传输协议)的两种方法(GET方法和POST方法)其中之一来与服务器通信。这两种方法会以不同方式传递信息,将数据发送到服务器。下面我们就来具体看看GET方法和POST方法。

    GET方法

    在GET方法中,数据将作为URL的参数发送,这些参数通常是由&符号分隔的名称和值对的字符串。通常,具有GET数据的URL将如下所示:

    http://www.php.cn/action.php?name = john&age = 24

    在URL中name和age都是GET参数,john和24是这些参数的值;多个“参数=值”可通过与&符号级联被嵌入URL里。人们只能通过GET方法发送简单的文本数据。

    使用GET方法的优点和缺点

    1、由于GET方法发送的数据显示在URL中,因此可以使用特定查询字符串值为页面添加书签。

    2、GET方法不适合传递用户名和密码等敏感信息,因为这些信息在URL查询字符串中完全可见,并且可能作为访问页存储在客户端浏览器的内存中。

    3、由于GET方法将数据分配给服务器环境变量,因此URL的长度是有限的。因此,要发送的总数据存在限制。

    PHP提供了超全局变量$_GET来访问通过URL发送的所有信息;或使用HTML,通过HTML表单提交的信息method="get"来发送信息。

    POST方法

    在POST方法中,数据作为包在与处理脚本的单独通信中发送到服务器;通过POST方法发送的数据在URL中不可见。

    POST方法适用于可以传递大量信息的情况。当服务器通过采用POST的表单接收请求时,它在对URL进行请求之后立即传输表单输入的所有相关信息。

    使用POST方法的优点和缺点

    1、它比GET更安全,因为用户输入的信息在URL查询字符串或服务器日志中永远不可见。

    2、可以传递的数据量有一个更大的限制,一个人可以使用POST发送文本数据和二进制数据(上传文件)。

    3、由于POST方法发送的数据在URL中不可见,因此无法使用特定查询为页面添加书签。

    PHP会提供另一个超全局变量$_POST来访问通过post方法发送的所有信息;或通过HTML表单使用method="post"来发送信息。

    GET和POST方法的区别

    虽然,GET和POST方法都是将数据发送到服务器,与服务器进行通信;但这两种方法是不同的,下面我们就来看看GET和POST方法的区别。

    1、发送的数据数量

    在Get中,只能发送有限数量的数据,因为数据是在URL中发送的;

    在POST中,可以发送大量的数据,因为数据是在正文主体中发送的。

    2、安全性

    GET方法发送的数据不受保护,因为数据在URL栏中公开,这增加了漏洞和黑客攻击的风险。

    POST方法发送的数据是安全的,因为数据未在URL栏中公开,还可以在其中使用多种编码技术,这使其具有弹性。

    3、加入书签中

    GET查询的结果可以加入书签中,因为它以URL的形式存在;而POST查询的结果无法加入书签中。

    4、编码

    在表单中使用GET方法时,数据类型中只接受ASCII字符。

    在表单提交时,POST方法不绑定表单数据类型,并允许二进制和ASCII字符。

    5、可变大小

    GET方法中的可变大小约为2000个字符。而,POST方法最多允许8 Mb的可变大小。

    6、缓存

    GET方法的数据是可缓存的,而POST方法的数据是无法缓存的。

    7、主要作用

    GET方法主要用于获取信息。而,POST方法主要用于更新数据。

    总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

    以上就是GET和POST方法的区别是什么的详细内容,更多请关注php中文网其它相关文章!

php中文网第四期线上直播培训班

PHP中文网

未登录