探索C/S架构:我的第一次尝试

作为学生,我对计算机科学的热情驱使我探索了客户端/服务器(C/S)架构。C/S架构是一种网络架构,其中软件被分成两大部分:客户端和服务器。客户端负责前端用户界面和用户体验,而服务器处理后台逻辑和数据存储。这种架构允许多个客户端连接到单个服务器,使得资源共享和通信变得更加高效。

理解C/S架构的基本概念

在开始我的项目之前,我首先需要理解C/S架构的基本组件。客户端是用户与之交互的软件,例如网页浏览器或移动应用。服务器则是运行在远程计算机上的软件,负责处理客户端的请求并将响应发回客户端。这种架构允许分散的客户端访问集中的资源,提高了可扩展性和效率。

我的第一次实践

我选择了一个简单的项目来实践:一个天气查询系统。客户端将是一个简单的网页,用户可以输入城市名并提交查询。服务器将接收请求,查询天气API,然后将结果返回给客户端显示。

客户端代码示例(HTML + JavaScript)

<!DOCTYPE html>
<html>
<head>
    <title>天气查询</title>
</head>
<body>
    <h1>查询天气</h1>
    <input type="text" id="cityInput" placeholder="输入城市名">
    <button onclick="fetchWeather()">查询</button>
    <div id="weatherResult"></div>

    <script>
        function fetchWeather() {
            var city = document.getElementById('cityInput').value;
            var xhr = new XMLHttpRequest();
            xhr.open('GET', '/weather?city=' + encodeURIComponent(city), true);
            xhr.onload = function () {
                if (xhr.status >= 200 && xhr.status < 300) {
                    document.getElementById('weatherResult').innerHTML = xhr.responseText;
                } else {
                    document.getElementById('weatherResult').innerHTML = '查询失败';
                }
            };
            xhr.send();
        }
    </script>
</body>
</html>

服务器端代码示例(Node.js)

const http = require('http');
const querystring = require('querystring');

const server = http.createServer((req, res) => {
    const query = querystring.parse(req.url.split('?')[1]);
    const city = query.city;

    // 假设这是对天气API的调用
    const weatherData = `天气:晴朗,温度:25°C`; // 这里应该是API调用的结果

    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end(weatherData);
});

server.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000/');
});

总结

通过这个项目,我对C/S架构有了更深入的理解。我学习了如何创建客户端和服务器端代码,以及它们如何交互。虽然这个项目很简单,但它为我打开了深入学习网络编程和架构设计的大门。我期待在未来的项目中继续探索和应用这些知识。

posted @ 2025-12-04 09:06  曹明阳  阅读(0)  评论(0)    收藏  举报