CS(Client/Server,客户端/服务器)和BS(Browser/Server,浏览器/服务器)是两种常见的计算架构模式,以下是它们的区别:
基础概念:
优势:
类型:
应用场景:
可能遇到的问题及原因:
解决方法:
以下是一个简单的示例代码,展示CS架构中客户端与服务器通信(使用Java):
客户端发送请求:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class CSClient {
public static void main(String[] args) throws Exception {
URL url = new URL("http://yourserver/api");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
out.write("request data");
out.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response;
while ((response = in.readLine())!= null) {
System.out.println(response);
}
in.close();
}
}
服务器端处理请求(使用Java Servlet):
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class CSServerServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String requestData = req.getParameter("data");
// 处理请求数据
resp.getWriter().write("response data");
}
}
以下是一个简单的BS架构示例代码(使用HTML和JavaScript):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>BS Example</title>
</head>
<body>
<button onclick="sendRequest()">Send Request</button>
<script>
function sendRequest() {
fetch('http://yourserver/api')
.then(response => response.text())
.then(data => {
console.log(data);
});
}
</script>
</body>
</html>
服务器端处理请求(使用Node.js):
const express = require('express');
const app = express();
app.post('/api', (req, res) => {
// 处理请求数据
res.send('response data');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
领取专属 10元无门槛券
手把手带您无忧上云