C之BS开发

一、 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为欧拉安装部署:Oracle11g

一、环境准备 1、下载安装低版本的libaio包&#xff1b;libaio版本太高&#xff0c;会造成编译错误 查看libaio1库版本不能大于0.3.109 [oracles3 install]$ rpm -qa libaio libaio-0.3.110-12.el8.x86_64# 查看欧拉操作系统版本 [oraclelocalhost bin]$ cat /etc/os-release…

stable diffusion 基础教程-提示词之艺术风格用法

展现夕阳 golden hour, (rim lighting):1.2, warm tones, sun flare, soft shadows, vibrant colors, hazy glow, painterly effect, dreamy atmosphere阴影 chiaroscuro, (high contrast):1.2, dramatic shadows, bold highlights, moody atmosphere, captivating inte…

5-sql注入之文件读写

文章目录 SQL注入之文件读写1、文件读写注入的原理2、文件读写注入的条件读取文件写入文件 SQL注入之文件读写 1、文件读写注入的原理 就是利用文件的读写权限进行注入&#xff0c;它可以写入一句话木马&#xff0c;也可以读取系统文件的敏感信息。 2、文件读写注入的条件 …

02 Deep learning algorithm

Neural Networks target&#xff1a; inference&#xff08;prediction&#xff09;training my own modelpractical advice for building machine learning systemdecision Tress application: speech&#xff08;语音识别&#xff09; ----> images(计算机视觉)—> t…

MS713/MS713T:CMOS 低压、4Ω四路单刀单掷开关,替代ADG713

产品简述 MS713/MS713T 是一款单芯片 CMOS 4 路可选择开关&#xff0c;具有低 功耗、高开关速度、低导通阻抗、低漏电和高带宽特性。其工作 电压范围是 1.8V 到 5.5V &#xff0c;可以广泛应用在电池供电仪器仪表、新 一代的模数转换和数模转换系统中。其高带宽特性可用在 …

代码+视频,手把手教你R语言使用forestploter包绘制单组及双组森林图

森林图在论文中很常见&#xff0c;多用于表示多因素分析中的变量与结果变量的比值效应&#xff0c;可以用图示的方法比较直观的绘制出来。既往我们在文章《R语言快速绘制多因素回归分析森林图&#xff08;1&#xff09;》已经介绍了怎么绘制森林图&#xff0c;但是绘图比较简单…

SecOC中新鲜度值和MAC都按照完整的值来生成,但是在发送和认证的时候只会截取一部分。这边截取的部分一般取多长?由什么参数设定?

新鲜度值(Freshness Value, FV)和消息验证码(Message Authentication Code, MAC)是SecOC协议中用于保证数据的真实性和新鲜度的重要信息。它们的长度取决于不同的因素,如加密算法、安全级别、通信带宽等。 一般来说,FV和MAC的长度越长,安全性越高,但也会占用更多的通信…

Docker随笔

OverView 为什么需要Docker 如果我需要部署一个服务&#xff0c;那么我需要提前部署其他应用栈&#xff0c;不同的应用栈会依赖于不用的操作系统和环境。这样做会产生一些负面影响&#xff1a; 不同版本依赖较长的部署时间不同的Dev/Test/Prod环境 这时我们需要一个工具去解…

JumpServer3.0版本-资产管理

资产列表 资产列表可展示资产树和类型树,可以查看添加的所有资产 新增资产也是在此页面 在资产树上面右键可以创建新的子节点 比如这里我新建了个“腾讯云”节点 选中腾讯云节点,点击中间的“创建”按钮,新增资产 选择你的主机类型,我这是Linux 填写你资产的名称、IP必…

Java Arrays.copyOfRange的用法

Arrays.copyOfRange的使用方法&#xff1a; 将一个数组拷贝至另一个数组中 参数&#xff1a; original&#xff1a;第一个参数为要拷贝的数组对象 from&#xff1a;第二个参数为拷贝的开始位置&#xff08;包含&#xff09; to&#xff1a;第三个参数为拷贝的结束位置&#x…

AIGC实战——自回归模型(Autoregressive Model)

