4D v14.3

Web Server Settings

Home

 
4D v14.3
Web Server Settings

Web Server Settings  


 

 

You can configure the operation of the 4D Web server using the parameters set on the Web page of the Database Settings. This section describes the parameters of the Configuration, Options (I) and (II) tabs of this page.

  • The parameters of the Log pages are covered in the Information about the Web Site section.
  • The parameters of the  Web Services page are covered in the "Design Reference" manual.

Compatibility note: Certain Web mechanisms found in previous versions of 4D are now considered obsolete (for example, "Do not remove “/” on unknown URLs"). For compatibility's sake, these mechanisms can still be used in converted databases. In this case, you can display them and if necessary disable them on the Compatibility page of the Database Settings.

Indicates whether the Web server will be launched on startup of the 4D application. This option is described in the Web server configuration and connection management section.

By default, 4D publishes a Web database on the regular Web TCP Port, which is port 80. If that port is already used by another Web service, you need to change the TCP Port used by 4D for this database. Modifying the TCP port allows you to start the 4D Web server under Mac OS X without being the root user of the machine (see Web server configuration and connection management section).

To do so, go to the TCP Port enterable area and indicate an appropriate value (a TCP port not already used by another TCP/IP service running on the same machine).

Note: If you specify 0, 4D will use the default TCP port number 80.

From a Web browser, you need to include that non-default TCP port number into the address you enter for connecting to the Web database. The address must have a suffix consisting of a colon followed by the port number. For example, if you are using the TCP port number 8080, you will specify “123.4.567.89:8080”.

WARNING: If you use TCP port numbers other than the default numbers (80 for standard mode and 443 for SLL mode), be careful not to use port numbers that are defaults for other services that you might want to use simultaneously. For example, if you also plan to use the FTP protocol on your Web server machine, do not use the TCP port 20 and 21, which are the default ports for that protocol (unless you know what you are doing). To find out the standard assignment of TCP port numbers, refer to the Appendix B, TCP Port Numbers section in the documentation of the 4D Internet Commands. Ports numbers below 256 are reserved for well known services and ports numbers from 256 to 1024 are reserved for specific services originated on the UNIX platforms. For maximum security, specify a port number beyond these intervals, for example in the 2000's or 3000's.

You can define the IP address on which the Web server must receive HTTP requests.

Note: Starting with 4D v14, the HTTP server automatically supports IPv6 address notation when the All option is selected in the "IP Address" list. For more information, refer to Support of IPv6.

By default, the server responds to all IP addresses (All option).

The drop-down list automatically lists all available IP addresses on the machine. When you select a specific address, the server only responds to requests sent to this address. This feature is for 4D Web Servers located on machines with multiple TCP/IP addresses. It is, for example, frequently the case of most Internet host providers. Implementing such a MultiHoming system requires specific configurations on the Web server machine:

  • Installing secondary IP addresses on Mac OS

To configure a MultiHoming system on Mac OS:

  1. Open the TCP/IP Control Panel.
  2. Select the Manually option from the Configuration pop up menu.
  3. Create a text file called "Secondary IP Addresses" and save it in the Preferences subfolder of your System folder.
    Each line of the "Secondary IP Addresses" file should contain a secondary IP address and an optional subnet mask and router address for the secondary IP address.

Please check the Apple documentation for more information.

  • Installing secondary IP addresses on Windows

To configure a MultiHoming system on Windows:

  1. Select the following sequences of commands (or their equivalents according to your version of Windows):
    Start menu > Control Panel > Network and Internet Connections > Network connections > Local Area Connection (Properties) > Internet Protocol (TCP/IP) > Properties button > Advanced... button. The "Advanced TCP/IP Settings" dialog is displayed.
  2. Click the Add.... button in the "IP Addresses" area, and add additional IP addresses.
You can define up to 5 different IP addresses. You may need to consult your systems administrator in order to do so.

Indicates whether or not the Web server will accept secure connections. This option is described in the Using SSL Protocol section.

