Content deleted Content added
m add links, add missing word |
|||
Line 1:
{{external links|date=February 2011}}
{{Unreferenced|date=June 2008}}
An '''embedded [[HTTP server]]''' is a component of a software system that implements the [[Hypertext Transfer Protocol|HTTP]] [[Communications protocol|protocol]]. Examples of usage within an application might be:
* To provide a [[thin-client]] interface for a traditional application..
* To provide [[indexing]]{{dn|date=January 2012}}, [[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 [[data format]].
* To develop a [[web application]]
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
* 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]].
== Typical requirements ==
Line 18:
* "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.
* [[Cross compilation]] support for multiple [[CPU]] and [[operating system]] combinations.
* Easy integration with an existing application, including [[static linking]] with the operating system and application.
* Serving
* [[Modular programming|Modularity]].
* Single [[Thread (computing)|thread]] and [[Multithreading (software)|multi-thread]] support.
For every specific project requirements can vary significantly. For example, ROM and RAM footprints can be a very serious constraint and limit the choices of the system designer. [[C++]] or [[Java Virtual Machine|JVM]] availability for the system can be another constraint. Frequently performance is an issue, because typical embedded systems run multiple simultaneous tasks and an HTTP server is only one of them and may be configured as a low [[Scheduling (computing)|priority]] [[Task (computing)|task]].
== See also ==
|