get和post的区别
超级全局变量:是PHP系统中自带的变量,在脚本的全部作用域都可以使用。
一、超级全局变量列表:
$GLOBALS:是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。变量的名字就是数组的键。
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
$_REQUEST(接受post、get)用于收集HTML表单提交的数据。(默认get);
在了解get 和 post请求的区别之前,我们首先要知道什么是get请求和post请求。
二、get和post是什么
get 和 post请求是http协议中的两种请求方式,get一般用来获取服务器的信息的,post一般是用来更新信息的,当然,http协议中还有其他协议,比如put、delete等。
三、$_POST和$_GET的区别:
1. get请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
post请求是把请求的数据放在请求体中。
但是这种做法也不时绝对的,大部分人的做法也是按照上面的说法来的,但是也可以在get请求加上 request body,给 post请求带上 URL 参数。
2. get请求提交的url中的数据最多只能是1024字节,这个限制是浏览器或者服务器给添加的,http协议并没有对url长度进行限制,目的是为了保证服务器和浏览器能够正常运行,防止有人恶意发送请求。
post请求则没有大小限制。。
3. post请求相对于get请求更安全。因为get请求传递的参数会显示在url中,用户在访问的时候浏览器会缓存网页,这样别人在查看浏览器浏览记录的时候会获取私人信息,post请求不会被用户看到,所以安全性高。
4. get方式需要使用Request.QueryString来取得变量的值,而post方式通过Request.Form来获取变量的值。