C之BS开发

news2024/11/18 5:48:35
一、 BS 概述与 boa 搭建
1.1 BS 模式开发概述
BS 模式: 浏览器与服务器模式, 即通过浏览器访问服务器的 Web 资源。
1.1.1 web 前端开发技术
主要包含: HTML CSS XML/JSON Javascript AJAX
HTML
超文本标记语言 ( 英文全称 :HyperText Markup Language)
超文本 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素
CSS
CSS: 层叠样式表 ( 英文全称: Cascading Style Sheets)
CSS 是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和现实的
方式。
XML
XML 指可扩展标记语言( EXtensible Markup Language
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 是各种应用程序之间进行数据传输的最常用的工具
Javascript
JavaScript 是一种属于网络的脚本语言 , 已经被广泛用于 Web 应用开发 , 常用来为网页添加各式各样
的动态功能 , 为用户提供更流畅美观的浏览效果。
通常 JavaScript 脚本是通过嵌入在 HTML 中来实现自身的功能的。
AJAX
Ajax “Asynchronous Javascript And XML” (异步 JavaScript XML ),是指一种创建交互式网
页应用的网页开发技术。
1.1.2 Web 服务器端开发技术
主要包含 CGI ASP PHP JAVA Python
CGI (英文全称: Common Gateway Interface )通用网关接口。
CGI Web 服务器运行时外部程序的规范 , CGI 编写的程序可以扩展服务器功能。
CGI 应用程序能与浏览器进行交互 , 还可通过数据库 API 与数据库服务器等外部数据源进行通信 , 从数据库
服务器中获取数据。
你可以简单的认为 CGI 程序是服务器端的一个可执行程序
最关键的是使用 C 语言,可以快速开发 CGI 程序,处理 Web 前端请求。 1.1.3 数据管理
Oracle MySQL SQLServer SQLite
通过数据库服务器,实现数据的存和取。
1.2 嵌入式 web 开发模型
1.3 Web 原理
1.4 boa 服务器搭建
Boa 是一个轻量级、快速响应、简单配置的 HTTP 服务器,适用于嵌入式系统和资源有限的环
境。 1.4.1 boa 概述
Boa 是一个轻量级的 HTTP 服务器,适用于嵌入式系统和资源有限的环境。
特点:
1. 轻量级: Boa 是一个非常轻量级的 HTTP 服务器,具有小巧、高效的特点。它的设计目标是在资源
受限的环境中运行,例如嵌入式系统或路由器等。
2. 快速响应: Boa 通过使用事件驱动的方式,能够快速响应客户端的请求。它使用非阻塞 I/O 和异步
处理来提高性能和并发处理能力。
3. 配置简单: Boa 的配置相对简单,可以通过简单的配置文件进行设置。你可以指定监听的端口、根
目录、默认文档等。
4. 支持静态和动态内容: Boa 支持提供静态内容(如 HTML CSS 、图像等)以及动态内容(如 CGI
程序或服务器端脚本)。
5. CGI 支持: Boa 可以通过 CGI (通用网关接口)来运行动态内容。它可以与 CGI 程序进行交互,并
将请求转发给 CGI 程序进行处理。
6. 安全性: Boa 提供了一些安全特性,如基本的身份验证和 SSL/TLS 支持,以确保通信的安全性。
7. 可移植性: Boa 是一个跨平台的 HTTP 服务器,可以在多个操作系统上运行,包括 Linux Unix
Windows 等。
1.4.2 安装 boa
Ubuntu 下安装 boa 服务器。
解压:
安装额外的依赖 : bison flex
切换目录:
修改 defines.h 文件 : 30
执行如下命令:
./configure
make
出现此错时,修改 compat.h 文件的 120 行内容,如下:
将宏中的 ## 去掉。
另外, 修改 boa.c 文件的 226 行代码注释一下:
修改后,先执行: make clean , 再执行 make
当前目录出现 boa 文件即编译成功。
1.4.3 创建 boa 服务器目录结构
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
mkdir /home/disen/boa/boa -p
mkdir /home/disen/boa/www
mkdir /home/disen/boa/www/cgi-bin
将编译好的 boa boa_indexer 程序和 boa.conf ,放在 /home/disen/boa/boa 目录下
cp boa boa_indexer ~/boa/boa
cp ../boa.conf ~/boa/boa
sudo cp /etc/mime.types ~/boa/boa
1.4.3 配置 boa 服务
配置文件 vi ~/boa/boa/boa.conf 文件
1.4.3.1 修改用户和组
修改 48 49 行:
User 0
Group 0
1.4.3.2 修改日志的位置
修改 62 行: ErrorLog
修改 74 行: AccessLog
ErrorLog /home/disen/boa/boa/error_log
AccessLog /home/disen/boa/boa/access_log
error_log access_log 需要自已手动创建:
1.4.3.3 boa_indexer 位置
修改 130 行:
DirectoryMaker /home/disen/boa/boa/boa_indexer
1.4.3.4 MimeTypes 位置
修改 155 行:
MimeTypes /home/disen/boa/boa/mime.types
1.4.3.5 www 位置
修改 111 行:
DocumentRoot /home/disen/boa/www
1.4.3.6 修改 cgi-bin 的位置
修改最后一行:
ScriptAlias /cgi-bin/ /home/disen/boa/www/cgi-bin/
1.4.4 启动与访问服务
boa 启动服务
sudo ~/boa/boa/boa
检查服务是否启动:
ps -ef|grep boa
或者查看 80 端口占用情况:
netstat -lntp
可以在 www 目录下开发 HTML 网页,并在浏览器访问
boa 默认的 Web 服务端口为 80 。可以修改 boa 配置文件,修改此端口,如 8080
vi ~/boa/www/index.html
<h1> test boa web server </h1>
在浏览器访问:
如果修改了端口号为 8080 ,则地址栏中输入: http://192.168.3.10:8080

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1359147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Element】el-form和el-table嵌套实现表格编辑并提交表单校验

一、背景 页面需要用到表格采集用户数据&#xff0c;提交时进行表单校验&#xff1b;即表格中嵌套着表单&#xff0c;保存时进行表单校验 二、功能实现 2.1、el-form和el-table嵌套说明 ① :model"formData" 给表单绑定数据&#xff0c;formData是表单的数据对象 …

【docker】网络模式管理

目录 一、Docker网络实现原理 二、Docker的网络模式 1、host模式 1.1 host模式原理 1.2 host模式实操 2、Container模式 2.2 container模式实操 3、none模式 4、bridger模式 4.1 bridge模式的原理 4.2 bridge实操 5、overlay模式 6、自定义网络模式 6.1 为什么需要…

Ubuntu20 编译 Android 12源码

1.安装基础库 推荐使用 Ubuntu 20.04 及以上版本编译&#xff0c;会少不少麻烦&#xff0c;以下是我的虚拟机配置 执行命令安装依赖库 // 第一步执行 update sudo apt-get update//安装相关依赖sudo apt-get install -y libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-de…

【c++】入门3

引用 1.swap交换两个变量值的时候可以用引用 2.例题中通过前序遍历数组构建二叉树&#xff0c;可以用引用传别名. #include <stdio.h> #include <stdlib.h> typedef struct BinaryTreeNode {char data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; …

数据库设计——DML

D M L \huge{DML} DML DML&#xff1a;数据库操作语言&#xff0c;用来对数据库中的数据进行增删改查。 增&#xff08;INSERT&#xff09; 使用insert来向数据库中增加数据。 示例&#xff1a; -- DML : 数据操作语言 -- DML : 插入数据 - insert -- 1. 为 tb_emp 表的 us…

烟花燃放如何管控?智能分析网关V4烟火检测保障烟火安全

一、方案背景 随着元旦佳节的热潮退去&#xff0c;春节也即将来临&#xff0c;在众多传统的中国节日里&#xff0c;烟花与烧纸祭祀都是必不可少的&#xff0c;一方面表达了人们对节日的庆祝的期许&#xff0c;另一方面也是一种对故者思念的寄托。烟花爆竹的燃放不仅存在着巨大的…

SparkSQL基础解析(三)

1、 Spark SQL概述 1.1什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块&#xff0c;它提供了2个编程抽象&#xff1a;DataFrame和 DataSet&#xff0c;并且作为分布式SQL查询引擎的作用。 我们已经学习了Hive&#xff0c;它是将Hive SQL转换成MapReduce然后提…

【springboot+vue项目(十一)】springboot整合EasyExcel

EasyExcel是阿里巴巴开源的一个Java库&#xff0c;用于操作Excel文件。它提供了简单易用的API&#xff0c;可以读取、写入和转换Excel文件&#xff0c;支持大量数据的导入和导出操作。 一、添加依赖&#xff08;版本3.2&#xff09; <!--easyexcel操作excel--> <depe…

风靡全网的Jmeter+ant+jenkins接口自动化测试框架

大致思路&#xff1a;Jmeter可以做接口测试&#xff0c;也能做压力测试&#xff0c;而且是开源软件&#xff1b;Ant是基于Java的构建工具&#xff0c;完成脚本执行并收集结果生成报告&#xff0c;可以跨平台&#xff0c;Jenkins是持续集成工具。将这三者结合起来可以搭建一套We…

Prometheus 不能访问k8s的中的一些metrics的问题(controller-manager、scheduler、etcd)

主要有三个点 controller-manager、scheduler、etcd 参考&#xff1a; https://www.cnblogs.com/ltaodream/p/15448953.html kube-scheduler 在每台master节点执行 vim /etc/kubernetes/manifests/kube-scheduler.yaml 将 --bind-address127.0.0.1 改为 --bind-address…

基于SSM框架的宠物商城系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 功能模块&…

软件测试|一篇文章带你深入理解SQL约束

深入理解SQL约束&#xff1a;保障数据完整性和一致性的重要工具 SQL约束是在关系型数据库中用于保障数据完整性和一致性的重要工具。本文将深入探讨SQL约束的概念、类型以及应用&#xff0c;以帮助读者更好地理解和使用SQL约束来确保数据库中的数据质量。 SQL约束 约束&…

vue动态组件、保持存活

加 component :is 引入组件名称 <component :is"tabcom"></component> keep-alive 保持存活 <keep-alive> <component :is"tabcom"></component></keep-alive> 保持存活&#xff1a;切换组件后&#xff0c;不重…

人机交互主板定制_基于MT8735安卓核心板的自助查询机方案

人机交互主板是一种商显智能终端主板&#xff0c;广泛应用于广告机、工控一体机、教学一体机、智能自助终端、考勤机、智能零售终端、O2O智能设备、取号机、计算机视觉、医疗健康设备、机器人设备等领域。 人机交互主板采用联发科MTK8735芯片平台&#xff0c;四核Cortex-A53架构…

Sectigo与Geotrust ov多域名证书的区别

Sectigo和Geotrust都是比较知名的CA认证机构。其中&#xff0c;Sectigo原名Comodo&#xff0c;在2018年整合SSL证书业务&#xff0c;改名为Sectigo&#xff0c;旗下的SSL证书产品根证书也变为Sectigo。Geotrust则是另一个备受信任的数字证书品牌&#xff0c;现在是Digicert旗下…

Python Gradio构建简单的交互界面

Gradio 是一个用于构建机器学习和数据科学的交互式应用程序的 Python 库&#xff0c;但是我们可以用它来构建一些简单的交互界面&#xff0c;其代码之简单令人震惊 文本输入输出 import gradio as grdef szu(text):return textinterface gr.Interface(fnszu, inputs"text…

43 tmpfs/devtmpfs 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…

keras 深度学习框架实现 手写数字识别

阅读本文之前&#xff0c;请先参考--------win10搭建keras深度学习框架 安装运行环境 阅读本文之前&#xff0c;请先参考--------keras人工智能框架 MNIST 数据集 随机展示 查看训练图片 完整代码如下图&#xff1a; 在sublimeText中 使用ctrlB运行代码&#xff0c;结果如…

没有一家车企能绕开「数据闭环」

作者 |张祥威 编辑 |德新 2023年&#xff0c;在比亚迪那次公布智驾数据规模后&#xff0c;智能化下半场的战斗就正式打响了。 如今&#xff0c;自动驾驶正在沿着特斯拉提出的「BEVTransformer」急速推进&#xff0c;这条技术路线短短几年就得到了验证&#xff0c;随着智驾起较…

报表控件Stimulsoft 2023回顾:都做了哪些产品的改变?

在2023年过去一年中&#xff0c;报表控件Stimulsoft 针各类控件都做了重大改变&#xff0c;其中新增了某些产品、同时加强了很多产品的性能和UI设计&#xff0c;更加符合开发者需求&#xff0c;下面就跟随小编一起来回顾&#xff0c;具体都有哪些↓↓↓ Stimulsoft Ultimate &…