1.2.1.13.2 HyperText Transfer Protocol (HTTP) Net Configurations
HTTP_NET Specific User Configurations
HTTP NET Socket TX Buffer Size:
Define the size of the TX buffer for the HTTP socket
Use 0 for default TCP socket value
The default recommended value for high throughput is > 2MSS (3 KB).
The performance of a socket is highly dependent on the size of its buffers so it is a good idea to use as large as possible buffers for the sockets that need high throughput.
Default value: 1024
Symbol TCPIP_HTTP_NET_SKT_TX_BUFF_SIZE
HTTP NET Socket RX Buffer Size:
Define the size of the RX buffer for the HTTP socket
Use 0 for default TCP socket value
The default recommended value for high throughput is > 2MSS (3 KB).
The performance of a socket is highly dependent on the size of its buffers so it is a good idea to use as large as possible buffers for the sockets that need high throughput.
Default value: 1024
Symbol TCPIP_HTTP_NET_SKT_RX_BUFF_SIZE
Maximum Number of Simultaneous Connections:
Maximum numbers of simultaneous supported HTTP connections.
Default value: 4
Symbol TCPIP_HTTP_NET_MAX_CONNECTIONS
HTTP NET Listening Port:
HTTP listening port: 80, 443, etc.
Default value: 80
Symbol TCPIP_HTTP_NET_LISTEN_PORT
Web Pages Directory:
Web pages directory
The HTTP server will serve pages located under this top directory.
No access is possible above this directory.
As a good practice to follow, use something like: "/mnt_point/webpages/" to limit an external user access to this only directory in the file system when using the Web server
NOTE: to allow access to the whole file system use the root directory: "/mnt_point/" or "/" depending on your SYS_FS settings/mounting
But this usage should be discouraged because it gives HTTP access to all system files.
Default value: "/mnt/mchpSite1/"
Symbol TCPIP_HTTP_NET_WEB_DIR
Enable Console Commands:
Enable the HTTP_NET TCP/IP Console Commands
Default value: false
Symbol: TCPIP_HTTP_NET_CONSOLE_CMD
Include HTTP NET Custom Template:
Add the HTTP_NET template to the project
This is a model of web pages and processing
Default value: true
Symbol TCPIP_HTTP_NET_CUSTOM_TEMPLATE
Web pages source directory path:
Location of the web pages source
Default value: web_pages_directory + '\web_pages'
Symbol TCPIP_HTTP_NET_WEBPAGE_DIRECTORY_PATH
Web pages destination directory path:
Destination of the web pages in the project
Default value: "<project_path>/firmware/src/web_pages"
Symbol TCPIP_HTTP_NET_DEST_WEBPAGE_DIRECTORY_PATH
HTTP_NET Task Rate (in msec):
HTTP_NET task processing rate, in milliseconds.
The HTTP_NET module will process a timer event with this rate for maintaining its own queues, processing timeouts, etc.
The lower the rate (higher the frequency) the higher the module priority and higher module performance can be obtained
The value cannot be lower than the TCPIP_STACK_TICK_RATE.
Default value: 33
Symbol TCPIP_HTTP_NET_TASK_RATE
:Maximum Data Length (bytes) for Reading Cookie and GET/POST Arguments
Define the maximum size of the buffer for reading cookie and GET/POST arguments (bytes)
Default value: 100
Symbol TCPIP_HTTP_NET_MAX_DATA_LEN
Buffer Size for Sending Response Messages to the Client:
Size of the buffer used for sending the response messages to the client.
Should be able to accommodate the longest server response
Default setting should be 300 bytes
Default value: 300
Symbol TCPIP_HTTP_NET_RESPONSE_BUFFER_SIZE
Buffer Size for Sending Cookies to the Client:
Size of the buffer used for sending the cookies to the client.
Should be able to accommodate the longest cookie response. Otherwise the cookies will be truncated.
Default value: 200
Symbol TCPIP_HTTP_NET_COOKIE_BUFFER_SIZE
Peek Buffer Size for Performing Searches:
Size of the peek buffer to perform searches into.
If the underlying transport layer supports peak operation with a offset, the value could be smaller (80 characters, for example);
Otherwise, a one time peek is required and the buffer should be larger:
recommended to be close to the size of the socket RX buffer.
Note - if upload is enabled (TCPIP_HTTP_NET_FILE_UPLOAD_ENABLE) then it is recommended for the peek buffer size to match the size of the socket RX buffer: TCPIP_HTTP_NET_SKT_RX_BUFF_SIZE
Note that this is an automatic buffer (created on the stack) and enough stack space should be provided for the application.
If left to 0 it will use the size of the socket RX buffer - this should be the default
Default value: 0
Symbol TCPIP_HTTP_NET_FIND_PEEK_BUFF_SIZE
File Processing Buffer Size:
Size of the buffer used for processing HTML, dynamic variable and binary files.
For dynamic variable files it should be able to accommodate the longest HTML line size, including CRLF!
Default value: 512
Symbol TCPIP_HTTP_NET_FILE_PROCESS_BUFFER_SIZE
Number of File Buffers to be Created:
Number of file buffers to be created;
These buffers are used to store data while file processing is done
They are organized in a pool
Each file being processed needs a file buffer and tries to get it from the pool
If a buffer is not available, the HTTP conenction will wait for one to become available.
Once the file is done the file buffer is released and could be used by a different file
The number depends on the number of files that are processed in parallel
To avoid deadlock the number should be >= than the number of maximum files that can be open simultaneously:
i.e. for file1 ->include file2 -> include file3 you will need >= 3 file process buffers
Default value: 4
Symbol TCPIP_HTTP_NET_FILE_PROCESS_BUFFERS_NUMBER
Retry Limit for Allocating a File Buffer from the Pool:
Retry limit for allocating a file buffer from the pool.
If more retries are not successful the operation will be aborted.
Default value: 10
Symbol TCPIP_HTTP_NET_FILE_PROCESS_BUFFER_RETRIES
Number of Chunks to be Created:
Number of chunks that are created
It depends on the TCPIP_HTTP_NET_MAX_RECURSE_LEVEL and on the number of connections
Maximum number should be TCPIP_HTTP_NET_MAX_CONNECTIONS * TCPIP_HTTP_NET_MAX_RECURSE_LEVEL
i.e. TCPIP_HTTP_NET_MODULE_CONFIG::nConnections * TCPIP_HTTP_NET_MODULE_CONFIG::nChunks
All the chunks are in a pool and are used by all connections
Default value: 10
Symbol TCPIP_HTTP_NET_CHUNKS_NUMBER
Retry Limit for Allocating a Chunk from the Pool:
Retry limit for allocating a chunk from the pool
If retries are not successful the operation will be aborted
Default value: 10
Symbol TCPIP_HTTP_NET_CHUNK_RETRIES
Maximum Depth of Recursive Calls for Serving a Web Page:
The maximum depth of recursive calls for serving a web page:
no dynvars files: 1
file including a file: 2
if the include file includes another file: +1
if a dyn variable: +1
Default value: 3
Symbol TCPIP_HTTP_NET_MAX_RECURSE_LEVEL
Maximum Header Length:
The length of longest header string that can be parsed
Default value: 15
Symbol TCPIP_HTTP_NET_MAX_HEADER_LEN
Maximum Lifetime of Static Responses (in sec):
Max lifetime (sec) of static responses as string
Value is in seconds (string)
Default value: "600"
Symbol TCPIP_HTTP_NET_CACHE_LEN
Socket Disconnect Timeout (in sec):
Max time (sec) to await for more HTTP client data in an active connection state before timing out and disconnecting the socket
Value is in seconds
Default value: 45
Symbol TCPIP_HTTP_NET_TIMEOUT
Default HTTP NET File:
Indicate what HTTP file to serve when no specific one is requested
Default value: "index.htm"
Symbol TCPIP_HTTP_NET_DEFAULT_FILE
Maximum Size of a HTTP File Name:
Maximum size of a HTTP file name with the path removed from the file name
One extra char added for the string terminator
Default value: 25
Symbol TCPIP_HTTP_NET_FILENAME_MAX_LEN
Enable MPFS Update via HTTP NET:
Configure MPFS over HTTP updating
Enable/disable updating via HTTP
Default value: false
Symbol TCPIP_HTTP_NET_FILE_UPLOAD_ENABLE
MPFS Upload Page Name:
The default MPFS upload page name
Default value: "mpfsupload"
Symbol TCPIP_HTTP_NET_FILE_UPLOAD_NAME
MPFS NVM Mount Path:
NVM mount path for a file upload
Default value: "/mnt/mchpSite1"
Symbol TCPIP_HTTP_NET_MPFS_NVM_PATH
MPFS NVM Disk Path:
NVM disk path for a file upload
Default value: "/dev/nvma1"
Symbol TCPIP_HTTP_NET_MPFS_NVM_VOL
MPFS NVM Disk Number:
NVM disk number for a file upload
Default value: 0
Symbol TCPIP_HTTP_NET_MPFS_NVM_NUM
Enable POST Support:
Enable POST support
Default value: true
Symbol TCPIP_HTTP_NET_USE_POST
Enable Cookie Support:
Enable cookie processing and support
Default value: true
Symbol TCPIP_HTTP_NET_USE_COOKIES
Use Base 64 Decode:
Enable the usage of Bas64 encode/decode
Default value: false
Symbol TCPIP_HTTP_NET_USE_BASE64_DECODE
Enable Basic Authentication Support:
Enable HTTP basic authentication support
Parses the "Authorization:" header for a request and verifies the credentials.
Default value: true
Symbol TCPIP_HTTP_NET_USE_AUTHENTICATION
Use non-persistent connections:
Use non-persistent connections
This flag will cause the HTTP connections to be non-persistent and closed after serving each request to the client
By default the HTTP connections are persistent
Default value: false
Symbol TCPIP_HTTP_NET_CONFIG_FLAG_NON_PERSISTENT, TCPIP_HTTP_NET_CONFIG_FLAGS
HTTP sockets created with NO-DELAY option:
Create the HTTP sockets with NO-DELAY option.
The socket will flush data as soon as possible.
Default value: false
Symbol TCPIP_HTTP_NET_CONFIG_FLAG_NO_DELAY, TCPIP_HTTP_NET_CONFIG_FLAGS
All HTTP connections have to be secure:
All HTTP connections have to be secure (supposing the network presentation layer supports encryption)
Cannot be used together with TCPIP_HTTP_NET_MODULE_FLAG_SECURE_OFF
Default value: false
Symbol TCPIP_HTTP_NET_CONFIG_FLAG_SECURE_ON, TCPIP_HTTP_NET_CONFIG_FLAGS
All HTTP connections have to be non-secure:
HTTP connections will be non-secure
Cannot be used together with TCPIP_HTTP_NET_MODULE_FLAG_SECURE_ON
Default value: false
Symbol TCPIP_HTTP_NET_CONFIG_FLAG_SECURE_OFF, TCPIP_HTTP_NET_CONFIG_FLAGS
HTTP security is based on the port numbers:
HTTP security setting is dictated by the port numbers
Default value: true
Symbol TCPIP_HTTP_NET_CONFIG_FLAG_SECURE_DEFAULT, TCPIP_HTTP_NET_CONFIG_FLAGS
Enable the Processing of Dynamic Variables:
This symbol enables the processing of dynamic variables
Make it evaluate to false (0) if dynamic variables are not needed
All the following symbols referring to dynamic variables are relevant only when TCPIP_HTTP_NET_DYNVAR_PROCESS != 0
Default value: true
Symbol TCPIP_HTTP_NET_DYNVAR_PROCESS
Number of the Descriptors for Dynamic Variables Processing:
How many buffers descriptors for dynamic variable processing
They are independent of the HTTP connection number
All the HTTP connections use from the dynamic descriptors pool
Default value: 10
Symbol TCPIP_HTTP_NET_DYNVAR_DESCRIPTORS_NUMBER
Maximum Size for a Complete Dynamic Variable: Name + Args:
Maximum size for a complete dynamic variable: name + args
Must be <= TCPIP_HTTP_NET_FILE_PROCESS_BUFFER_SIZE!
If it is much larger than needed then inefficiency occurs when reading data from the file and then discarding it because a much larger than needed data buffer was read
Default value: 50
Symbol TCPIP_HTTP_NET_DYNVAR_MAX_LEN
Maximum Number of Arguments for a Dynamic Variable:
Maximum number of arguments for a dynamic variable
Default value: 10
Symbol TCPIP_HTTP_NET_DYNVAR_ARG_MAX_NUMBER
Retry Limit for a Dynamic Variable Processing:
Retry limit for a dynamic variable processing
This puts a limit on the number of times a dynamic variable "dynamicPrint" function can return TCPIP_HTTP_DYN_PRINT_RES_AGAIN/TCPIP_HTTP_DYN_PRINT_RES_PROCESS_AGAIN and avoids having the HTTP code locked up forever.
If more retries are attempted the processing will be considered done and dynamicPrint function will not be called again
Default value: 10
Symbol TCPIP_HTTP_NET_DYNVAR_PROCESS_RETRIES
Enable the Processing of SSI Commands:
This symbol enables the processing of SSI commands
Make it evaluate to false (0) if SSI commands are not needed
All the following symbols referring to SSI commands are relevant only when TCPIP_HTTP_NET_SSI_PROCESS != 0
Default value: true
Symbol TCPIP_HTTP_NET_SSI_PROCESS
Maximum Number of Attributes for a SSI Command:
Maximum number of attributes for a SSI command
Most SSI commands take just one attribute/value pair per line but multiple attribute/value pairs on the same line are allowed where it makes sense
Default value: 4
Symbol TCPIP_HTTP_NET_SSI_ATTRIBUTES_MAX_NUMBER
Number of Static Attributes Associated to a SSI Command:
Number of static attributes associated to a SSI command
If the command has more attributes than this number the excess will be allocated dynamically
Default value: 2
Symbol TCPIP_HTTP_NET_SSI_STATIC_ATTTRIB_NUMBER
Maximum Size for a SSI Command Line: Command + Attribute/Value Pairs:
Maximum size for a SSI command line: command + attribute/value pairs
Must be <= TCPIP_HTTP_NET_FILE_PROCESS_BUFFER_SIZE!
If it is much larger than needed then inefficiency occurs when reading data from the file and then discarding it because a much larger than needed data buffer was read
Default value: 100
Symbol TCPIP_HTTP_NET_SSI_CMD_MAX_LEN
Maximum Number of SSI Variables that Can Be Created at Runtime:
Maximum number of SSI variables that can be created at run time
These variables are stored in an internal hash.
For max. efficiency this number should be a prime.
Default value: 13
Symbol TCPIP_HTTP_NET_SSI_VARIABLES_NUMBER
Maximum Length of a SSI Variable Name:
Maximum length of a SSI variable name
Any excess characters will be truncated
Note that this can result in multiple variables being represented as one SSI variable
Default value: 10
Symbol TCPIP_HTTP_NET_SSI_VARIABLE_NAME_MAX_LENGTH
Maximum Size of a SSI String Variable Value:
Maximum size of a SSI string variable value
Any excess characters will be truncated
Note that the variable value requires SSI storage that is allocated dynamically
Also, this value determines the size of an automatic (stack) buffer when the variable is echoed.
If this value is large, make sure you have enough stack space.
Default value: 10
Symbol TCPIP_HTTP_NET_SSI_VARIABLE_STRING_MAX_LENGTH
Message to Echo when Echoing a Not Found Variable:
Message to echo when echoing a not found variable
Default value: "SSI Echo - Not Found: "
Symbol TCPIP_HTTP_NET_SSI_ECHO_NOT_FOUND_MESSAGE
Persistent Connection Idle Timeout (in sec):
Persistent connection idle timeout, in seconds
If a persistent connection is idle for more that this timeout the server will close it.
Usually the client closes the connection.
Using this timeout value the server can close the its side of the connection to avoid all connections to remain indefinitely open if the client misbehaves.
Use 0 to never timeout.
The timeout value has to be <= 32767 seconds.
Value is in seconds
Default value: 0
Symbol TCPIP_HTTP_NET_CONNECTION_TIMEOUT
HTTP NET allocation function, malloc style:
HTTP allocation function, malloc style
This is the function the HTTP will call to allocate memory needed for: dynamic variables, SSI or file uploads.
Use standard C library 'malloc' or 0 as a default
If it is 0, HTTP will use the allocation functions passed in at the stack initialization
Note: the used function should be multi-thread safe in an RTOS environment!
Default value: "malloc"
Symbol TCPIP_HTTP_NET_MALLOC_FUNC
HTTP NET deallocation function, free style:
HTTP corresponding deallocation function, free style
This is the function the HTTP will call for freeing the allocated memory
Use standard C library 'free' or 0 as a default
If it is 0, HTTP will use the allocation functions passed in at the stack initialization
Note: the used function should be multi-thread safe in an RTOS environment!
Default value: "free"
Symbol TCPIP_HTTP_NET_FREE_FUNC