get 与post的区别

本文详细介绍了HTTP的GET和POST请求的区别,包括缓存、历史记录、数据长度限制等方面。GET请求适用于取回数据,参数显示在URL上,而POST请求则不显示在URL,适合处理敏感信息。在PHP中,GET和POST请求分别通过$_GET和$_POST超全局数组来接收参数。示例代码展示了如何在HTML表单中使用这两种请求类型,并在PHP端处理接收到的数据。
摘要由CSDN通过智能技术生成

GET 请求
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
POST 请求
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求

GET 请求
1.0请求参数以键值对的方式,附加到url地址上,称为查询字符串,?号与当前脚本分隔
2.0url格式: index.php?name=peter&age=30
3.0受url长度限制, GET方式传递的数据也是有限制的
4.0服务器端脚本使用预定义变量数组 $_GET 进行接收
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>get</title>
	</head>
	<body>
		<form action="" method="get">
			<label for="email">邮箱:</label>
			<input type="email" id="email" name="email" value="">
			<label for="password">密码:</label>
			<input type="password" id="password" name="password" value="">
			<br/>

			<!--将用户输入的内容动态添加到value字段中, 创建具有粘性的表单-->
			<label for="email">邮箱:</label>
			<input type="email" id="email" name="email" value="<?php echo isset($_GET['email']) ? $_GET['email'] : ''; ?>">
			<label for="password">密码:</label>
			<input type="password" id="password" name="password" value="<?php echo isset($_GET['password']) ? $_GET['password'] : '';?>">
			<br/>

			<!--简易写法-->
			<label for="email">邮箱:</label>
			<input type="email" id="email" name="email" value="<?php echo $_GET['email'] ?? ''; ?>">
			<label for="password">密码:</label>
			<input type="password" id="password" name="password" value="<?php echo $_GET['password'] ?? ''; ?>">

			<button>登录</button>
		</form>
	</body>
</html>

<?php
	// 获取通过url发送的变量参数, php通过超全局变量$_GET获取
	// $_GET是一个数组,键名就是get参数名
	// 键名=>变量名, 值=>变量值

	// print_r()格式化打印输出一个数组
	print_r($_GET);
	echo $_GET['email'];

	// 获取变量之前要进行判断,用isset()
	if (isset($_GET['email'])) {
		echo $_GET['email'];
	} else {
		// 给个默认值
		$_GET['email'] = '';
	}
	// 与js类似,可以用三元运算符进行简化
	echo isset($_GET['email']) ? $_GET['email'] : '';

	// 使用<pre>标签,在网页中可以实现格式化输出
	echo '<pre>';
	print_r($_GET);
?>
1.0请求参数放在header请求头中发送, url地址看不到请求参数,适合敏感信息
2.0通常是通过表单提交并, 用来更新服务器上的信息
3.0适合发送大量的数据到服务器端, 长度受到配置文件限制,但比GET要大得多
4.0服务器端脚本使用预定义变量数组 $_POST 进行接收
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>post</title>
	</head>
	<body>
		<form action="" method="post">
			<label for="email">邮箱:</label>
			<!--将用户输入的内容动态添加到value字段中, 创建具有粘性的表单-->
			<input type="email" id="email" name="email" value="<?php echo isset($_POST['email']) ? $_POST['email'] : ''; ?>">
			<label for="password">密码:</label>
			<input type="password" id="password" name="password" value="<?php echo isset($_POST['email']) ? $_POST['email'] : '';?>">

			<button>登录</button>
		</form>
	</body>
</html>

<?php
	// POST请求, 参数不是通过URL传递, 而是通过请求头
	// 获取通过url发送的变量参数, php通过超全局变量$_POST获取
	// $_POST是一个数组,键名就是POST参数名
	// 键名=>变量名, 值=>变量值

	// print_r()格式化打印输出一个数组
	print_r($_POST);
	echo $_POST['email'];
	// 获取变量之前要进行判断,用isset()
	if (isset($_POST['email'])) {
		echo $_POST['email'];
	} else {  // 给个默认值
		$_POST['email'] = '';
	}
	// 与js类似,可以用三元运算符进行简化
	echo isset($_POST['email']) ? $_POST['email'] : '';

	// 使用<pre>标签,在网页中可以实现格式化输出
	echo '<pre>';
	print_r($_POST);
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值