boa服务器:BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。
CGI:在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。即客户端与服务器的接口。比如留言本的工作流程:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束(这段程序实例化的进程我放在cgi-bin目录下)
cgi-bin:存放CGI的可执行文件,目的是通过网关接口来操作服务器外设和数据库
B/S架构:即browser和server的模式
C/S架构:即client和server的模式
这两种模式各有各的优缺点,这里我用列表总结下:
角度 | B/S | C/S |
硬件环境 | 广域网 | 专网 |
安全要求 | 面向不可预估的用户群体,安全控制能力弱 | 面向相对固定的用户群体,安全控制能力强 |
程序架构 | B/S | C/S |
软件重用 | 优 | 差(客户端越多,越臃肿,也就越难维护和重用) |
系统维护 | 服务器占大头,方便升级 | 一般来说服务器占小头,客户端占大头,升级难 |
处理问题 | 分散 | 集中 |
用户接口 | 跨平台,利用各种浏览器访问服务器 | 和OS的关系紧密,不同系统下应用几乎不兼容 |
信息流 | 交互密集,所有操作实际上基本都在服务器 | 交互低,一般都是客户端与服务器通信,然后通过服务器和另一端客户端通信 |
boa服务器的搭建:
这里提供一下boa服务器的配置和源代码,直接拿来用,正所谓站在巨人的肩膀上才能走的更远。
Boa Webserverhttp://www.boa.org/
我这里下载拷贝到基于linux内核的Ubuntu系统的tools目录下,解压
解压后cd boa-0.94.13版本的目录下,可以看到src目录和boa.conf,src存放的就是boa服务器的源代码文件,boa.conf则是环境配置文件。
这都是别人写好的boa服务器,我们准备搭建自己的boa,当然不是重头搭建,而是在源码的基础上创建一个boa目录和boa目录下的三个子目录boa、log、www,包括www子目录下的cgi-bin,将源代码和配置文件等拷贝过来。
注意注意: boa主目录自己定,但是要记住绝对路径
切换到存放boa服务器的tools目录下,cd src,进入src源代码目录
输入./configure,回生成Makefile文件,然后使用make,生成 ".o" 可执行文件
注意:使用make,如果提示什么命令缺失,使用sudo apt-get install bison flex 安装bison和flex这两个命令,因为Ubuntu下原来的两个命令yacc和lex改成bison和flex了,但是错误提示没改不管他。
之后执行如下命令:
cp boa /home/boa/boa
cd ..
cp boa.conf /home/boa/boa
cp /etc/mime.types /home/boa/boa
然后使用vim编辑器修改boa.conf的配置文件
cd /home/boa/boa/
vim boa.conf
包括ErrorLog、AccessLog、DocumentRoot、MimeTypes、的目录路径都修改成你自己的
另外DirectoryIndex homepage.html表示默认网页,这里可以改成index.html,或者其他都可以
ScriptAlias /cgi-bin/ 、/home/boa/www/cgi-bin/ 第一个是相对路径说白了就是快捷方式,从绝对路径找
在自己的boa下创建三个文件
touch /home/boa/log/error_log
touch /home/boa/log/access_log
touch /home/boa/www/index.html
最后sudo ./boa运行boa服务器
cd /home/boa/boa/
sudo ./boa
使用命令sudo ps -A|grep boa查看是否运行
有boa进程号出现即代表运行了。
然后我们就可以在/boa/www下创建一个网页,如index.html,编程代码,就可以通过浏览器访问我们编写的网页。
我们编写的网页以HTML语言编写
HTML 是超文本标记语言(Hyper Text Markup Language)
HTML 由各种各样的标签(tag)组成
注释标签:<!注释>
<head></head>头部标签
<body></body>主体标签
还有如下的格式标签
<a></a>超链接标签
<a href="mailto:邮件名字@某邮箱后缀名?subject=问候语"></a>电子邮件超链接
<a href="#top"></a>回到当前网页的顶部
<a href=“#here"></a>准备要跳到here的位置
<a name="here"></a>跳到here位置
<a href=“某网址,比如http://www.coolshell.cn/”></a>这是跳到外网
<a href="某网址" target="_blank"></a>
<a src="某网址"><img src="某路径照片"></a>网页的图片超链接
表格标签
这里使用vscode来编写/boa/www目录下的网页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>电子表格</title>
<title>Document</title>
</head>
<body style="background-color:aliceblue;">
<table border="1" align="center">
<caption>个人简历</caption>
<tr align="center">
<td colspan="7">xxxx</td>
</tr>
<tr align="center">
<td>name</td>
<td>xxxx</td>
<td>sex</td>
<td>xxxxx</td>
<td rowspan="5"> <img src="./xxx.jpg" width="200" height="100"></td>
</tr>
<tr align="center">
<td>出生年月</td>
<td>xxxxxx</td>
<td>民族</td>
<td>xx</td>
</tr>
<tr align="center">
<td>籍贯</td>
<td>xxxxx</td>
<td>政治面貌</td>
<td>xxxx</td>
</tr>
<tr align="center">
<td>手机</td>
<td>xxx</td>
<td>联系电话</td>
<td>xxxx</td>
</tr>
<tr align="center">
<td>E-mail</td>
<td colspan="3">xxxxxxxx</td>
</tr>
<tr align="center">
<td colspan="2">毕业院校</td>
<td colspan="1">XXXX</td>
<td colspan="1">学历</td>
<td colspan="1">xxxxx</td>
</tr>
<tr align="center">
<td colspan="2">专业</td>
<td>xxxxx</td>
<td colspan="1">毕业时间</td>
<td colspan="1">xxxxxx</td>
</tr>
<tr align="center">
<td colspan="3">主修课程</td>
<td colspan="3">xxxxxx</td>
</tr><!表示换行此处是注释,!表示注释>
<tr align="center">
<td colspan="3">外语水平</td>
<td colspan="3">xxxxxx</td>
</tr>
<tr align="center">
<td colspan="3">求职方向</td>
<td colspan="3">xxxxx</td>
</tr>
<tr align="center">
<td colspan="3">职业方向</td>
<td colspan="3">xxxxxx</td>
</tr>
<tr align="center">
<td colspan="3">职业目标</td>
<td colspan="3">xxxxx</td>
</tr>
<tr align="center">
<td colspan="3">实践经历</td>
<td colspan="3">xxxxx</td>
</tr>
<tr align="center">
<td colspan="3">所获荣誉</td>
<td colspan="3">xxxxx</td>
</tr>
<tr align="center">
<td colspan="3">个人爱好</td>
<td colspan="3">xxxxx</td>
</tr>
<tr align="center">
<td colspan="5">个人评价</td>
</tr>
<tr align="center">
<td colspan="5">*********** </td>
</tr>
<tr align="center">
<td colspan="5"> ***********</td>
</tr>
<tr align="center">
<td colspan="5"> ***********</td>
</tr>
</table>
</body>
</html>
效果图
注意:一定要把boa服务器运行起来,也就是前面说的sudo ./boa
然后随便打开一个浏览器,在浏览器的网址输入框输入服务器的系统所在的IP地址和指定的网页
比如我的ip和index.html
然后就会打开上图的运行效果图。
这里web的学习网站,come on!!!