BOA服务器(一):简介

这篇具有很好参考价值的文章主要介绍了BOA服务器(一):简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本文主要介绍BOA服务器的工作原理。

1.嵌入式WEB服务器

嵌入式WEB服务器常见的有lighttpd、shttpd、thttpd、boa、mathopd、minihttpd、appweb、goahead等,本文主要介绍BOA服务器。

它是一个非常小巧的服务器,执行代码大约60KB左右,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。由于它是一个单任务的web服务器,只能一次完成用户的请求,而不会fork出新的进程来处理并发的链接请求。

但是BOA支持CGI,能够为CGI程序fork出一个进程来执行相应的客户请求。它的主要功能是在互联嵌入式设备之间进行信息交互,达到通过网络对嵌入式设备进行监控,并将反馈信息自动上传给主控设备的目的。
它是基于HTTP超文本传输协议的,Web网页是Web服务基本的传输单元。

嵌入式Web服务的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器(服务器)构成,也即著名的B/S结构

运行于客户端的浏览器首先要与嵌入式Web服务器BOA端建立连接,打开一个套接字虚拟文件,此文件建立标志着SOCKET连接建立成功然后客户端浏览器通过套接字SOCKET以GET或者POST参数传递方式向Web服务器提交请求,Web浏览器提交请求后,通过HTTP协议传送给Web服务器。

Web服务器接到请求后,根据请求的不同进行事务处理,返回HTML文件或者通过CGI调用外部应用程序,返回处理结果。服务器通过CGI与外部应用程序和脚本之间进行交互,根据客户端浏览器在请求时所采用的方法,服务器会搜集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序,CGI扩展程序进行信息处理并将结果返回给服务器,然后服务器对信息进行分析,并将结果发送回客户端在浏览器上显示出来。

2.服务器与客户端之间的通信

服务器客户端之间的通信,是客户端的浏览器和服务器端的http服务器之间的HTTP通信,我们只需要知道浏览器请求执行服务器上哪个CGI程序就可以了,其他不必深究细节,以为这些过程不需要程序员去操作。服务器和CGI程序之间的通信才是我们关注的。
一般情况下,服务器和CGI程序之间是通过标准输入输出来进行传递的,而这个过程需要环境变量的协作方可实现。

  1. 服务器将URL指向一个应用程序
  2. 服务器为应用程序执行做准备
  3. 应用程序执行,读取标准输入输出和有关环境变量
  4. 应用程序进行标准输出

注:对于Windows系统而言,还可以通过profile文件进行数据传输
更通俗点讲,网页里面有个变量(环境变量),变量里面有个值, 通过某种方式把这个值传到 cgi 程序中, cgi 程序中提取这个变量的值,根据这个值做出相应的处理;那么这个变量是怎么在从网页传到 cgi 程序的呢?

3.表单提交

在HTML中,当客户填写了表单,并按下了发送(submit)按钮后,表单的内容被发送到了服务器端,一般的,这时就需要有一个服务器端脚本来对表单的内容进行一些处理,或者是把它们保存起来,或者是按内容进行一些查询,或者是一些别的什么。没有了 CGI,WEB 的世界就完全失去了它的交互性,所有的信息都变成单向的了,而不能够有任何的反馈。这里就要说到表单了:
表单是html中在网页中主要负责数据采集功能。

一个表单有三个基本组成部分:
表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

这些东西只要打开 dreamweaver 随便建个 html 就可以看到它的表单元素; 当你打开一个网页的时候,你输入的文字或者做出的选择,类似等等要提交信息的地方基本上都是属于表单元素; 这些表单元素(表单项)都必须放在表单内, 而整个表单在网页是看不到的,你可以理解它为一个容器,里面装着你要发给服务器的东西。

由于 HTML 只能显示静态网页,无法和服务器活动数据进行交互,所以要通过表单与服务器互动; 就跟你去银行办业务,人家要你在表上填一堆东西,然后把表提交给业务员,那个表就是表单, 网站表单类似这种包含了许多用户填写的信息,提交给服务器,服务器获取填写的信息后执行相应操作。
web服务器boa,嵌入式开发,1024程序员节

图为html文件中的一个代码段,这就是表单的提交过程

