📅  最后修改于: 2023-12-03 15:10:38.782000             🧑  作者: Mango
在网络应用程序中,服务器端脚本和客户端脚本分别负责不同的功能。服务器端脚本主要用于处理数据和逻辑,客户端脚本则用于处理页面展示和用户交互。
服务器端脚本是运行在服务器上的脚本,用于处理数据和逻辑。服务器端脚本可以使用多种编程语言编写,如PHP、Python、Java等。服务器端脚本主要用于以下方面:
服务器端脚本可以使用数据库进行数据查询和存储。常见的数据库包括MySQL、PostgreSQL、MongoDB等。服务器端脚本通过数据库连接,执行SQL语句进行数据查询和存储。
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
// 检查连接
if (mysqli_connect_errno()) {
echo "连接失败: " . mysqli_connect_error();
exit();
}
// 查询示例
$sql = "SELECT * FROM users";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
mysqli_close($con);
?>
服务器端脚本可以控制网站的逻辑流程。例如:用户注册登录,根据用户身份和权限进行网站功能访问的授权等。
<?php
session_start();
if(isset($_SESSION["username"])){
echo "欢迎 " . $_SESSION["username"] . "!";
// 显示网站功能按钮
} else {
// 显示登录页面
}
?>
通过服务器端脚本,可以对用户进行身份验证,保证只有授权用户才能访问特定的功能。
<?php
session_start();
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 验证用户名和密码
$sql = "SELECT id FROM users WHERE username='$username' and password='$password'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 保存用户信息到session
$_SESSION["user_id"] = $result->fetch_assoc()["id"];
echo "登录成功";
} else {
echo "用户名或密码错误";
}
$conn->close();
?>
服务器端脚本可以对数据进行加密和解密,保证数据的安全性。常见的加密算法有MD5、SHA1、AES等。
<?php
// MD5加密示例
$hash = md5($password);
// AES加密解密示例
function encrypt($data, $key) {
$key = md5($key);
$iv = md5($key);
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, 0, $iv);
return $encrypted;
}
function decrypt($encrypted, $key) {
$key = md5($key);
$iv = md5($key);
$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, 0, $iv);
return $decrypted;
}
?>
客户端脚本是运行在客户端(通常是浏览器)上的脚本,用于处理页面展示和用户交互。客户端脚本主要使用JavaScript编写。
客户端脚本可以用于控制网页元素,以达到页面展示的效果。例如:显示/隐藏;动态更改样式等。
// 显示/隐藏示例
function toggleDisplay() {
var element = document.getElementById("myDiv");
if (element.style.display === "none") {
element.style.display = "block";
} else {
element.style.display = "none";
}
}
// 动态更改样式示例
function changeStyle() {
var element = document.getElementById("myDiv");
element.style.fontSize = "30px";
element.style.color = "red";
}
客户端脚本可以用于处理用户交互,例如:表单验证;异步加载数据等。
// 表单验证示例
function validateForm() {
var username = document.forms["myForm"]["username"].value;
var password = document.forms["myForm"]["password"].value;
if (username === "" || password === "") {
alert("请输入用户名和密码");
return false;
}
}
// 异步加载数据示例
function loadXMLDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("myDiv").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
服务器端脚本和客户端脚本各有优劣,根据不同的需求可以选择合适的脚本进行开发。服务器端脚本主要用于处理数据和逻辑,保证数据的安全和可靠;客户端脚本则主要用于页面展示和用户交互,提升用户体验。