Allows you to modify the TCP/IP port number used by the Web server for secured HTTP connections over SSL (HTTPS protocol). By default, the HTTPS port number is set to 443 (standard value).
You may consider changing this port number for two main reasons:

  • for security reasons — hacker attacks against Web servers are generally concentrated on standard TCP ports (80 and 443).
  • under Mac OS X, in order to allow “standard” users to launch the Web server in a secured mode — under Mac OS X, the use of TCP/IP ports reserved for Web publications (0 to 1023) requires specific access privileges: only the root user can launch an application using these ports. In order for standard users to be able to launch the Web server, one solution is to modify the TCP/IP port number (see the Web server configuration and connection management section).
    You can pass any valid value (in order to avoid access restrictions under Mac OS X, you should pass a value greater than 1023). For more information about TCP port numbers, refer to the “TCP port number” paragraph above.

This option controls support of HTTP synchronization requests containing /4DSYNC URLs. It is covered in the Connection Security section.

Allows you to define the default location of the Web site files and to indicate the hierarchical level on the disk above which the files will not be accessible. This option is described in the Connection Security section.

You can designate a default home page for all the browsers that connect to the database. This page can be static or semi-dynamic.

By default, when the Web server is launched for the first time, 4D creates a home page named “index.html” and puts it in the HTML root folder. If you do not modify this configuration, any browser connecting to the Web server will obtain the following page:

To modify the default home page, simply replace it in the database root folder with your own “index.html” page or enter the relative access path of the page that you want to define in the “Default Home Page” entry area.
The access path must be set up in relation to the default HTML root folder.
In order to ensure multi-platform compatibility of your databases, the 4D Web server uses particular writing conventions to define access paths. The syntax rules are as follows:

  • folders are separated by a slash (“/”)
  • the access path must not end with a slash (“/”)
  • to “go up” one level in the folder hierarchy, enter “..” (two periods) before the folder name
  • the access path must not start with a slash (“/”)

For example, if you want the default home page to be “MyHome.htm”, and it is located in the “Web” folder (itself located in the default HTML root folder of the database), enter “Web/MyHome.htm”.

Note: You can also define a default home page for each Web process by using the routine WEB SET HOME PAGE.

If you do not specify a default custom home page, the On Web Connection Database Method is called. It is up to you to process the request procedurally.

The 4D Web Server has a cache that allows you to load static pages, GIF images, JPEG images (<128 kb) and style sheets (.css files) in memory, as they are requested.
Using the cache allows you to significantly increase the Web server’s performance when sending static pages.

The cache is shared between all the Web processes. You can set the size of the cache in the Preferences. By default, the cache of the static pages is not enabled. To activate it, simply check the Use the 4D Web cache option.

You can modify the size of the cache in the Pages Cache Size area. The value you set depends on the number and size of your Web site’s static pages, as well as the resources that the host machines has at its disposal.

Note: While using your Web database, you can check the performance of the cache by using the routine WEB GET STATISTICS. If, for example, you notice that the cache’s rate of use is close to 100%, you may want to consider increasing the size that has been allocated to it.
The /4DSTATS and /4DHTMLSTATS URLs allow you to also obtain information about the cache’s state. Please refer to Information about the Web Site.

Once the cache has been enabled, the 4D Web server looks for the page requested by the browser first in the cache. If it finds the page, it sends it immediately. If not, 4D loads the page from disk and places it in the cache.
When the cache is full and additional space is required, 4D “unloads” the oldest pages first, among the least demanded ones.

At any moment, you can clear the cache of the pages and images that it contains (if, for example, you have modified a static page and you want to reload it in the cache).
To do so, you just have to click on the Clear Cache button. The cache is then immediately cleared.

Allows you to set the maximum timeout before closing for inactive Web processes on the server.

This option indicates the strictly high limit of Maximum Concurrent Web Processes of any type (standard Web processes or belonging to the“pool of processes”) that can be simultaneously open on the server. This parameter allows prevention of 4D Server saturation as the result of massive number of requests.

By default, this value is 32000. You can set the number anywhere between 10 and 32000.

When the maximum number of concurrent Web processes (minus one) is reached, 4D no longer creates new processes and sends the following message “Server unavailable” (status HTTP 503 – Service Unavailable) for each new request.

Note: You can also set the maximum number of Web using the WEB SET OPTION command.

The “pool” of Web processes allows increasing the reactivity of the Web server. This reserve is sized by a minimum (0 by default) and a maximum (10 by default) of processes to recycle. These processes can be modified using the SET DATABASE PARAMETER command. Once the maximum number of Web processes has been changed, if this number is inferior to the superior limit in the “pool”, this limit is lowered to the maximum number of Web processes.