这里的“submit”即为表单内容,里面的数据会被提交到指定 URL(这个 url 可以是服务器上的一个 cgi程序,此处即为login.cgi)。
URL:统一资源定位符(Uniform Resource Locator,URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

4.HTML网页

网页是一个纯文本文件,是向浏览者传递信息的载体,以超文本和超媒体为技术,采用HTML、CSS、XML等语言来描述组成页面的各种元素,包括文字、图像、音乐等,并通过客户端浏览器进行解析,从而向浏览器呈现网页的各种内容。做好的网页放在BOA服务器的WWW文件里,客户端浏览器对哪个网页有请求服务器就把哪个页面发送给浏览器。文章来源地址https://www.toymoban.com/news/detail-755083.html

到了这里,关于BOA服务器(一):简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式 Linux 安全简介

    安全就是降低风险。 一方面所有者,即产品或服务的受益者(用户、制造商、企业主等)。所有者希望保护资产,即产品或服务中任何有价值的东西(数据、代码、声誉等)。 另一方面威胁行为者,即能够表现出威胁的人或事物(恶意黑客等),即任何能够以可能造成伤害

    2024年02月08日
    浏览(44)
  • 掌握嵌入式Linux编程0简介

    多年来,Linux一直是嵌入式计算的主流。然而,涵盖这一主题的书籍却少之又少:本书旨在填补这一空白。术语 \\\"嵌入式Linux \\\"没有很好的定义,可以应用于从恒温器到Wi-Fi路由器到工业控制单元等各种设备内部的操作系统。然而,它们都是建立在相同的基本开源软件上。这些就

    2024年02月07日
    浏览(80)
  • 云计算入门——云服务器:简介

    前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 什么是云服务器? 云服务器 是远程向用户提供计算资源的互联网基础设施。我们可以将云服务器视为一台私人计算机,可以像本地计算机(例如笔记

    2024年01月18日
    浏览(42)
  • BRAS(宽带接入服务器)简介

    宽带接入服务器(Broadband Remote Access Server,简称BRAS)是面向宽带网络应用的新型接入网关,它位于骨干网的边缘层,可以完成用户带宽的IP/ATM网的数据接入(接入手段主要基于xDSL/Cable Modem/高速以太网技术(LAN)/无线宽带数据接入(WLAN)/FTTx等),实现商业楼宇及小区住户的宽带

    2024年04月26日
    浏览(44)
  • 腾讯云服务器简介和使用流程

    腾讯云服务器在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是云服务器价格便宜比较省钱。腾讯云服务器网来详细说下腾讯云服务器购买省钱流程和自定

    2024年02月07日
    浏览(46)
  • 集群服务器通信协议:TIPC简介

    1.TIPC协议简介    TIPC是爱立信公司提出的一种透明进程间通信协议(Transparent Interprocess Communication), 主要适用于高可用(HAL)和动态集群环境. 该软件当前主要由风河(windriver)公司在维护, 主要支持Linux, Solaris 和 VxWorks三种操作系统, 从Linux内核2.6.34开始支持TIPC的最新版本2.0, 不过还

    2024年02月08日
    浏览(41)
  • 嵌入式学习笔记(20) SoC时钟系统简介

    什么是时钟,SoC为什么需要时钟 (1)时钟同步工作系统的同步节拍 (2)SoC内部有很多器件,譬如CPU、DRAM控制器、串口、GPIO等内部外设,这些东西要彼此协调工作,需要一个同步的时钟系统来指挥。这个就是SoC的时钟系统。 时钟一般如何获得? (1)外部直接输入时钟信号

    2024年02月09日
    浏览(41)
  • MobaXterm简介与使用(连接Linux服务器)

    MobaXterm 是用于远程计算的工具箱,作为一个 Windows 应用程序,它为程序员、网站管理员、IT管理员和几乎所有需要以更简单的方式处理远程工作的用户量身定制了大量功能。MobaXterm 提供了所有重要的远程网络工具(SSH, X11, RDP, VNC, FTP, MOSH,…)和 Unix 命令(bash, ls, cat, sed, grep, a

    2024年01月17日
    浏览(49)
  • 使用Yocto进行嵌入式Linux开发1 Yocto简介

    Yocto项目是Linux基金会的一个工作组,它是一个开源协作项目,帮助开发人员创建基于Linux的定制系统,这些系统专为嵌入式产品而设计,与产品的硬件架构无关。Yocto项目提供了一个灵活的工具集和开发环境,使世界各地的嵌入式设备开发人员能够通过共享技术、软件栈、配

    2024年02月09日
    浏览(47)
  • 搭建web服务器和NFS服务器

    网站需求: 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student/ 网站访问学生信息,www.openlab.com/data/网站访问教学资料www.openlab.com/money/网站访问缴费网站。 3.要求 (1)学生

    2024年01月23日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包