File: introduction.rst

package info (click to toggle)
libaws 20.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 16,656 kB
  • sloc: ada: 95,505; python: 2,270; ansic: 1,017; makefile: 829; xml: 235; javascript: 202; java: 112; sh: 106
file content (63 lines) | stat: -rw-r--r-- 1,911 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.. _Introduction:

************
Introduction
************

`AWS` stands for *Ada Web Server*. It is an Ada implementation of the
`HTTP/1.1` protocol as defined in the RFC-2616 from June 1999.

The goal is not to build a full Web server but more to make it
possible to use a Web browser (like Firefox or Chrome) to control an
Ada application. As we'll see later it is also possible to have two
Ada programs exchange informations via the `HTTP` protocol. This is
possible as `AWS` also implements the client side of the HTTP
protocol.

Moreover with this library it is possible to have more than one server
in a single application. It is then possible to export different kind
of services by using different `HTTP` ports, or to have different ports
for different services priority. Client which must be served with a
very high priority can be assigned a specific port for example.

As designed, `AWS` big difference with a standard `CGI` server
is that there is only one executable. A `CGI` server has one
executable for each request or so, this becomes a pain to build and
to distribute when the project gets bigger. We will also see that it is
easier with `AWS` to deal with session data.

`AWS` support also `HTTPS` (secure `HTTP`) using
`SSL`. This is based on either `OpenSSL` or `GNUTLS` two Open Source SSL
implementations.

Major supported features are:

* HTTP implementation

* HTTPS (Secure HTTP) implementation based on SSLv3

* Template Web pages (separate the code and the design)

* Web Services - SOAP based

* WSDL support (generate stub/skeleton from WSDL documents)

* Basic and Digest authentication

* Transparent session handling (server side)

* HTTP state management (client side cookies)

* File upload

* Server push

* SMTP / POP (client API)

* LDAP (client API)

* Embedded resources (full self dependant Web server)

* Complete client API, including HTTPS

* Web server activity log