Embedded HTTP server: Difference between revisions

Content deleted Content added
m Reverted edits by 109.75.55.192 (talk) (AV)
 
(23 intermediate revisions by 12 users not shown)
Line 1:
{{UnreferencedMore citations needed|date=JuneAugust 20082022}}
[[File:2453 IP video server.jpg|thumb|148x200px|right|Front and back views of a small IP video server (Sensoray 2453S) with audio and composite video inputs served via [[HTTP server]] and other protocols.]]
 
An '''embedded [[HTTP server]]''' is a component of a software system that implements thean [[HypertextHTTP Transfer Protocol|HTTPserver]] used in an [[Communicationsembedded protocol|protocolsystem]]. Examples of usage within an application might be:
 
The HTTP server is usually implemented as a [[software component]] of an [[Application software|application]] (embedded) system that controls and/or monitors a machine with mechanical and/or electrical parts.<ref>{{cite journal |title=Edge Computing Using Embedded Webserver with Mobile Device for Diagnosis and Prediction of Metastasis in Histopathological Images |year=2021 |doi=10.1007/s44196-021-00040-x |last1=Johny |first1=Anil |last2=Madhusoodanan |first2=K. N. |journal=International Journal of Computational Intelligence Systems |volume=14 |s2cid=244923748 |doi-access=free }}</ref>
* To provide a [[thin client]] interface for a traditional application.
* To provide [[Database index|index]]ing, [[report]]ing, and [[debugging]] tools during the development stage.
* To implement a protocol for the distribution and acquisition of information to be displayed in the regular interface — possibly a [[web service]], and possibly using [[XML]] as the [[Serialization|data format]].
* To develop a [[web application]]
 
The HTTP server implements the [[Hypertext Transfer Protocol|HTTP]] [[Communications protocol|protocol]] in order to allow communications with one or more local or remote [[User (computing)|users]] using a [[Web browser|browser]]. The aim is to let users to interact with information provided by the embedded system ([[Web user interface|user interface]], data monitoring, [[Data logger|data logging]], data configuration, etc.) via [[Computer network|network]], without using traditional peripherals required for local user interfaces ([[Display device|display]], [[Computer keyboard|keyboard]], etc.).<ref>{{cite web |title=Administering Security for Oracle HTTP server |url=https://docs.oracle.com/en/middleware/fusion-middleware/web-tier/12.2.1.4/secure-ohs/administering-security-oracle-http-server.pdf}}</ref>
There are a few advantages to using HTTP to perform the above:
* HTTP is a well studied cross-platform protocol and there are mature implementations freely available.
* HTTP is seldom blocked by [[Firewall (computing)|firewall]]s and [[intranet]] [[Router (computing)|router]]s.
* HTTP clients (e.g. [[web browser]]s) are readily available with all modern computers.
* There is a growing tendency of using embedded HTTP servers in applications that parallels the rising trends of [[Home network|home-networking]] and [[ubiquitous computing]].
 
In some cases the functionalities provided via HTTP server allow also program-to-program communications, e.g. to retrieve data logged about the monitored machine, etc.
== Typical requirements ==
 
Natural limitations of the platforms where an embedded HTTP server runs contribute to the list of the non-functional requirements of the embedded, or more precise, embeddable HTTP server. Some of these requirements:
== Usages ==
Examples of usage within an embedded application might be (e.g.):{{citation needed|date=December 2021}}
* Toto provide a [[thin client]] interface for a traditional application.;
* Toto provide [[Database index|index]]ing, [[report]]ing, and [[debugging]] tools during the development stage.;
* Toto implement a protocol for the distribution and acquisition of information to be displayed in the regular interface — possibly a [[web service]], and possibly using [[XML]] as the [[Serialization|data format]].;
* Toto develop a [[web application]].
 
== Advantages ==
There are a few advantages to using HTTP to perform the above:{{citation needed|date=December 2021}}
* HTTP is a well studied cross-platform protocol and there are mature implementations freely available.;
* HTTP is seldom blocked by [[Firewall (computing)|firewall]]s and [[intranet]] [[Router (computing)|router]]s.;
* HTTP clients (e.g. [[web browser]]s) are readily available with all modern computers.;
* Therethere is a growing tendency of using embedded HTTP servers in applications that parallels the rising trends of [[Home network|home-networking]] and [[ubiquitous computing]].
 
== Typical requirements ==
Natural limitations of the platforms where an embedded HTTP server runs contribute to the list of the non-functional requirements of the embedded, or more precise, embeddable HTTP server. Some of these requirements: are the following ones.{{citation needed|date=December 2021}}
* "Small" [[Random-access memory|RAM]] and [[Read-only memory|ROM]] footprint. The exact size depends on the system, but in many cases anything over several megabytes is not embeddable.
* Minimal [[CPU]] utilization.
Line 28 ⟶ 38:
* [[Comparison of web server software]]
* [[Comparison of application servers]]
* [[Server (computing)]]
* [[HTTP server]]
* [[Web server]]
 
==References==
{{Reflist}}
 
== External links ==
* [https://dzone.com/articles/embedded-web-servers-and-application-servers-whats Embedded Web Servers and Application Servers: What's the Difference?]
* [https://www.gnu.org/software/libmicrohttpd/ libmicrohttpd] contains an extensive list of embedded HTTP server libraries towards the bottom of the page
* [https://www.keil.com/pack/doc/mw/Network/html/group__net_h_t_t_p___func.html Example: functionalities of an embedded HTTP server component]
 
[[Category:Web server software| ]]
[[Category:Embedded systems]]
 
 
{{software-type-stub}}
{{network-software-stub}}