AIGC实战——自回归模型 0. 前言1. 长短期记忆网络基本原理2. Recipes 数据集3. 处理文本数据3.1 文本与图像数据处理的差异3.2 文本数据处理步骤 4. 构建 LSTM 模型4.1 模型架构4.2 LSTM 计算流程4.3 训练 LSTM 5. LSTM 模型分析小结系列链接 0. 前言 自回归模型 (Autoregres…

【LMM 010】MiniGPT-v2:使用独特的标识符实现视觉语言多任务学习的统一的多模态大模型

论文标题&#xff1a;MiniGPT-v2: Large Language Model As a Unified Interface for Vision-Language Multi-task Learning 论文作者&#xff1a;Jun Chen, Deyao Zhu, Xiaoqian Shen, Xiang Li, Zechun Liu, Pengchuan Zhang, Raghuraman Krishnamoorthi, Vikas Chandra, Yun…

gitlab高级功能之Kubernetes Agent介绍

文章目录 1. 前置条件2. 简介3. GitLab Kubernetes Agent 的部署3.1 启用 Agent 服务端3.2 创建 Agent 配置和清单仓库 4. 安装agent4.1 连接k8s集群4.2 在集群中部署4.3 修改资源清淡&#xff0c;调整pod的副本数 5. 思考 1. 前置条件 gitlab 14.5 专业版k8s集群helm客户端工…

linux 使用iniparser读取.ini文件的配置信息

为什么要用项目配置文件 对于很多程序中要用的参数如果是可变的&#xff0c;那么最好的处理方式就是通过main(int argc,char **argv) 函数参数传递&#xff0c;或者从别的地方去获取&#xff0c;这其中之一就是配置文件&#xff0c;但是在一个成熟和架构完善的系统&#xff0c…

Spring的依赖注入(DI)

1.DI 概述&#xff1a;DI&#xff08;Dependency Injection&#xff09;依赖注入&#xff0c;在Spring创建对象的同时&#xff0c;为其属性赋值&#xff0c;称之为依赖注入。 1.1构造函数注入 顾名思义&#xff0c;就是使用类中的构造函数&#xff0c;给成员变量赋值。注意&…

ts相关笔记(基础必看)

推荐一下小册 TypeScript 全面进阶指南&#xff0c;此篇笔记来源于此&#xff0c;记录总结&#xff0c;加深印象&#xff01; 另外&#xff0c;如果想了解更多ts相关知识&#xff0c;可以参考我的其他笔记&#xff1a; vue3ts开发干货笔记TSConfig 配置&#xff08;tsconfig.…

安全cdn有哪些优势

1. 免备案&#xff1a;在中国大陆地区&#xff0c;进行网站建设需要先进行备案手续&#xff0c;而安全cdn可以避免这一繁琐的步骤&#xff0c;节省时间和精力。 2. 精品线路&#xff1a;安全cdn使用的是覆盖范围更广、速度更快的香港CN2 GIA优化线路。 3. 高速稳定&#xff1a…

Java多线程技术10——线程池ThreadPoolExecutor之Executor接口

1 概述 在开发服务器软件项目时&#xff0c;经常需要处理执行时间很短并且数据巨大的请求&#xff0c;如果为每一个请求创建一个新的线程&#xff0c;则会导致性能上的瓶颈。因为JVM需要频繁地处理线程对象的创建和销毁&#xff0c;如果请求的执行时间很短&#xff0c;则有可能…

【量化金融】《证券投资学》吴晓求(第四版)(更新中)

这里写目录标题 第一篇 基本知识第1章 证券投资工具名词解释简答题 第2章 证券市场名词解释简答题 第二篇 基本分析第三篇 技术分析第四篇 组合管理第五篇 量化分析与交易策略 第一篇 基本知识 第1章 证券投资工具 名词解释 风险&#xff08;risk&#xff09; 未来结果的不…

Hive - Select 使用 in 限制范围

目录 一.引言 二.Select Uid Info 1.少量 Uid 2.大量 Uid ◆ 建表 ◆ 本地 Load ◆ HDFS Load ◆ Select In 三.总结 一.引言 工业场景下 Hive 表通常使用 uid 作为用户维度构建和更新 Hive 表&#xff0c;当我们需要查询指定批次用户信息时&#xff0c;可以使用 in …