User's Guide
Reference Manual
Release Notes
PDF
Top

inets
User's Guide
Version 5.3

Expand All
Contract All

Chapters

- Introduction
  - Top of chapter
  - Purpose
  - Prerequisites
  - The Service Concept
- FTP Client
  - Top of chapter
  - Introduction
  - Using the FTP Client API
- HTTP Client
  - Top of chapter
  - Introduction
  - Configuration
  - Using the HTTP Client API
- HTTP server
  - Top of chapter
  - Introduction
  - Configuration
  - Using the HTTP Server API
  - Htaccess - User Configurable Authentication.
  - Dynamic Web Pages
  - Logging
  - Server Side Includes
  - The Erlang Web Server API
  - Inets Web Server Modules

# 1 Introduction

### 1.1 Purpose

Inets is a container for Internet clients and servers. Currently, an HTTPclient and server, a TFPT client and server, and a FTP client has been incorporated into Inets. The HTTP server and client is HTTP 1.1 compliant as defined in RFC2616.

### 1.2 Prerequisites

It is assumed that the reader is familiar with the Erlang programming language, concepts of OTP and has a basic understanding of the HTTP, TFTP and FTP protocols.

### 1.3 The Service Concept

Each client and server in inets is viewed as service. Services may be configured to be started at application startup or started dynamically in runtime. If you want to run inets as an distributed application that should handle application failover and takeover, services should be configured to be started at application startup. When starting the inets application the inets top supervisor will start a number of subsupervisors and worker processes for handling the different services provided. When starting services dynamically new children will be added to the supervision tree, unless the service is started with the stand alone option, in which case the service is linked to the calling process and all OTP application features such as soft upgrade are lost.

Services that should be configured for startup at application startup time should be put into the erlang node configuration file on the form:

          [{inets, [{services, ListofConfiguredServices}]}].

For details of exactly what to put in the list of configured services see the documentation for the services that should be configured.