【php网络 基础知识】详解get、post请求、文件上传

来源:互联网 发布:单片机led 编辑:程序博客网 时间:2024/05/18 11:47

由客户端向服务器端传数据的两种方式:get、post


服务器端接收数据,php有三种方式:$_GET、$_POST、$_REQUEST


第一种:get请求,数据存储在$_GET数组中

注意:$_GET数组中的数据已经过urlencode()处理(这个很容易忽略)


历史:4.1.0之前,使用get方式传输的数据保存在$_HTTP_GET_VARS数组中,$_HTTP_GET_VARS不是一个超全局变量,4.0.1之后,弃用$_HTTP_GET_VARS,改用$_GET


最大长度问题:RFC协议并没有做最大长度限制,这个是由不同的浏览器厂商定的,并且同一浏览器的不同版本也有不同,面对这些不确定,开发人员只要做到get请求的url不要过长即可(post请求的最大长度是由服务器限制的,为何浏览器厂商要对get请求数据长度做这样的显示而对post请求没有,想不通)


安全问题:只要是用户传输到服务器的数据都是不可信的,对于get请求传输的数据作何处理能保证安全最大化呢?


被遗忘的用法:post请求时,有时会用这种方式传一个数组,get请求也可以,如:index.php?name[]=xing&name[]=dian

<input name="name[]" /><input name="name[]" />


第二种:post请求,数据存储在$_POST数组中

注意:$_POST数组中的数据未经过urlencode()处理(这个很容易忽略)


历史:4.1.0之前,使用post方式传输的数据保存在$_HTTP_POST_VARS数组中,$_HTTP_POST_VARS不是一个超全局变量,4.0.1之后,弃用$_HTTP_POST_VARS,改用$_POST


最大长度问题:受php.ini中的参数post_max_size影响,默认2M


安全问题:只要是用户传输到服务器的数据都是不可信的,对于post请求传输的数据作何处理能保证安全最大化呢?


第三种:$_REQUEST(实际开发中基本不用,缺点太多)

缺点:

1、get、post请求传输的数据都可存储在$_REQUEST数组中,如果参数名相同就会造成覆盖

2、不安全

3、没必要,如下代码:

$data = empty($_POST)? $_GET : $_POST;


0 0
原创粉丝点击