In theory, the maximum number of Web processes is the result of the following formula: Available memory/Web process stack size.
Another solution is to visualize the information on Web processes displayed in the Runtime Explorer: the current number of Web processes and the maximum number reached since the Web server boot are indicated.

Enables or disables the internal mechanism for automatic handling of user sessions by the 4D HTTP server. This mechanism is described in the Web Sessions Management section.

By default, this mechanism is enabled in databases created with 4D v13 and later versions. However, for compatibility reasons, it is disabled in databases converted from previous versions of 4D. You must enable it explicitly in order to benefit from this functionality.

When this option is checked, the "Reuse Temporary Contexts" option is automatically checked (and locked).

Allows you to optimize the operation of the 4D Web server in remote mode by reusing Web processes created for processing previous Web requests. In fact, the Web server of 4D needs a specific Web process for the handling of each Web request; in remote mode, when necessary, this process connects to the 4D Server machine in order to access the data and database engine. It thus generates a temporary context using its own variables, selections, etc. Once the request has been dealt with, this process is killed.

When the Reuse Temporary Contexts option is checked, in remote mode 4D maintains the specific Web processes and reuses them for subsequent requests. By removing the process creation stage, Web server performance is improved.

In return, you must make sure in this case to systematically initialize the variables used in 4D methods in order to avoid getting incorrect results. Similarly, it is necessary to erase any current selections or records defined during the previous request.

Notes:

  • This option is checked (and locked) automatically when the Automatic Session Management option is checked. In fact, the session management mechanism is actually based on the principle of recycling Web processes: each session uses the same process that is maintained during the lifespan of the session. However, note that session processes cannot be "shared" between different sessions: once the session is over, the process is automatically killed (and not reused). It is therefore unnecessary to reset the selections or variables in this case.
  • This option only has an effect with a 4D Web server in remote mode. With a 4D in local mode, all Web processes (other than session processes) are killed after their use.

Configuration of Web site access protection using passwords. This option is described in the Connection Security section.

By default, the 4D Web server converts the extended characters in the dynamic and static Web pages according to HTML standards before sending them. They are then interpreted by the browsers.
You can set the Web server so that the extended characters are sent “as is”, without converting them into HTML entities. This option has shown a speed increase on most foreign operating systems (especially the Japanese system).

To do this, check the Send Extended Characters Directly option.

The Standard Set drop-down list allows you to define the set of characters to be used by the 4D Web server. By default, the character set is UTF-8.

The Web server of 4D can use keep-alive connections. The keep-alive option allows you to maintain a single open TCP connection for the set of exchanges between the Web browser and the server to save system resources and to optimize transfers.

The Use Keep-Alive Connections option enables or disables keep-alive TCP connections for the Web server. This option is enabled by default. In most cases, it is advisable to keep this option check since it accelerates the exchanges. If the Web browser does not support connection keep alive, the 4D Web server automatically switches to HTTP/1.0.

The 4D Web server keep-alive function concerns all TCP/IP connections (HTTP, HTTPS). Note however that keep-alive connections are not always used for all 4D Web processes.

In some cases, other optimized internal functions may be invoked. Keep-alive connections are useful mainly for static pages.

Two options allow you to set how the keep-alive connections work:

  • Number of requests by connection: Allows you to set the maximum number of requests and responses able to travel over a connection keep alive. Limiting the number of requests per connection allows you to prevent server flooding due to a large number of incoming requests (a technique used by hackers).
    The default value (100) can be increased or decreased depending on the resources of the machine hosting the 4D Web server.
  • Timeout: This value defines the maximum wait period (in seconds) during which the Web server maintains an open TCP connection without receiving any requests from the Web browser. Once this period is over, the server closes the connection.
    If the Web browser sends a request after the connection is closed, a new TCP connection is automatically created. This operation is not visible for the user.

 
PROPERTIES 

Product: 4D
Theme: Web Server

 
SEE ALSO 

Connection Security
SET DATABASE PARAMETER
WEB SET HOME PAGE

 
ARTICLE USAGE

4D Language Reference ( 4D v14 R2)
4D Language Reference ( 4D v14 R3)
4D Language Reference ( 4D v14.3)
4D Language Reference ( 4D v14 R4)

Inherited from : Web Server Settings ( 4D v13.5)